UNPKG

1.2 MBSource Map (JSON)View Raw
1{"version":3,"file":"dist/xtendui.min.js","mappings":";sJAYO,MAAMA,EAAK,CAAC,EACnBA,EAAGC,UAAYA,EAEO,oBAAXC,SAKLA,OAAOC,cACTC,OAAqC,iBAAvBF,OAAOC,YAA2BD,OAAOC,YAAc,MAAQH,GAO/EA,EAAGK,SAAW,CAAC,EACfL,EAAGM,UAAY,CAAC,EAChBN,EAAGO,QAAU,CAAC,EACdP,EAAGQ,UAAY,GACfR,EAAGS,YAAc,GACjBT,EAAGU,WAAa,IAAMC,WAAW,oCAAoCC,QACrEZ,EAAGa,YAAc,IACjBb,EAAGc,kBAAmB,EACtBd,EAAGe,kBAAoB,EACvBf,EAAGgB,cAAgB,EACnBhB,EAAGiB,kBAAoB,KACvBjB,EAAGkB,uBAAyB,GAa5BlB,EAAGmB,MAAQ,WAAgE,IAA/D,KAAEC,EAAI,MAAEC,EAAQ,uBAAsB,IAAEC,GAAM,GAAU,UAAH,6CAAG,CAAC,EACnE,MAAMC,EAAS,IAAIF,EAAMG,MAAM,MAC/B,GAAID,EAAOE,SAASC,SAASC,YACvBL,EAEFM,uBAAsB,KACpBR,GAAM,IAGRA,QAEG,CACL,MAAMS,EAAc,KACdN,EAAOE,SAASC,SAASC,cAC3BP,IAEAM,SAASI,oBAAoB,mBAAoBD,GACnD,EAEFH,SAASK,iBAAiB,mBAAoBF,EAChD,CACF,EASA7B,EAAGgC,kBAAoB,IAAIC,kBAAiBC,IAC1C,IAAK,MAAMC,KAAYD,EACrB,GAAsB,cAAlBC,EAASC,KAAsB,CAEjC,IAAK,MAAMC,KAASF,EAASG,WACJ,IAAnBD,EAAME,UACRvC,EAAGwC,YAAY,CAAEH,UAIrB,IAAK,MAAMI,KAAWN,EAASO,aACJ,IAArBD,EAAQF,UACVvC,EAAG2C,cAAc,CAAEF,WAGzB,CACF,IAGFzC,EAAGmB,MAAM,CACPC,KAAM,KACJpB,EAAGgC,kBAAkBY,aACrB5C,EAAGgC,kBAAkBa,QAAQnB,SAASoB,gBAAiB,CACrDC,eAAe,EACfC,YAAY,EACZC,WAAW,EACXC,SAAS,GACT,IAONlD,EAAGmD,QAAU,KACXnD,EAAGwC,aAAa,EAOlBxC,EAAGoD,MAAQC,IACTrD,EAAGQ,UAAU8C,KAAKD,GAClBrD,EAAGmB,MAAM,CACPG,IAAK+B,EAAI/B,IACTF,KAAM,KACJpB,EAAGwC,YAAY,CAAEa,OAAM,GAEzB,EAOJrD,EAAGuD,QAAUF,IACXrD,EAAGS,YAAY6C,KAAKD,EAAI,EAS1BrD,EAAGwC,YAAc,WAAoD,IAAnD,MAAEH,EAAQX,SAASoB,gBAAe,IAAEO,GAAQ,UAAH,6CAAG,CAAC,EAG7D,IAAKhB,EAAMmB,QAAQ,QACjB,OAEF,MAAMC,EAAMJ,EAAM,CAACA,GAAOrD,EAAGQ,UAC7B,IAAK,MAAM6C,KAAOI,EAAK,CAErB,MAAMC,EAAO,GACTrB,EAAMzB,QAAQyC,EAAIzC,UACpB8C,EAAKJ,KAAKjB,GAEZ,IAAK,MAAMsB,KAAOtB,EAAMuB,iBAAiBP,EAAIzC,SAC3C8C,EAAKJ,KAAKK,GAGZ,GAAID,EAAKG,OACP,IAAK,MAAOC,EAAOH,KAAQD,EAAKK,UAAW,OAEzC,GAAIV,EAAIW,OAASX,EAAIW,KAAKC,SAASN,GACjC,SAGF,MAAMO,EAA2B,QAAlB,EAAGb,EAAIc,mBAAW,QAAI,aACrC,GAAID,GAAaP,EAAIH,QAAQU,GAC3B,SAKF,GADAb,EAAIe,KAAOf,EAAIe,KAAOf,EAAIe,KAAO,GAC7Bf,EAAIe,KAAK3C,SAASkC,GACpB,OAEFN,EAAIe,KAAKd,KAAKK,GAEd,MAAMU,EAAOhB,EAAID,MAAM,CAAEO,MAAKN,MAAKS,UAE/BO,GACFrE,EAAGuD,QAAQ,CACTI,MACAK,KAAMX,EAAIW,KACVM,cAAejB,EAAIiB,cACnBf,QAASc,EACTE,cAAe,WAEblB,EAAIe,KAAOf,EAAIe,KAAKI,QAAOC,GAAKA,IAAMd,IAEtC3D,EAAGS,YAAcT,EAAGS,YAAY+D,QAAOC,GAC9BA,IAAMC,MAEjB,GAGN,CAEJ,CACF,EAOA1E,EAAG2C,cAAgB,WAAiD,IAAhD,QAAEF,EAAUf,SAASoB,iBAAoB,UAAH,6CAAG,CAAC,EAG5D,IAAIL,EAAQe,QAAQ,QAGpB,IAAK,MAAMH,KAAOrD,EAAGS,YAEnB,GAAIgC,IAAYY,EAAIM,KAAOlB,EAAQwB,SAASZ,EAAIM,KAAM,OAEpD,GAAIN,EAAIW,OAASX,EAAIW,KAAKC,SAASZ,EAAIM,KACrC,SAGF,MAAMO,EAA6B,QAApB,EAAGb,EAAIiB,qBAAa,QAAI,aACvC,GAAIJ,GAAab,EAAIM,IAAIH,QAAQU,GAC/B,SAGFb,EAAIE,QAAQ,CAAEF,QACdA,EAAIkB,eACN,CAEJ,EAaAvE,EAAG2E,KAAO,WAA6B,IAA5B,KAAEC,EAAI,GAAEC,EAAE,KAAEC,GAAS,UAAH,6CAAG,CAAC,EAC/B9E,EAAG+E,YAAYC,IAAIH,EAAID,EAAME,EAC/B,EASA9E,EAAGiF,IAAM,WAAuB,IAAtB,KAAEL,EAAI,GAAEC,GAAO,UAAH,6CAAG,CAAC,EACxB,OAAO7E,EAAG+E,YAAYE,IAAIJ,EAAID,EAChC,EASA5E,EAAGkF,QAAU,WAAuB,IAAtB,KAAEN,EAAI,GAAEC,GAAO,UAAH,6CAAG,CAAC,EAC5B,OAAO7E,EAAG+E,YAAYI,OAAON,EAAID,EACnC,EAYA5E,EAAGoF,aAAe,WAAmC,IAAlC,KAAEN,EAAI,eAAEO,GAAmB,UAAH,6CAAG,CAAC,EAC7C,MAAM9E,EAAUuE,EAAKvE,QAErB,QAAqB+E,IAAjBR,EAAKS,UAEHT,EAAKlE,SACPZ,EAAGwF,eAAe,CAAEV,OAAMO,mBAGxB9E,EAAQK,SAAS,CACnBkE,EAAKlE,QAAU,GACf,MAAM6E,EAAMC,OAAO3B,QAAQxD,EAAQK,SACnC,GAAI6E,EAAI5B,OACN,IAAK,MAAO8B,EAAKC,KAAUH,EAAK,CAE9B,MAAMI,EAAMlF,WAAWgF,GACvBb,EAAKlE,QAAQ0C,KAAK,CAAEuC,MAAKD,UACzB5F,EAAG8F,cAAc,CAAEhB,OAAMe,MAAKD,QAAOG,YAAY,EAAMV,mBACnDQ,EAAI9D,iBACN8D,EAAI9D,iBAAiB,SAAU/B,EAAG8F,cAAcE,KAAK,KAAM,CAAElB,OAAMe,MAAKD,QAAOP,oBAE/EQ,EAAII,YAAYjG,EAAG8F,cAAcE,KAAK,KAAM,CAAElB,OAAMe,MAAKD,QAAOP,mBAEpE,CAEJ,CAEJ,EAUArF,EAAG8F,cAAgB,WAAmE,IAAlE,KAAEhB,EAAI,IAAEe,EAAG,MAAED,EAAK,WAAEG,GAAa,EAAK,eAAEV,GAAmB,UAAH,6CAAG,CAAC,EAEzEP,EAAKoB,UAAU1C,QAAQ,UAIxBqC,EAAIjF,QAENkE,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAKvE,QAASqF,IAGvCd,EAAKvE,QAAUP,EAAGoG,WAAW,CAAEC,MAAOvB,EAAKvE,QAAS+F,MAAOjB,EAAgBkB,MAAOX,IAG/EG,GAEH/F,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,cACdrF,KAAM,KACJpB,EAAG0G,aAAa,CAAE5B,QAAO,IAIjC,EAOA9E,EAAGwF,eAAiB,WAAmC,UAAlC,KAAEV,EAAI,eAAEO,GAAmB,UAAH,6CAAG,CAAC,EAE/C,GAAgB,QAAhB,EAAIP,EAAKlE,eAAO,OAAZ,EAAciD,OAChB,IAAK,MAAMR,KAAOyB,EAAKlE,QAAS,CAE9B,MAAMiF,EAAMxC,EAAIwC,IACVD,EAAQvC,EAAIuC,MACdC,EAAI/D,oBACN+D,EAAI/D,oBAAoB,SAAU9B,EAAG8F,cAAcE,KAAK,KAAM,CAAElB,OAAMe,MAAKD,QAAOP,oBAElFQ,EAAIc,eAAe3G,EAAG8F,cAAcE,KAAK,KAAM,CAAElB,OAAMe,MAAKD,QAAOP,mBAEvE,CAEJ,EAQArF,EAAG0G,aAAe,WAAsB,YAArB,KAAE5B,GAAS,UAAH,6CAAG,CAAC,EAAG8B,EAAC,wCAE5BA,SAAS,QAAR,EAADA,EAAGC,cAAM,QAAT,EAAWX,WAAaU,SAAS,QAAR,EAADA,EAAGC,cAAM,OAAT,EAAWX,UAAUjC,SAASa,EAAKoB,aAE9DpB,EAAKgC,QAET,EAOA9G,EAAG+E,YAAc,CAIfgC,SAAU,IAAIC,IASdhC,IAAK,CAACH,EAAIc,EAAKtC,KAERrD,EAAG+E,YAAYgC,SAASE,IAAIpC,IAC/B7E,EAAG+E,YAAYgC,SAAS/B,IAAIH,EAAI,IAAImC,KAGtC,MAAME,EAAQlH,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GAG1C,OAFAqC,EAAMlC,IAAIW,EAAKtC,GAER6D,EAAMjC,IAAIU,EAAI,EAUvBwB,IAAK,CAACtC,EAAIc,EAAKtC,KAERrD,EAAG+E,YAAYgC,SAASE,IAAIpC,IAC/B7E,EAAG+E,YAAYgC,SAAS/B,IAAIH,EAAI,IAAImC,KAGtC,MAAME,EAAQlH,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GACpCuC,EAASF,EAAMjC,IAAIU,GACzB,OAAIyB,IAIJF,EAAMlC,IAAIW,EAAKtC,GAER6D,EAAMjC,IAAIU,GAAI,EASvBV,IAAK,CAACJ,EAAIc,KACR,MAAMuB,EAAQlH,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GAE1C,OAAKqC,EAIEA,EAAMjC,IAAIU,GAHR,IAGY,EAQvB0B,OAAQxC,IACN,MAAMqC,EAAQlH,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GAE1C,OAAKqC,GACI,IAGG,EASdD,IAAK,CAACpC,EAAIc,IAED3F,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GAAIoC,IAAItB,GAS7CR,OAAQ,CAACN,EAAIc,KACX,MAAMuB,EAAQlH,EAAG+E,YAAYgC,SAAS9B,IAAIJ,GAE1C,IAAKqC,EACH,OAAO,KAGT,MAAMI,EAAMJ,EAAMK,OAAO5B,GAMzB,OAJmB,IAAfuB,EAAMM,MACRxH,EAAG+E,YAAYgC,SAASQ,OAAO1C,GAG1ByC,CAAG,GASdtH,EAAGyH,WAAa,CAIdC,SAAU,GAMVC,IAAKtE,IACHrD,EAAGyH,WAAWC,SAASpE,KAAKD,EAAI,EAOlC8B,OAAQ9B,IACNrD,EAAGyH,WAAWC,SAAW1H,EAAGyH,WAAWC,SAASlD,QAAOC,GAAKA,EAAEmD,IAAMvE,EAAIuE,GAAKnD,EAAEgC,KAAOpD,EAAIoD,IAAG,EAQ/FxB,IAAK5B,GACIrD,EAAGyH,WAAWC,SAASlD,QAAOC,GAAKA,EAAEmD,IAAMvE,EAAIuE,KAe1D5H,EAAG6H,UAAY,WAAwC,IAAvC,GAAEhD,EAAE,IAAExB,EAAG,UAAEyE,GAAY,GAAS,UAAH,6CAAG,CAAC,EAC/C9H,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,oBAENzG,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,sBACJrF,KAAM,KAEJ,GAAIpB,EAAG+H,QAAQ,CAAElD,OAAO,CACtB,IAAImD,EACAC,EACJ,GAAIH,EAAW,CACb,MAAMI,EAAYlI,EAAGmI,aAAa,CAAEtD,OACpCmD,EAAWE,EAAU,GACrBD,EAAWC,EAAU,EACvB,KAAO,CACL,MAAME,EAAOvD,EAAGwD,wBAChBL,EAAWI,EAAKE,KAChBL,EAAWG,EAAKG,GAClB,CACA,IAAIC,EAAQnF,EAAIoB,EAAIuD,EAChBS,EAAQpF,EAAIqF,EAAIT,EAEpB,MAAMU,EAActF,EAAIuF,SA4BxB,GA1BID,GAAe3I,EAAG+E,YAAYE,IAAIJ,EAAI,gBAA2C,MAAzB7E,EAAGe,mBAE7DiH,GAAYW,EAAY,CAAEE,MAAOC,KAAKC,IAAIP,KAAYM,KAAKE,KAAKR,GAChEP,GAAYU,EAAY,CAAEE,MAAOC,KAAKC,IAAIN,KAAYK,KAAKE,KAAKP,GAC5DX,EACFjD,EAAGoE,MAAMnB,UAAY,cAAH,OAAiBE,EAAQ,0BAAkBC,EAAQ,QAErEpD,EAAGoE,MAAMX,KAAO,GAAH,OAAMN,EAAQ,MAC3BnD,EAAGoE,MAAMV,IAAM,GAAH,OAAMN,EAAQ,SAI5BD,EAAW3E,EAAIoB,EACfwD,EAAW5E,EAAIqF,EAEXZ,EACFjD,EAAGoE,MAAMnB,UAAY,cAAH,OAAiBE,EAAQ,0BAAkBC,EAAQ,QAErEpD,EAAGoE,MAAMV,IAAM,GAAH,OAAMN,EAAQ,MAC1BpD,EAAGoE,MAAMX,KAAO,GAAH,OAAMN,EAAQ,QAI/BhI,EAAG+E,YAAYC,IAAIH,EAAI,cAAemD,GACtChI,EAAG+E,YAAYC,IAAIH,EAAI,cAAeoD,GAElCU,GAAwC,MAAzB3I,EAAGe,kBAA4B,CAChD,MAAMmI,EAAgB7F,EAAI6F,cAAgB7F,EAAI6F,cAAgB,IAC9DV,EAAQnF,EAAIoB,EAAIuD,EAChBS,EAAQpF,EAAIqF,EAAIT,EAChBjI,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,kBACJrF,KAAM,KACA0H,KAAKC,IAAIP,IAAUU,GAAiBJ,KAAKC,IAAIN,IAAUS,EAEzDlJ,EAAG6H,UAAU,CAAEhD,KAAIxB,MAAKyE,eAGxB9H,EAAG+E,YAAYI,OAAON,EAAI,eAC1B7E,EAAG+E,YAAYI,OAAON,EAAI,eAC5B,GAGN,CACF,IAGN,EAQA7E,EAAGmI,aAAe,WAAiB,IAAhB,GAAEtD,GAAO,UAAH,6CAAG,CAAC,EAC3B,MAAMsE,EAAW,GACXF,EAAQG,iBAAiBvE,GACzBiD,EAAYmB,EAAMnB,UACxB,IAAIuB,EAAMvB,EAAUwB,MAAM,sBAQ1B,OAPID,EACFF,EAAS7F,KAAKiG,WAAWF,EAAI,GAAG7H,MAAM,MAAM,OAE5C6H,EAAMvB,EAAUwB,MAAM,oBACtBD,EAAMF,EAAS7F,KAAKiG,WAAWF,EAAI,GAAG7H,MAAM,MAAM,KAAO2H,EAAS7F,KAAK,GACvE+F,EAAMF,EAAS7F,KAAKiG,WAAWF,EAAI,GAAG7H,MAAM,MAAM,KAAO2H,EAAS7F,KAAK,IAElE6F,CACT,EASAnJ,EAAGiE,SAAW,WAAsB,IAArB,IAAEuF,EAAG,GAAEC,GAAO,UAAH,6CAAG,CAAC,EAC5B,GAAID,aAAeE,YACjB,OAAOF,EAAIvF,SAASwF,GAEtB,IAAK,MAAM5E,KAAM2E,EACf,GAAI3E,EAAGZ,SAASwF,GACd,OAAO,EAGX,OAAO,CACT,EAMAzJ,EAAG2J,SAAW,KACZ3J,EAAG4J,SAAiBtE,IAAXtF,EAAG4J,IAAoB5J,EAAG4J,IAAM,EAClC,MAAP,OAAa5J,EAAG4J,QAQlB5J,EAAGmG,MAAQ1C,IACT,MAAMoG,EAAQ,CAAC,EACf,IAAK,MAAMxG,KAAOI,EAChB,GAAIJ,EACF,IAAK,MAAOsC,EAAKC,KAAUF,OAAO3B,QAAQV,GACpCyG,MAAMC,QAAQnE,IAEhBiE,EAAMlE,GAAOkE,EAAMlE,GAAOkE,EAAMlE,GAAO,GACvCkE,EAAMlE,GAAKrC,QAAQsC,IAET,OAAVA,GACiB,iBAAVA,GACNA,EAAMoE,UACPpE,IAAU1F,OAKV2J,EAAMlE,GAAOC,EAFbiE,EAAMlE,GAAO3F,EAAGmG,MAAM,CAAC0D,EAAMlE,GAAMC,IAO3C,OAAOiE,CAAK,EAWd7J,EAAGoG,WAAa,WAAkC,IAAjC,MAAEC,EAAK,MAAEC,EAAK,MAAEC,GAAU,UAAH,6CAAG,CAAC,EAC1C,MAAMsD,EAAQxD,EACd,IAAK,MAAOV,EAAKC,KAAUF,OAAO3B,QAAQwC,GAE5B,OAAVX,GACiB,iBAAVA,GACNkE,MAAMC,QAAQnE,IACdA,EAAMoE,UACPpE,IAAU1F,OAINmG,EAAMV,KAASY,EAAMZ,KACvBkE,EAAMlE,GAAOW,EAAMX,IAHrBkE,EAAMlE,GAAO3F,EAAGoG,WAAW,CAAEC,MAAOA,EAAMV,GAAMW,MAAOA,EAAMX,GAAMY,MAAOA,EAAMZ,KAOpF,OAAOkE,CACT,EAQA7J,EAAGiK,SAAWC,GACLjK,EAAAA,SAAmBiK,GAU5BlK,EAAGmK,KAAO,IAA8B,IAA7B,SAAEF,GAAW,EAAI,IAAEC,GAAK,EACjC,MAAME,EAAW1I,SAAS2I,cAAc,YAExC,OADAD,EAASE,UAAYL,EAAWjK,EAAGiK,SAASC,EAAIK,QAAUL,EAAIK,OACvDH,EAASI,QAAQC,UAAU,EASpCzK,EAAG0K,MAAQ,IAA8B,IAA7B,SAAET,GAAW,EAAI,IAAEC,GAAK,EAClC,MAAME,EAAW1I,SAAS2I,cAAc,YAExC,OADAD,EAASE,UAAYL,EAAWjK,EAAGiK,SAASC,EAAIK,QAAUL,EAAIK,OACvDH,EAASI,QAAQG,UAAU,EAWpC3K,EAAG4K,OAAS,WAAwD,IAAvD,IAAEC,EAAG,SAAEC,EAAQ,MAAEC,GAAQ,EAAI,MAAEC,GAAQ,GAAS,UAAH,6CAAG,CAAC,EAC5D,IAAKtJ,SAASuJ,cAAc,eAAD,OAAgBJ,EAAG,OAAO,CACnD,MAAMK,EAAWF,EACXJ,EAASlJ,SAAS2I,cAAc,UAClCS,IACFF,EAAOO,OAASL,GAElBF,EAAOxI,KAAO,kBACdwI,EAAOQ,IAAMP,EACbD,EAAOG,MAAQA,EACfH,EAAOI,MAAQE,EACfxJ,SAAS2J,KAAKC,OAAOV,EACvB,CACF,EASA5K,EAAGwG,MAAQ,WAAgC,IAA/B,GAAE3B,EAAE,GAAE4B,EAAK,GAAE,KAAErF,GAAS,UAAH,6CAAG,CAAC,EACnCmK,qBAAqBvL,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAK4B,EAAE,WAC7CrF,GAEFpB,EAAG+E,YAAYC,IACbH,EAAE,UACC4B,EAAE,SACL7E,uBAAsB,KACpBR,GAAM,IAId,EASApB,EAAGwL,YAAc,WAAgC,IAA/B,GAAE3G,EAAE,GAAE4B,EAAK,GAAE,KAAErF,GAAS,UAAH,6CAAG,CAAC,EACzCmK,qBAAqBvL,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAK4B,EAAE,iBAC7CrF,GAEFpB,EAAG+E,YAAYC,IACbH,EAAE,UACC4B,EAAE,eACL7E,uBAAsB,KACpB5B,EAAG+E,YAAYC,IACbH,EAAE,UACC4B,EAAE,eACL7E,uBAAsB,KACpBR,GAAM,IAET,IAIT,EAYApB,EAAGyL,GAAK,WAA2E,IAA1E,GAAE5G,EAAE,GAAE4B,EAAK,GAAE,SAAEiF,EAAQ,IAAEpK,GAAM,EAAI,QAAEiE,GAAU,EAAK,SAAEuF,GAAa,UAAH,6CAAG,CAAC,EAC3E9K,EAAG2L,YAAY,CAAE9G,KAAI4B,OACrB5B,EAAG+G,UAAUjE,IAAI,MACjB9C,EAAG+G,UAAUzG,OAAO,OACpB,MAAM/D,EAAO,KACXyD,EAAG+G,UAAUjE,IAAI,MACjB9C,EAAG+G,UAAUzG,OAAO,QACpBnF,EAAG2L,YAAY,CACb9G,KACA4B,KACAiF,WACAG,cAAe,KACfzK,KAAM,KACJyD,EAAG+G,UAAUjE,IAAI,QACbmD,GACFA,GACF,GAEF,EAEAxJ,EAEFtB,EAAGwL,YAAY,CAAE3G,KAAI4B,KAAIrF,UAGzBpB,EAAGwL,YAAY,CAAE3G,KAAI4B,OACrBrF,KAGEmE,GACFV,EAAG+G,UAAUjE,IAAI,WAEnB3H,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAKA,EAAE,WACTrF,KAAM,KACAmE,GACFV,EAAG+G,UAAUzG,OAAO,UACtB,GAGN,EAYAnF,EAAG8L,IAAM,WAA2E,IAA1E,GAAEjH,EAAE,GAAE4B,EAAK,GAAE,SAAEiF,EAAQ,IAAEpK,GAAM,EAAI,QAAEiE,GAAU,EAAK,SAAEuF,GAAa,UAAH,6CAAG,CAAC,EAC5E9K,EAAG2L,YAAY,CAAE9G,KAAI4B,OAErB5B,EAAG+G,UAAUzG,OAAO,MACpB,MAAM/D,EAAO,KACXyD,EAAG+G,UAAUzG,OAAO,KAAM,QAC1BN,EAAG+G,UAAUjE,IAAI,OACjB3H,EAAG2L,YAAY,CACb9G,KACA4B,KACAiF,WACAG,cAAe,MACfzK,KAAM,KACJyD,EAAG+G,UAAUzG,OAAO,OAChB2F,GACFA,GACF,GAEF,EAEAxJ,EAEFtB,EAAGwL,YAAY,CAAE3G,KAAI4B,KAAIrF,UAGzBpB,EAAGwL,YAAY,CAAE3G,KAAI4B,OACrBrF,KAGEmE,GACFV,EAAG+G,UAAUjE,IAAI,WAEnB3H,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAKA,EAAE,WACTrF,KAAM,KACAmE,GACFV,EAAG+G,UAAUzG,OAAO,UACtB,GAGN,EAWAnF,EAAG2L,YAAc,WAAyD,IAAxD,GAAE9G,EAAE,GAAE4B,EAAK,GAAE,SAAEiF,EAAQ,cAAEG,EAAa,KAAEzK,GAAS,UAAH,6CAAG,CAAC,EAExD,OADV2K,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAK4B,EAAE,iBACrCrF,KACFsK,EAAuD,QAA/C,EAAG1L,EAAGgM,SAAS,CAAEnH,KAAI6G,WAAUG,yBAAgB,QAAI,EACtDH,EAGH1L,EAAG+E,YAAYC,IAAIH,EAAI,GAAF,OAAK4B,EAAE,eAAewF,WAAW7K,EAAMsK,IAF5DtK,IAKN,EASApB,EAAGgM,SAAW,WAA0C,IAAzC,GAAEnH,EAAE,SAAE6G,EAAQ,cAAEG,GAAkB,UAAH,6CAAG,CAAC,EAChD,MAAMK,EACHL,GAAiBhH,EAAGsH,aAAa,oBAAD,OAAqBN,KAAqBhH,EAAGsH,aAAa,oBAC7F,OAAID,EAEKE,MAAM7C,WAAW2C,IAAWA,EAAS3C,WAAW2C,GAAUlM,EAAGe,kBACvC,mBAAb2K,EACTA,EACEA,GAAyB,IAAbA,EACdA,EAAW1L,EAAGe,uBADhB,CAGT,EASAf,EAAGqM,UAAY,WAA0C,IAAzC,GAAExH,EAAE,SAAE6G,EAAQ,cAAEG,GAAkB,UAAH,6CAAG,CAAC,EACjD,MAAMK,EACHL,GAAiBhH,EAAGsH,aAAa,iBAAD,OAAkBN,KAAqBhH,EAAGsH,aAAa,iBAC1F,OAAID,EAEKE,MAAM7C,WAAW2C,IAAWA,EAAS3C,WAAW2C,GAAUlM,EAAGe,kBACvC,mBAAb2K,EACTA,EACEA,GAAyB,IAAbA,EACdA,EAAW1L,EAAGe,uBADhB,CAGT,EASAf,EAAGsM,SAAW,WAAyB,IAAxB,IAAE9C,EAAG,MAAE+C,GAAU,UAAH,6CAAG,CAAC,EAE/B,IAAKA,GAAwB,IAAf/C,EAAI3F,OAChB,MAAO,GAET,GAAK2F,EAAI3F,OAGF,CAEL,MAAMJ,EAAM,GACZ,IAAK,MAAMoB,KAAM2E,EACf/F,EAAIH,QAAQuB,EAAGjB,iBAAiB2I,IAElC,OAAO9I,CACT,CARE,OAAOqG,MAAM0C,KAAKhD,EAAI5F,iBAAiB2I,GAS3C,EAQAvM,EAAG+H,QAAU,WAAiB,IAAhB,GAAElD,GAAO,UAAH,6CAAG,CAAC,EACtB,SAAUA,EAAG4H,aAAe5H,EAAG6H,cAAgB7H,EAAG8H,iBAAiB9I,OACrE,EAKA7D,EAAG4M,mBAAqB,KACtB,QAA0BtH,IAAtBtF,EAAG6M,eAA8B,CACnC,MAAMC,EAAwB9M,EAAG+E,YAAYoC,IAAIjH,OAAQ,mBAAoBF,EAAG4M,oBAChF9K,oBAAoB,SAAUgL,GAC9B/K,iBAAiB,SAAU+K,EAC7B,CAEA,MAAMC,EAAQrL,SAAS2I,cAAc,OACrC0C,EAAM9D,MAAM+D,WAAa,SACzBD,EAAM9D,MAAMgE,MAAQ,OACpBF,EAAM9D,MAAMiE,gBAAkB,YAC9BH,EAAMnB,UAAUjE,IAAI,YAAa,oBACjCjG,SAAS2J,KAAKC,OAAOyB,GAErBA,EAAM9D,MAAMkE,SAAW,SAEvB,MAAMC,EAAQ1L,SAAS2I,cAAc,OACrC+C,EAAMnE,MAAMgE,MAAQ,OACpBG,EAAMxB,UAAUjE,IAAI,aACpBoF,EAAMzB,OAAO8B,GAEb,MAAMC,EAAgBN,EAAMN,YACtBa,EAAkBF,EAAMX,YAC9BzM,EAAG6M,eAAiBQ,EAAgBC,EACpC5L,SAASoB,gBAAgBmG,MAAMsE,YAAY,oBAAqB,GAAF,OAAKvN,EAAG6M,eAAc,OAEpFE,EAAM5H,QAAQ,EAGhBnF,EAAGmB,MAAM,CACPC,KAAM,KACJpB,EAAG4M,oBAAoB,IAQ3B7K,iBAAiB,UAAU6E,IAAK,MAG9B,MAAM4G,EAAItN,OAAOuN,WAAavN,OAAOwN,WAC/BC,EAAIzN,OAAO0N,YAAc1N,OAAO2N,aAEnCjH,SAAS,QAAR,EAADA,EAAGC,cAAM,OAAT,EAAWiH,OACZ9N,EAAG+E,YAAYE,IAAI/E,OAAQ,uBAAyBsN,IACnDxN,EAAGU,cAAgBV,EAAG+E,YAAYE,IAAI/E,OAAQ,wBAA0ByN,IAK3E3N,EAAG+E,YAAYC,IACb9E,OAAM,wBAEN+L,YAAW,KACTjM,EAAG+E,YAAYC,IAAI9E,OAAQ,oBAAqBsN,GAChDxN,EAAG+E,YAAYC,IAAI9E,OAAQ,qBAAsByN,GACjDI,cAAc,IAAIC,YAAY,YAAa,CAAEnH,OAAQD,aAAC,EAADA,EAAGC,SAAU,GACjE7G,EAAGa,aACP,IAGHb,EAAG+E,YAAYC,IAAI9E,OAAQ,oBAAqBA,OAAOuN,WAAavN,OAAOwN,YAC3E1N,EAAG+E,YAAYC,IAAI9E,OAAQ,qBAAsBA,OAAO0N,YAAc1N,OAAO2N,aAK7E7N,EAAGiO,gBAAkB,KACnBjO,EAAG4N,YAAc1N,OAAO0N,YACxBlM,SAASoB,gBAAgBmG,MAAMsE,YAAY,OAAQ,GAAF,OAAsB,IAAjBvN,EAAG4N,YAAkB,MAAK,EAGlF7L,iBAAiB,aAAa,KAC5B/B,EAAGiO,iBAAiB,IAGtBjO,EAAGmB,MAAM,CACPC,KAAM,KACJpB,EAAGiO,iBAAiB,IAaxBjO,EAAGkO,yBAA2B,WAA4B,IAA3B,cAAEC,GAAkB,UAAH,6CAAG,CAAC,EAElDA,EAAcC,OAAO,CACnBC,kBAAmB,2CAGrB,MAAMC,EAAS,KACbH,EAAchL,SAAS,EAEzBrB,oBAAoB,YAAawM,GACjCvM,iBAAiB,YAAauM,EAChC,gCCznCEC,EAAqB,CAAC,QAAS,SAAU,WAAY,UAAW,SAAU,uBAAwB,kBAAmB,kBAAmB,mDAAoD,gCAAiC,WAC7NC,EAAmCD,EAAmBE,KAAK,KAC3DC,EAA+B,oBAAZC,QACnB/N,EAAU8N,EAAY,WAAa,EAAIC,QAAQC,UAAUhO,SAAW+N,QAAQC,UAAUC,mBAAqBF,QAAQC,UAAUE,sBAC7HC,GAAeL,GAAaC,QAAQC,UAAUG,YAAc,SAAUC,GACxE,OAAOA,EAAQD,aACjB,EAAI,SAAUC,GACZ,OAAOA,EAAQC,aACjB,EAQIC,EAAgB,SAAuBrK,EAAIsK,EAAkB3K,GAC/D,IAAI4K,EAAatF,MAAM8E,UAAUS,MAAMC,MAAMzK,EAAGjB,iBAAiB4K,IAOjE,OALIW,GAAoBvO,EAAQyD,KAAKQ,EAAI2J,IACvCY,EAAWG,QAAQ1K,GAGrBuK,EAAaA,EAAW5K,OAAOA,EAEjC,EA8BIgL,EAA2B,SAASA,EAAyBC,EAAUN,EAAkB5O,GAI3F,IAHA,IAAI6O,EAAa,GACbM,EAAkB5F,MAAM0C,KAAKiD,GAE1BC,EAAgB7L,QAAQ,CAC7B,IAAImL,EAAUU,EAAgBC,QAE9B,GAAwB,SAApBX,EAAQY,QAAoB,CAE9B,IAAIC,EAAWb,EAAQc,mBAEnBC,EAAmBP,EADTK,EAAShM,OAASgM,EAAWb,EAAQgB,UACM,EAAMzP,GAE3DA,EAAQ0P,QACVb,EAAW9L,KAAKgM,MAAMF,EAAYW,GAElCX,EAAW9L,KAAK,CACd4M,MAAOlB,EACPI,WAAYW,GAGlB,KAAO,CAEgBnP,EAAQyD,KAAK2K,EAASR,IAErBjO,EAAQiE,OAAOwK,KAAaG,IAAqBM,EAAShO,SAASuN,KACvFI,EAAW9L,KAAK0L,GAIlB,IAAImB,EAAanB,EAAQmB,YACQ,mBAA1B5P,EAAQ6P,eAAgC7P,EAAQ6P,cAAcpB,GAErE,GAAImB,EAAY,CAOd,IAAIE,EAAoBb,GAAwC,IAAfW,EAAsBnB,EAAQgB,SAAWG,EAAWH,UAAU,EAAMzP,GAEjHA,EAAQ0P,QACVb,EAAW9L,KAAKgM,MAAMF,EAAYiB,GAElCjB,EAAW9L,KAAK,CACd4M,MAAOlB,EACPI,WAAYiB,GAGlB,MAGEX,EAAgBH,QAAQD,MAAMI,EAAiBV,EAAQgB,SAE3D,CACF,CAEA,OAAOZ,CACT,EAEIkB,EAAc,SAAqBnG,EAAMoG,GAC3C,OAAIpG,EAAKqG,SAAW,IAYbD,GAAW,0BAA0BE,KAAKtG,EAAKyF,UAAYzF,EAAKuG,oBAAsBtE,MAAMuE,SAASxG,EAAKgC,aAAa,YAAa,KAChI,EAIJhC,EAAKqG,QACd,EAEII,EAAuB,SAA8BC,EAAGC,GAC1D,OAAOD,EAAEL,WAAaM,EAAEN,SAAWK,EAAEE,cAAgBD,EAAEC,cAAgBF,EAAEL,SAAWM,EAAEN,QACxF,EAEIQ,EAAU,SAAiB7G,GAC7B,MAAwB,UAAjBA,EAAKyF,OACd,EAsDIqB,EAAqB,SAA4B9G,GACnD,OALY,SAAiBA,GAC7B,OAAO6G,EAAQ7G,IAAuB,UAAdA,EAAK/H,IAC/B,CAGS8O,CAAQ/G,KAlCK,SAAyBA,GAC7C,IAAKA,EAAKvF,KACR,OAAO,EAGT,IAMIuM,EANAC,EAAajH,EAAKkH,MAAQtC,EAAY5E,GAEtCmH,EAAc,SAAqB1M,GACrC,OAAOwM,EAAWxN,iBAAiB,6BAA+BgB,EAAO,KAC3E,EAIA,GAAsB,oBAAX1E,aAAgD,IAAfA,OAAOqR,KAAoD,mBAAtBrR,OAAOqR,IAAIC,OAC1FL,EAAWG,EAAYpR,OAAOqR,IAAIC,OAAOrH,EAAKvF,YAE9C,IACEuM,EAAWG,EAAYnH,EAAKvF,KAK9B,CAJE,MAAO6M,GAGP,OADAC,QAAQC,MAAM,2IAA4IF,EAAIG,UACvJ,CACT,CAGF,IAAIC,EAjCgB,SAAyBnH,EAAO2G,GACpD,IAAK,IAAIS,EAAI,EAAGA,EAAIpH,EAAM7G,OAAQiO,IAChC,GAAIpH,EAAMoH,GAAGD,SAAWnH,EAAMoH,GAAGT,OAASA,EACxC,OAAO3G,EAAMoH,EAGnB,CA2BgBC,CAAgBZ,EAAUhH,EAAKkH,MAC7C,OAAQQ,GAAWA,IAAY1H,CACjC,CAO2B6H,CAAgB7H,EAC3C,EAEI8H,EAAa,SAAoB9H,GACnC,IAAI+H,EAAwB/H,EAAK9B,wBAC7B4E,EAAQiF,EAAsBjF,MAC9BkF,EAASD,EAAsBC,OAEnC,OAAiB,IAAVlF,GAA0B,IAAXkF,CACxB,EAiGIC,EAAkC,SAAyC7R,EAAS4J,GACtF,QAAIA,EAAKkI,UAhKS,SAAuBlI,GACzC,OAAO6G,EAAQ7G,IAAuB,WAAdA,EAAK/H,IAC/B,CA8JuBkQ,CAAcnI,IAhGtB,SAAkBA,EAAMoI,GACrC,IAAIC,EAAeD,EAAKC,aACpBpC,EAAgBmC,EAAKnC,cAEzB,GAA0C,WAAtChH,iBAAiBe,GAAM6C,WACzB,OAAO,EAGT,IACIyF,EADkB7R,EAAQyD,KAAK8F,EAAM,iCACAA,EAAKuI,cAAgBvI,EAE9D,GAAIvJ,EAAQyD,KAAKoO,EAAkB,yBACjC,OAAO,EAGT,IAAKD,GAAiC,SAAjBA,EAAyB,CAC5C,GAA6B,mBAAlBpC,EAA8B,CAKvC,IAFA,IAAIuC,EAAexI,EAEZA,GAAM,CACX,IAAIuI,EAAgBvI,EAAKuI,cACrBE,EAAW7D,EAAY5E,GAE3B,GAAIuI,IAAkBA,EAAcvC,aAA+C,IAAjCC,EAAcsC,GAI9D,OAAOT,EAAW9H,GAGlBA,EAFSA,EAAK0I,aAEP1I,EAAK0I,aACFH,GAAiBE,IAAazI,EAAK8E,cAKtCyD,EAHAE,EAASE,IAKpB,CAEA3I,EAAOwI,CACT,CAWA,OAAQxI,EAAKwC,iBAAiB9I,MAChC,CAAO,MAAqB,kBAAjB2O,GACFP,EAAW9H,EAItB,CAoC8C4I,CAAS5I,EAAM5J,IA5JlC,SAA8B4J,GAIvD,MAHyB,YAAjBA,EAAKyF,SAAyB9F,MAAM8E,UAAUS,MAAMC,MAAMnF,EAAK6F,UAAUgD,MAAK,SAAUC,GAC9F,MAAyB,YAAlBA,EAAMrD,OACf,GAEF,CAwJEsD,CAAqB/I,IAhCM,SAAgCA,GAC3D,GAAI,mCAAmCsG,KAAKtG,EAAKyF,SAG/C,IAFA,IAAIuD,EAAahJ,EAAKuI,cAEfS,GAAY,CACjB,GAA2B,aAAvBA,EAAWvD,SAA0BuD,EAAWd,SAAU,CAE5D,IAAK,IAAIP,EAAI,EAAGA,EAAIqB,EAAWnD,SAASnM,OAAQiO,IAAK,CACnD,IAAImB,EAAQE,EAAWnD,SAASoD,KAAKtB,GAErC,GAAsB,WAAlBmB,EAAMrD,QAGR,QAAOhP,EAAQyD,KAAK8O,EAAY,0BAAkCF,EAAMhP,SAASkG,EAErF,CAGA,OAAO,CACT,CAEAgJ,EAAaA,EAAWT,aAC1B,CAKF,OAAO,CACT,CAIgCW,CAAuBlJ,GAKvD,EAEImJ,EAAiC,SAAwC/S,EAAS4J,GACpF,QAAI8G,EAAmB9G,IAASmG,EAAYnG,GAAQ,IAAMiI,EAAgC7R,EAAS4J,GAKrG,EAOIoJ,EAAc,SAASA,EAAYnE,GACrC,IAAIoE,EAAmB,GACnBC,EAAmB,GAmBvB,OAlBArE,EAAWsE,SAAQ,SAAUN,EAAMtB,GACjC,IAAIvB,IAAY6C,EAAKlD,MACjBlB,EAAUuB,EAAU6C,EAAKlD,MAAQkD,EACjCO,EAAoBrD,EAAYtB,EAASuB,GACzCd,EAAWc,EAAUgD,EAAYH,EAAKhE,YAAcJ,EAE9B,IAAtB2E,EACFpD,EAAUiD,EAAiBlQ,KAAKgM,MAAMkE,EAAkB/D,GAAY+D,EAAiBlQ,KAAK0L,GAE1FyE,EAAiBnQ,KAAK,CACpByN,cAAee,EACftB,SAAUmD,EACVP,KAAMA,EACN7C,QAASA,EACT/F,QAASiF,GAGf,IACOgE,EAAiBG,KAAKhD,GAAsBiD,QAAO,SAAUC,EAAKC,GAEvE,OADAA,EAASxD,QAAUuD,EAAIxQ,KAAKgM,MAAMwE,EAAKC,EAASvJ,SAAWsJ,EAAIxQ,KAAKyQ,EAASvJ,SACtEsJ,CACT,GAAG,IAAIE,OAAOR,EAChB,EAEIS,EAAW,SAAkBpP,EAAItE,GAEnC,IAAI6O,EAYJ,OATEA,GAJF7O,EAAUA,GAAW,CAAC,GAGV6P,cACGZ,EAAyB,CAAC3K,GAAKtE,EAAQ4O,iBAAkB,CACpE3K,OAAQ8O,EAA+BtN,KAAK,KAAMzF,GAClD0P,SAAS,EACTG,cAAe7P,EAAQ6P,gBAGZlB,EAAcrK,EAAItE,EAAQ4O,iBAAkBmE,EAA+BtN,KAAK,KAAMzF,IAG9FgT,EAAYnE,EACrB,EAmBI8E,EAAa,SAAoB/J,EAAM5J,GAGzC,GAFAA,EAAUA,GAAW,CAAC,GAEjB4J,EACH,MAAM,IAAIgK,MAAM,oBAGlB,OAA8C,IAA1CvT,EAAQyD,KAAK8F,EAAMqE,IAIhB8E,EAA+B/S,EAAS4J,EACjD,EAEIiK,EAA4C7F,EAAmByF,OAAO,UAAUvF,KAAK,KAErF4F,EAAc,SAAqBlK,EAAM5J,GAG3C,GAFAA,EAAUA,GAAW,CAAC,GAEjB4J,EACH,MAAM,IAAIgK,MAAM,oBAGlB,OAAuD,IAAnDvT,EAAQyD,KAAK8F,EAAMiK,IAIhBhC,EAAgC7R,EAAS4J,EAClD,EC7ZA,SAASmK,EAAQC,EAAQC,GACvB,IAAIC,EAAO/O,OAAO+O,KAAKF,GAEvB,GAAI7O,OAAOgP,sBAAuB,CAChC,IAAIC,EAAUjP,OAAOgP,sBAAsBH,GAC3CC,IAAmBG,EAAUA,EAAQnQ,QAAO,SAAUoQ,GACpD,OAAOlP,OAAOmP,yBAAyBN,EAAQK,GAAKE,UACtD,KAAKL,EAAKnR,KAAKgM,MAAMmF,EAAME,EAC7B,CAEA,OAAOF,CACT,CAEA,SAASM,EAAeC,GACtB,IAAK,IAAIlD,EAAI,EAAGA,EAAImD,UAAUpR,OAAQiO,IAAK,CACzC,IAAIoD,EAAS,MAAQD,UAAUnD,GAAKmD,UAAUnD,GAAK,CAAC,EACpDA,EAAI,EAAIwC,EAAQ5O,OAAOwP,IAAS,GAAIxB,SAAQ,SAAU/N,GACpDwP,EAAgBH,EAAQrP,EAAKuP,EAAOvP,GACtC,IAAKD,OAAO0P,0BAA4B1P,OAAO2P,iBAAiBL,EAAQtP,OAAO0P,0BAA0BF,IAAWZ,EAAQ5O,OAAOwP,IAASxB,SAAQ,SAAU/N,GAC5JD,OAAO4P,eAAeN,EAAQrP,EAAKD,OAAOmP,yBAAyBK,EAAQvP,GAC7E,GACF,CAEA,OAAOqP,CACT,CAEA,SAASG,EAAgB9R,EAAKsC,EAAKC,GAYjC,OAXID,KAAOtC,EACTqC,OAAO4P,eAAejS,EAAKsC,EAAK,CAC9BC,MAAOA,EACPkP,YAAY,EACZS,cAAc,EACdC,UAAU,IAGZnS,EAAIsC,GAAOC,EAGNvC,CACT,CAEA,IACMoS,EADFC,GACED,EAAY,GACT,CACLE,aAAc,SAAsBC,GAClC,GAAIH,EAAU5R,OAAS,EAAG,CACxB,IAAIgS,EAAaJ,EAAUA,EAAU5R,OAAS,GAE1CgS,IAAeD,GACjBC,EAAWC,OAEf,CAEA,IAAIC,EAAYN,EAAUO,QAAQJ,IAEf,IAAfG,GAIFN,EAAUQ,OAAOF,EAAW,GAH5BN,EAAUnS,KAAKsS,EAMnB,EACAM,eAAgB,SAAwBN,GACtC,IAAIG,EAAYN,EAAUO,QAAQJ,IAEf,IAAfG,GACFN,EAAUQ,OAAOF,EAAW,GAG1BN,EAAU5R,OAAS,GACrB4R,EAAUA,EAAU5R,OAAS,GAAGsS,SAEpC,IAgBAC,EAAQ,SAAeC,GACzB,OAAOpK,WAAWoK,EAAI,EACxB,EAIIC,EAAY,SAAmB7S,EAAK4S,GACtC,IAAIE,GAAO,EASX,OARA9S,EAAI+S,OAAM,SAAU5Q,EAAOkM,GACzB,OAAIuE,EAAGzQ,KACL2Q,EAAMzE,GACC,EAIX,IACOyE,CACT,EAUIE,EAAiB,SAAwB7Q,GAC3C,IAAK,IAAI8Q,EAAOzB,UAAUpR,OAAQ8S,EAAS,IAAI7M,MAAM4M,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACpGD,EAAOC,EAAO,GAAK3B,UAAU2B,GAG/B,MAAwB,mBAAVhR,EAAuBA,EAAM0J,WAAM,EAAQqH,GAAU/Q,CACrE,EAEIiR,EAAkB,SAAyBC,GAQ7C,OAAOA,EAAM9B,OAAO7E,YAA4C,mBAAvB2G,EAAMC,aAA8BD,EAAMC,eAAe,GAAKD,EAAM9B,MAC/G,EAEIgC,EAAkB,SAAyBvH,EAAUwH,GAGvD,IAwCIrB,EAxCAsB,GAAOD,aAAiD,EAASA,EAAYvV,WAAaA,SAE1F0M,EAAS2G,EAAe,CAC1BoC,yBAAyB,EACzBC,mBAAmB,EACnBC,mBAAmB,GAClBJ,GAEC5V,EAAQ,CAGViW,WAAY,GAcZC,gBAAiB,GAMjBC,eAAgB,GAChBC,4BAA6B,KAC7BC,wBAAyB,KACzBC,QAAQ,EACRC,QAAQ,EAGRC,4BAAwBvS,GAatBwS,EAAY,SAAmBC,EAAuBC,EAAYC,GACpE,OAAOF,QAA+DzS,IAAtCyS,EAAsBC,GAA4BD,EAAsBC,GAAc5J,EAAO6J,GAAoBD,EACnJ,EAUIE,EAAqB,SAA4BlJ,GAInD,OAAO3N,EAAMkW,gBAAgBjB,WAAU,SAAU/D,GAC/C,IAAIrM,EAAYqM,EAAKrM,UACjBiS,EAAgB5F,EAAK4F,cACzB,OAAOjS,EAAUjC,SAAS+K,IAI1BmJ,EAAcC,MAAK,SAAUjO,GAC3B,OAAOA,IAAS6E,CAClB,GACF,GACF,EAgBIqJ,EAAmB,SAA0BL,GAC/C,IAAIM,EAAclK,EAAO4J,GAEzB,GAA2B,mBAAhBM,EAA4B,CACrC,IAAK,IAAIC,EAAQtD,UAAUpR,OAAQ8S,EAAS,IAAI7M,MAAMyO,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IAC1G7B,EAAO6B,EAAQ,GAAKvD,UAAUuD,GAGhCF,EAAcA,EAAYhJ,WAAM,EAAQqH,EAC1C,CAEA,IAAK2B,EAAa,CAChB,QAAoBhT,IAAhBgT,IAA6C,IAAhBA,EAC/B,OAAOA,EAIT,MAAM,IAAInE,MAAM,IAAIH,OAAOgE,EAAY,gEACzC,CAEA,IAAI7N,EAAOmO,EAEX,GAA2B,iBAAhBA,KACTnO,EAAO+M,EAAIjM,cAAcqN,IAGvB,MAAM,IAAInE,MAAM,IAAIH,OAAOgE,EAAY,0CAI3C,OAAO7N,CACT,EAEIsO,EAAsB,WACxB,IAAItO,EAAOkO,EAAiB,gBAE5B,IAAa,IAATlO,EACF,OAAO,EAGT,QAAa7E,IAAT6E,EAEF,GAAI+N,EAAmBhB,EAAIwB,gBAAkB,EAC3CvO,EAAO+M,EAAIwB,kBACN,CACL,IAAIC,EAAqBtX,EAAMmW,eAAe,GAG9CrN,EAFwBwO,GAAsBA,EAAmBC,mBAErCP,EAAiB,gBAC/C,CAGF,IAAKlO,EACH,MAAM,IAAIgK,MAAM,gEAGlB,OAAOhK,CACT,EAEI0O,EAAsB,WAyDxB,GAxDAxX,EAAMkW,gBAAkBlW,EAAMiW,WAAWwB,KAAI,SAAU5S,GACrD,ID2E6BrB,EAAItE,EC3E7B4X,EAAgBlE,EAAS/N,EAAWkI,EAAO2K,iBAG3CC,GDwEyBnU,ECxEEqB,GDyEnC3F,GADqCA,ECxES6N,EAAO2K,kBDyEhC,CAAC,GAGV3I,cACGZ,EAAyB,CAAC3K,GAAKtE,EAAQ4O,iBAAkB,CACpE3K,OAAQ4N,EAAgCpM,KAAK,KAAMzF,GACnD0P,SAAS,EACTG,cAAe7P,EAAQ6P,gBAGZlB,EAAcrK,EAAItE,EAAQ4O,iBAAkBiD,EAAgCpM,KAAK,KAAMzF,KClFlG,MAAO,CACL2F,UAAWA,EACXiS,cAAeA,EACfa,eAAgBA,EAChBJ,kBAAmBT,EAActU,OAAS,EAAIsU,EAAc,GAAK,KACjEc,iBAAkBd,EAActU,OAAS,EAAIsU,EAAcA,EAActU,OAAS,GAAK,KAUvFqV,iBAAkB,SAA0B/O,GAC1C,IAAIgP,IAAUlE,UAAUpR,OAAS,QAAsByB,IAAjB2P,UAAU,KAAmBA,UAAU,GAWzEmE,EAAUJ,EAAe1C,WAAU,SAAU+C,GAC/C,OAAOA,IAAMlP,CACf,IAEA,KAAIiP,EAAU,GAId,OAAID,EACKH,EAAe3J,MAAM+J,EAAU,GAAGhB,MAAK,SAAUiB,GACtD,OAAOnF,EAAWmF,EAAGjL,EAAO2K,gBAC9B,IAGKC,EAAe3J,MAAM,EAAG+J,GAASE,UAAUlB,MAAK,SAAUiB,GAC/D,OAAOnF,EAAWmF,EAAGjL,EAAO2K,gBAC9B,GACF,EAEJ,IACA1X,EAAMmW,eAAiBnW,EAAMkW,gBAAgB/S,QAAO,SAAU+U,GAC5D,OAAOA,EAAMpB,cAActU,OAAS,CACtC,IAEIxC,EAAMmW,eAAe3T,QAAU,IAAMwU,EAAiB,iBAExD,MAAM,IAAIlE,MAAM,sGAEpB,EAEIqF,EAAW,SAASA,EAASrP,IAClB,IAATA,GAIAA,IAAS+M,EAAIwB,gBAIZvO,GAASA,EAAKsP,OAKnBtP,EAAKsP,MAAM,CACTC,gBAAiBtL,EAAOsL,gBAE1BrY,EAAMqW,wBAA0BvN,EAtSZ,SAA2BA,GACjD,OAAOA,EAAKyF,SAA0C,UAA/BzF,EAAKyF,QAAQ+J,eAAoD,mBAAhBxP,EAAKyP,MAC/E,CAsSQC,CAAkB1P,IACpBA,EAAKyP,UAVLJ,EAASf,KAYb,EAEIqB,EAAqB,SAA4BC,GACnD,IAAI5P,EAAOkO,EAAiB,iBAAkB0B,GAC9C,OAAO5P,IAAuB,IAATA,GAAyB4P,CAChD,EAIIC,EAAmB,SAA0BpT,GAC/C,IAAIoO,EAAS6B,EAAgBjQ,GAEzBsR,EAAmBlD,IAAW,IAK9ByB,EAAerI,EAAO6L,wBAAyBrT,GAEjDgP,EAAKsE,WAAW,CAYdC,YAAa/L,EAAO+I,0BAA4B9C,EAAYW,EAAQ5G,EAAO2K,mBAQ3EtC,EAAerI,EAAOgM,kBAAmBxT,IAM7CA,EAAEyT,iBACJ,EAGIC,EAAe,SAAsB1T,GACvC,IAAIoO,EAAS6B,EAAgBjQ,GACzB2T,EAAkBrC,EAAmBlD,IAAW,EAEhDuF,GAAmBvF,aAAkBwF,SACnCD,IACFlZ,EAAMqW,wBAA0B1C,IAIlCpO,EAAE6T,2BACFjB,EAASnY,EAAMqW,yBAA2Be,KAE9C,EA8FIiC,EAAW,SAAkB9T,GAC/B,GApcgB,SAAuBA,GACzC,MAAiB,WAAVA,EAAEjB,KAA8B,QAAViB,EAAEjB,KAA+B,KAAdiB,EAAE+T,OACpD,CAkcQC,CAAchU,KAAsD,IAAhD6P,EAAerI,EAAOgJ,kBAAmBxQ,GAG/D,OAFAA,EAAEyT,sBACFzE,EAAKsE,cAlcM,SAAoBtT,GACnC,MAAiB,QAAVA,EAAEjB,KAA+B,IAAdiB,EAAE+T,OAC9B,EAocQE,CAAWjU,IA/FF,SAAkBA,GAC/B,IAAIoO,EAAS6B,EAAgBjQ,GAC7BiS,IACA,IAAIiC,EAAkB,KAEtB,GAAIzZ,EAAMmW,eAAe3T,OAAS,EAAG,CAInC,IAAIkX,EAAiB7C,EAAmBlD,GACpCgG,EAAiBD,GAAkB,EAAI1Z,EAAMkW,gBAAgBwD,QAAkBzV,EAEnF,GAAIyV,EAAiB,EAKjBD,EAFElU,EAAEqU,SAEc5Z,EAAMmW,eAAenW,EAAMmW,eAAe3T,OAAS,GAAGoV,iBAGtD5X,EAAMmW,eAAe,GAAGoB,uBAEvC,GAAIhS,EAAEqU,SAAU,CAGrB,IAAIC,EAAoB5E,EAAUjV,EAAMmW,gBAAgB,SAAU2D,GAChE,IAAIvC,EAAoBuC,EAAMvC,kBAC9B,OAAO5D,IAAW4D,CACpB,IAYA,GAVIsC,EAAoB,IAAMF,EAAe9U,YAAc8O,GAAUX,EAAYW,EAAQ5G,EAAO2K,mBAAqB7E,EAAWc,EAAQ5G,EAAO2K,mBAAqBiC,EAAe9B,iBAAiBlE,GAAQ,MAO1MkG,EAAoBH,GAGlBG,GAAqB,EAAG,CAI1B,IAAIE,EAA8C,IAAtBF,EAA0B7Z,EAAMmW,eAAe3T,OAAS,EAAIqX,EAAoB,EAE5GJ,EADuBzZ,EAAMmW,eAAe4D,GACTnC,gBACrC,CACF,KAAO,CAGL,IAAIoC,EAAmB/E,EAAUjV,EAAMmW,gBAAgB,SAAU8D,GAC/D,IAAIrC,EAAmBqC,EAAMrC,iBAC7B,OAAOjE,IAAWiE,CACpB,IAYA,GAVIoC,EAAmB,IAAML,EAAe9U,YAAc8O,GAAUX,EAAYW,EAAQ5G,EAAO2K,mBAAqB7E,EAAWc,EAAQ5G,EAAO2K,mBAAqBiC,EAAe9B,iBAAiBlE,MAOjMqG,EAAmBN,GAGjBM,GAAoB,EAAG,CAIzB,IAAIE,EAAyBF,IAAqBha,EAAMmW,eAAe3T,OAAS,EAAI,EAAIwX,EAAmB,EAG3GP,EADwBzZ,EAAMmW,eAAe+D,GACT3C,iBACtC,CACF,CACF,MAEEkC,EAAkBzC,EAAiB,iBAGjCyC,IACFlU,EAAEyT,iBACFb,EAASsB,GAGb,CAUIU,CAAS5U,EAGb,EAEI6U,EAAa,SAAoB7U,GACnC,IAAIoO,EAAS6B,EAAgBjQ,GAEzBsR,EAAmBlD,IAAW,GAI9ByB,EAAerI,EAAO6L,wBAAyBrT,IAI/C6P,EAAerI,EAAOgM,kBAAmBxT,KAI7CA,EAAEyT,iBACFzT,EAAE6T,2BACJ,EAKIiB,EAAe,WACjB,GAAKra,EAAMsW,OA4BX,OAvBAjC,EAAiBC,aAAaC,GAG9BvU,EAAMwW,uBAAyBzJ,EAAOiJ,kBAAoBjB,GAAM,WAC9DoD,EAASf,IACX,IAAKe,EAASf,KACdvB,EAAInV,iBAAiB,UAAWuY,GAAc,GAC9CpD,EAAInV,iBAAiB,YAAaiY,EAAkB,CAClD2B,SAAS,EACTC,SAAS,IAEX1E,EAAInV,iBAAiB,aAAciY,EAAkB,CACnD2B,SAAS,EACTC,SAAS,IAEX1E,EAAInV,iBAAiB,QAAS0Z,EAAY,CACxCE,SAAS,EACTC,SAAS,IAEX1E,EAAInV,iBAAiB,UAAW2Y,EAAU,CACxCiB,SAAS,EACTC,SAAS,IAEJhG,CACT,EAEIiG,EAAkB,WACpB,GAAKxa,EAAMsW,OASX,OALAT,EAAIpV,oBAAoB,UAAWwY,GAAc,GACjDpD,EAAIpV,oBAAoB,YAAakY,GAAkB,GACvD9C,EAAIpV,oBAAoB,aAAckY,GAAkB,GACxD9C,EAAIpV,oBAAoB,QAAS2Z,GAAY,GAC7CvE,EAAIpV,oBAAoB,UAAW4Y,GAAU,GACtC9E,CACT,EAwIA,OAnIAA,EAAO,CACD+B,aACF,OAAOtW,EAAMsW,MACf,EAEIC,aACF,OAAOvW,EAAMuW,MACf,EAEAkE,SAAU,SAAkBC,GAC1B,GAAI1a,EAAMsW,OACR,OAAOjT,KAGT,IAAIsX,EAAalE,EAAUiE,EAAiB,cACxCE,EAAiBnE,EAAUiE,EAAiB,kBAC5CG,EAAoBpE,EAAUiE,EAAiB,qBAE9CG,GACHrD,IAGFxX,EAAMsW,QAAS,EACftW,EAAMuW,QAAS,EACfvW,EAAMoW,4BAA8BP,EAAIwB,cAEpCsD,GACFA,IAGF,IAAIG,EAAmB,WACjBD,GACFrD,IAGF6C,IAEIO,GACFA,GAEJ,EAEA,OAAIC,GACFA,EAAkB7a,EAAMiW,WAAWtD,UAAUoI,KAAKD,EAAkBA,GAC7DzX,OAGTyX,IACOzX,KACT,EACAwV,WAAY,SAAoBmC,GAC9B,IAAKhb,EAAMsW,OACT,OAAOjT,KAGT,IAAInE,EAAUwU,EAAe,CAC3BuH,aAAclO,EAAOkO,aACrBC,iBAAkBnO,EAAOmO,iBACzBC,oBAAqBpO,EAAOoO,qBAC3BH,GAEHtQ,aAAa1K,EAAMwW,wBAEnBxW,EAAMwW,4BAAyBvS,EAC/BuW,IACAxa,EAAMsW,QAAS,EACftW,EAAMuW,QAAS,EACflC,EAAiBQ,eAAeN,GAChC,IAAI0G,EAAexE,EAAUvX,EAAS,gBAClCgc,EAAmBzE,EAAUvX,EAAS,oBACtCic,EAAsB1E,EAAUvX,EAAS,uBACzC4Z,EAAcrC,EAAUvX,EAAS,cAAe,2BAEhD+b,GACFA,IAGF,IAAIG,EAAqB,WACvBrG,GAAM,WACA+D,GACFX,EAASM,EAAmBzY,EAAMoW,8BAGhC8E,GACFA,GAEJ,GACF,EAEA,OAAIpC,GAAeqC,GACjBA,EAAoB1C,EAAmBzY,EAAMoW,8BAA8B2E,KAAKK,EAAoBA,GAC7F/X,OAGT+X,IACO/X,KACT,EACAoR,MAAO,WACL,OAAIzU,EAAMuW,SAAWvW,EAAMsW,SAI3BtW,EAAMuW,QAAS,EACfiE,KAJSnX,IAMX,EACAyR,QAAS,WACP,OAAK9U,EAAMuW,QAAWvW,EAAMsW,QAI5BtW,EAAMuW,QAAS,EACfiB,IACA6C,IACOhX,MANEA,IAOX,EACAgY,wBAAyB,SAAiCC,GACxD,IAAIC,EAAkB,GAAG5I,OAAO2I,GAAmBnY,OAAOqY,SAS1D,OARAxb,EAAMiW,WAAasF,EAAgB9D,KAAI,SAAU9J,GAC/C,MAA0B,iBAAZA,EAAuBkI,EAAIjM,cAAc+D,GAAWA,CACpE,IAEI3N,EAAMsW,QACRkB,IAGKnU,IACT,IAGGgY,wBAAwBjN,GACtBmG,CACT,0HCxuBA5V,EAAG8c,MAAQA,EACX9c,EAAG+c,UAAYA,EAKf,MAAMC,EA0DJC,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,yKAjD3B,IAAE,oBACA,IAAE,qBACD,IAAE,sBACD,IAAE,yBACC,IAAE,wBACH,IAAE,uBACH,IAAE,0BACC,IAAE,gLAMV,IAAE,mBACD,IAAE,4NAQJ,IAAE,wHAKD,GAAK,6CAEL,IAAE,iBACH,IAAE,sMAUL,CAAC,GAAC,sBAUP,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDtd,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAKyY,OACP,CASAA,QACe7Y,KAER8Y,YAFQ9Y,KAGR+Y,YACP,CAKAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYU,oBAAqB7Y,EAAKmY,YAAYW,iBACxF9Y,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB1d,EAAGO,QAAQuE,EAAKsY,iBACvEtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,iBAE3E,MAAM5c,EAAUuE,EAAKvE,QACrBuE,EAAKgZ,SAAWvd,EAAQwd,MAAQ,IAAIxd,EAAQwd,MAAMvc,MAAM,MAAQ,GAChEsD,EAAKkZ,WAAazd,EAAQ0d,QAAU,IAAI1d,EAAQ0d,QAAQzc,MAAM,MAAQ,GACtEsD,EAAKoZ,YAAc3d,EAAQ4d,SAAW,IAAI5d,EAAQ4d,SAAS3c,MAAM,MAAQ,GACzEsD,EAAKsZ,aAAe7d,EAAQ8d,UAAY,IAAI9d,EAAQ8d,UAAU7c,MAAM,MAAQ,GAC5EsD,EAAKwZ,gBAAkB/d,EAAQge,aAAe,IAAIhe,EAAQge,aAAa/c,MAAM,MAAQ,GACrFsD,EAAK0Z,eAAiBje,EAAQke,YAAc,IAAIle,EAAQke,YAAYjd,MAAM,MAAQ,GAClFsD,EAAK4Z,cAAgBne,EAAQoe,WAAa,IAAIpe,EAAQoe,WAAWnd,MAAM,MAAQ,EACjF,CAOAic,aAAiC,IAAtB,KAAEmB,GAAO,GAAS,UAAH,6CAAG,CAAC,EAC5B,MAAM9Z,EAAOJ,KAEbI,EAAK+Z,iBAAmB,CAACnd,SAAUxB,OAAQ4E,EAAKoB,WAEhDpB,EAAKga,SAELha,EAAKia,aACL/e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAC7C/Y,EAAKka,aACLla,EAAKma,cACLna,EAAKoa,YACLpa,EAAKqa,WAAW,CAAEP,UAEd9Z,EAAKvE,QAAQ8R,UAAYvN,EAAKsa,kBAChCta,EAAKua,SAET,CAKAN,aACE,MAAMja,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAOd,OALPuE,EAAKwa,kBAAoBxa,EAAKoB,UAC1B3F,EAAQgf,UAA6C,IAAlChf,EAAQgf,QAAQvJ,QAAQ,OAC7ClR,EAAK0a,MAAQ,SACb1a,EAAKwa,kBAAoB5d,SAASoB,gBAClCgC,EAAK2B,GAAK,GAAH,OAAM3B,EAAKsY,cAAa,YAAI7c,EAAQgf,QAAQE,WAAU,YAAI3a,EAAKgZ,SAAS2B,cAE/E3a,EAAK0a,MAAQ,WACb1a,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,YAG1B7E,EAAK2B,GAAK3B,EAAK2B,GAAG6W,QAAQ,wBAAyB,IAEnDxY,EAAK4a,gBAEL5a,EAAK6a,aAAa,GACpB,CAKAX,aACeta,KAERkb,qBAFQlb,KAIRmb,mBACP,CAKAD,qBACE,MAAM9a,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAGrB,GADAuE,EAAKgb,mBAAqBhb,EAAKoB,UAC3B3F,EAAQkP,SAAU,EACmB,IAAnClP,EAAQkP,SAASuG,QAAQ,OAC3BlR,EAAKgb,mBAAqBpe,SAASoB,iBAErC,IAAIW,EAAMqG,MAAM0C,KAAK1H,EAAKgb,mBAAmBlc,iBAAiBrD,EAAQkP,WAClElP,EAAQwf,UACVtc,EAAMA,EAAIe,QAAOC,IAAMA,EAAE7D,QAAQL,EAAQwf,YAE3Cjb,EAAK2K,SAAWhM,EAChBqB,EAAK+Z,iBAAiBvb,QAAQwB,EAAK2K,SACrC,CAMA,GAJK3K,EAAK2K,SAAS5L,SACjBiB,EAAK2K,SAAW,CAAC3K,EAAKoB,YAGpB3F,EAAQyf,cACV,IAAK,MAAMnb,KAAMC,EAAK2K,SAAU,CAC9B,MAAMA,EAAWzP,EAAGsM,SAAS,CAAE9C,IAAK3E,EAAI0H,MAAOhM,EAAQyf,gBACvDhgB,EAAG+E,YAAYC,IAAIH,EAAI,iBAAF,OAAmBC,EAAK2B,IAAMgJ,EACrD,CAEJ,CAKAoQ,oBACE,MAAM/a,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQgf,QAAS,CACnB,IAAI9b,EAAMqG,MAAM0C,KAAK1H,EAAKwa,kBAAkB1b,iBAAiBrD,EAAQgf,UAOrE,GANIhf,EAAQwf,UACVtc,EAAMA,EAAIe,QAAOC,IAAMA,EAAE7D,QAAQL,EAAQwf,YAE3Cjb,EAAKya,QAAU9b,EACfqB,EAAK+Z,iBAAiBvb,QAAQwB,EAAKya,SAE/Bhf,EAAQ0f,aACV,IAAK,MAAMxW,KAAM3E,EAAKya,QAAS,CAC7B,MAAM9P,EAAWzP,EAAGsM,SAAS,CAAE9C,IAAKC,EAAI8C,MAAOhM,EAAQ0f,eACvDjgB,EAAG+E,YAAYC,IAAIyE,EAAI,gBAAF,OAAkB3E,EAAK2B,IAAMgJ,EACpD,CAEJ,CACF,CAOA0P,aAAkC,IAAvB,KAAEP,GAAO,GAAU,UAAH,6CAAG,CAAC,EAC7B,MAAM9Z,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAK6a,aAAa,IAElB,IAAIjY,EAAW,EACf5C,EAAKS,SAAU,EACfT,EAAKhB,MAAQ,KACbgB,EAAKob,UAAY,KACjBlgB,EAAGK,SAASyE,EAAK2B,IAAM,GAGvBiB,EAAW5C,EAAKqb,cAAc,CAAEvB,SAEhC,IAAIwB,EAAO7f,EAAQ8f,IAAM3Y,EACzB,GAAI0Y,EAAO,EAAG,CAEZ1Y,GAAY0Y,EACZ,IAAK,IAAItO,EAAI,EAAGA,EAAIsO,EAAMtO,IAAK,CAC7B,MAAMjN,EAAKC,EAAK2K,SAASqC,GACzB,IAAIjN,GAAOA,EAAG+G,UAAU3H,SAAS,IAAIa,EAAKgZ,YAAejZ,EAAGgN,QASjDuO,EAAOtb,EAAK2K,SAAS5L,QAC9Buc,SARA,GAAI7f,EAAQkL,GAAI,CACd,MAAMqL,EAAQvW,EAAQkL,GAAGjK,MAAM,KAAK,GACpBsD,EAAKwb,gBAAgB,CAAEzb,KAAIiS,UACnC/I,cAAc,IAAIC,YAAY8I,EAAO,CAAEjQ,OAAQ,CAAEiH,OAAO,KAClE,MACEhJ,EAAKyb,SAAS,CAAE1b,KAAIiJ,OAAO,GAKjC,CACF,CAEI8Q,IACF9Z,EAAK0b,iBAAmB1b,EAAK2b,eAAepR,MAAM,IAGnC,IAAb3H,GAGF1H,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAE1DvY,EAAK6b,kBAEL7b,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,GAIR,CAQAqb,gBAAqC,UAAvB,KAAEvB,GAAO,GAAU,UAAH,6CAAG,CAAC,EAChC,MAAM9Z,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfsgB,EAAahc,IACjB,IAAK,MAAM+C,KAAK9C,EAAKgZ,SACnB,GAAIjZ,EAAG+G,UAAU3H,SAAS2D,IAAM/C,EAAGgN,QACjC,OAAO,EAGX,OAAO,CAAK,EAGRxO,EAAMyB,EAAKgc,YAAY,CAAElC,SAC/B,IAAIlX,EAAuB,QAAf,EAAGrE,EAAIqE,gBAAQ,QAAI,EAE/B,IAAK,MAAM7C,KAAMC,EAAKic,oBAAqB,CACzC,IAAIC,GAAY,EAYhB,GAVIpC,GACwB,IAAtBre,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAUxR,WACnDuR,EAAYH,EAAWhc,IAEhBC,EAAK0b,iBAAiB/e,SAASoD,KACxCmc,GAAY,GAKTA,GAAatZ,EAAWnH,EAAQ2gB,KAAQ7d,EAAII,IAAIhC,SAASoD,GAE5DA,EAAG+G,UAAUjE,OAAO7C,EAAKgZ,UACzBjZ,EAAG+G,UAAUjE,OAAO7C,EAAKkZ,YACzBnZ,EAAG+G,UAAUjE,OAAO7C,EAAKwZ,qBACpB,CAEL,IAA0B,IAAtB/d,EAAQ0gB,YAAuB1gB,EAAQ0gB,UAAUxR,SAAU,CAC7D,MAAM0R,EAAUrc,EAAKsc,YAAY,CAAEvc,OACnC,IAAK,MAAMwc,KAAUF,EACnBE,EAAOzV,UAAUzG,UACZL,EAAKgZ,YACLhZ,EAAKkZ,cACLlZ,EAAKoZ,eACLpZ,EAAKsZ,gBACLtZ,EAAKwZ,mBACLxZ,EAAK0Z,kBACL1Z,EAAK4Z,cAGd,CACA,GAAIne,EAAQyf,gBACgB,IAAtBzf,EAAQ0gB,YAAuB1gB,EAAQ0gB,UAAUjB,cAAe,CAClE,MAAMA,EAAgBhgB,EAAG+E,YAAYE,IAAIJ,EAAI,iBAAF,OAAmBC,EAAK2B,KACnE,IAAK,MAAM6a,KAAgBtB,EACzBsB,EAAa1V,UAAUzG,UAClBL,EAAKgZ,YACLhZ,EAAKkZ,cACLlZ,EAAKoZ,eACLpZ,EAAKsZ,gBACLtZ,EAAKwZ,mBACLxZ,EAAK0Z,kBACL1Z,EAAK4Z,cAGd,CAEJ,CAEA,MAAMa,EAAUza,EAAKyc,WAAW,CAAE1c,OAClC,IAAK,MAAM4E,KAAM8V,EAAS,CAEpBX,IAASoC,KACe,IAAtBzgB,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU1B,UACnDyB,EAAYH,EAAWpX,KAM3B,MAAMD,EAAM1E,EAAKsc,YAAY,CAAEvc,GAAI4E,EAAI+X,MAAM,IAC7C,GAAKR,GAAatZ,EAAWnH,EAAQ2gB,KAAQ7d,EAAII,IAAIuP,MAAKvO,GAAK+E,EAAI/H,SAASgD,KAE1EgF,EAAGmC,UAAUjE,OAAO7C,EAAKgZ,UACzBrU,EAAGmC,UAAUjE,OAAO7C,EAAKkZ,YACzBvU,EAAGmC,UAAUjE,OAAO7C,EAAKwZ,sBAczB,IAX0B,IAAtB/d,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU1B,SACnD9V,EAAGmC,UAAUzG,UACRL,EAAKgZ,YACLhZ,EAAKkZ,cACLlZ,EAAKoZ,eACLpZ,EAAKsZ,gBACLtZ,EAAKwZ,mBACLxZ,EAAK0Z,kBACL1Z,EAAK4Z,eAGRne,EAAQ0f,eACgB,IAAtB1f,EAAQ0gB,YAAuB1gB,EAAQ0gB,UAAUhB,aAAc,CACjE,MAAMA,EAAejgB,EAAG+E,YAAYE,IAAIwE,EAAI,gBAAF,OAAkB3E,EAAK2B,KACjE,IAAK,MAAMgb,KAAexB,EACxBwB,EAAY7V,UAAUzG,UACjBL,EAAKgZ,YACLhZ,EAAKkZ,cACLlZ,EAAKoZ,eACLpZ,EAAKsZ,gBACLtZ,EAAKwZ,mBACLxZ,EAAK0Z,kBACL1Z,EAAK4Z,cAGd,CAGN,CAEA,GAAIsC,GAAatZ,EAAWnH,EAAQ2gB,IAMlC,GAJAxZ,IAEArE,EAAII,IAAIH,KAAKuB,GAETtE,EAAQkL,GAAI,CACd,MAAMqL,EAAQvW,EAAQkL,GAAGjK,MAAM,KAAK,GACpBsD,EAAKwb,gBAAgB,CAAEzb,KAAIiS,UACnC/I,cAAc,IAAIC,YAAY8I,EAAO,CAAEjQ,OAAQ,CAAEiH,OAAO,KAClE,MACEhJ,EAAKyb,SAAS,CAAE1b,KAAIiJ,OAAO,GAGjC,CAEA,OAAOpG,CACT,CAKAuX,cACE,MAAMna,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAK4c,gBAEL,IAAK,MAAM7c,KAAMC,EAAK2K,SAAU,CAE9B,MAAMkS,EAAkB3hB,EAAG+E,YAAYoC,IACrCtC,EAAE,UACCtE,EAAQkL,GAAE,qBAAa3G,EAAK2B,IAC/B3B,EAAK8c,gBAAgB5b,KAAKlB,EAAM,CAAED,KAAIiJ,OAAO,KAG/C,GADAjJ,EAAG9C,iBAAiB,cAAD,OAAe+C,EAAKuY,cAAgBsE,GACnDphB,EAAQkL,GAAI,CACd,MAAMoW,EAAS,IAAIthB,EAAQkL,GAAGjK,MAAM,MACpC,IAAK,MAAMsV,KAAS+K,EAAQ,CAC1B,MAAMC,EAAUhd,EAAKwb,gBAAgB,CAAEzb,KAAIiS,UACvCgL,IAAYjd,GACdC,EAAK+Z,iBAAiBvb,KAAKwe,GAE7B,MAAMC,EAAY/hB,EAAG+E,YAAYoC,IAC/B2a,EAAO,UACJvhB,EAAQkL,GAAE,eAAO3G,EAAK2B,IACzB3B,EAAK8c,gBAAgB5b,KAAKlB,EAAM,CAAED,QAEpCid,EAAQ/f,iBAAiB+U,EAAOiL,EAClC,CACF,CAEA,MAAMC,EAAmBhiB,EAAG+E,YAAYoC,IACtCtC,EAAE,UACCtE,EAAQuL,IAAG,sBAAchH,EAAK2B,IACjC3B,EAAKmd,iBAAiBjc,KAAKlB,EAAM,CAAED,KAAIiJ,OAAO,KAGhD,GADAjJ,EAAG9C,iBAAiB,eAAD,OAAgB+C,EAAKuY,cAAgB2E,GACpDzhB,EAAQuL,IAAK,CACf,MAAM+V,EAAS,IAAIthB,EAAQuL,IAAItK,MAAM,MACrC,IAAK,MAAMsV,KAAS+K,EAElB,IAAK,IAAIthB,EAAQkL,GAAGjK,MAAM,MAAMC,SAASqV,GAAQ,CAC/C,MAAMgL,EAAUhd,EAAKwb,gBAAgB,CAAEzb,KAAIiS,UACvCgL,IAAYjd,GACdC,EAAK+Z,iBAAiBvb,KAAKwe,GAE7B,MAAMI,EAAaliB,EAAG+E,YAAYoC,IAChC2a,EAAO,UACJvhB,EAAQuL,IAAG,gBAAQhH,EAAK2B,IAC3B3B,EAAKmd,iBAAiBjc,KAAKlB,EAAM,CAAED,QAErCid,EAAQ/f,iBAAiB+U,EAAOoL,EAClC,CAEJ,CAEA,GAAI3hB,EAAQkL,GAAI,CACd,GAAIlL,EAAQ4hB,aAAc,CACxB,MAAMN,EAAS,IAAIthB,EAAQkL,GAAGjK,MAAM,MACpC,GAAIqgB,EAAOpgB,SAAS,UAAYogB,EAAOpgB,SAAS,eAAiBogB,EAAOpgB,SAAS,cAAe,CAE9F,MAAM2gB,EAA2BpiB,EAAG+E,YAAYoC,IAC9CtC,EAAE,gCACuBC,EAAK2B,IAC9B3B,EAAKud,+BAA+Brc,KAAKlB,EAAM,CAAED,QAEnDA,EAAG9C,iBAAiB,WAAYqgB,EAClC,CACA,GAAIP,EAAOpgB,SAAS,SAAU,CAE5B,MAAM2gB,EAA2BpiB,EAAG+E,YAAYoC,IAC9CtC,EAAE,qCAC4BC,EAAK2B,IACnC3B,EAAKud,+BAA+Brc,KAAKlB,EAAM,CAAED,QAEnDA,EAAG9C,iBAAiB,UAAWqgB,GAC/Bvd,EAAG9C,iBAAiB,QAASqgB,EAC/B,CACF,CACApiB,EAAG+E,YAAYoC,IAAItC,EAAI,uBAAF,OAAyBC,EAAK2B,IAAM3B,EAAKwd,WAAW,CAAEzd,OAC7E,CACF,CAEA,IAAK,MAAM4E,KAAM3E,EAAKya,QAAS,CAE7B,MAAMoC,EAAkB3hB,EAAG+E,YAAYoC,IACrCsC,EAAE,UACClJ,EAAQkL,GAAE,qBAAa3G,EAAK2B,IAC/B3B,EAAK8c,gBAAgB5b,KAAKlB,EAAM,CAAED,GAAI4E,EAAIqE,OAAO,KAEnDrE,EAAG1H,iBAAiB,cAAD,OAAe+C,EAAKuY,cAAgBsE,GAEvD,MAAMK,EAAmBhiB,EAAG+E,YAAYoC,IACtCsC,EAAE,UACClJ,EAAQuL,IAAG,sBAAchH,EAAK2B,IACjC3B,EAAKmd,iBAAiBjc,KAAKlB,EAAM,CAAED,GAAI4E,EAAIqE,OAAO,KAEpDrE,EAAG1H,iBAAiB,eAAD,OAAgB+C,EAAKuY,cAAgB2E,EAC1D,CAEA,GAAIzhB,EAAQgiB,MAAQhiB,EAAQgiB,KAAKC,KAAM,CACrC,MAAMC,EAAmBziB,EAAG+E,YAAYoC,IACtCrC,EAAKoB,UAAS,oBACDpB,EAAK2B,IAClB3B,EAAK6b,gBAAgB3a,KAAKlB,IAEtB4d,EAAkB1iB,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,YAAF,OAAcpB,EAAK2B,IAAM3B,EAAK6d,eAAe3c,KAAKlB,IAGrG8d,EAAe5iB,EAAG+E,YAAYC,IAAI9E,OAAQ,cAAF,OAAgB4E,EAAK2B,IAAMgc,GACzE1gB,iBAAiB,QAAS6gB,GAG1B,MAAMC,EAAc7iB,EAAG+E,YAAYC,IAAI9E,OAAQ,aAAF,OAAe4E,EAAK2B,IAAMic,GAMvE,GALA3gB,iBAAiB,OAAQ8gB,GAEzB/d,EAAKoB,UAAUnE,iBAAiB,qBAAD,OAAsB+C,EAAKuY,cAAgBoF,GAC1E3d,EAAKoB,UAAUnE,iBAAiB,oBAAD,OAAqB+C,EAAKuY,cAAgBqF,GAErEniB,EAAQgiB,KAAKzM,MAAO,CACtB,MAAMgN,EAAehe,EAAKoB,UAAUtC,iBAAiBrD,EAAQgiB,KAAKzM,OAClE,GAAIgN,EAAajf,OAAQ,CACvBiB,EAAK+Z,iBAAiBvb,QAAQwf,GAC9B,IAAK,MAAMje,KAAMie,EAAc,CAE7B,MAAMC,EAAqB/iB,EAAG+E,YAAYoC,IACxCtC,EAAE,gCACuBC,EAAK2B,IAC9B3B,EAAK6d,eAAe3c,KAAKlB,IAErBke,EAAc,CAAC,aAAc,SACnC,IAAK,MAAMlM,KAASkM,EAClBne,EAAG9C,iBAAiB+U,EAAOiM,GAG7B,MAAME,EAAsBjjB,EAAG+E,YAAYoC,IACzCtC,EAAE,+BACsBC,EAAK2B,IAC7B3B,EAAK6b,gBAAgB3a,KAAKlB,IAEtBoe,EAAe,CAAC,aAAc,QACpC,IAAK,MAAMpM,KAASoM,EAClBre,EAAG9C,iBAAiB+U,EAAOmM,EAE/B,CACF,CACF,CACF,CAEA,GAAI1iB,EAAQ4iB,KAAM,CAChB,IAAK,MAAMte,KAAMC,EAAK2K,SACpB,GAAI5K,EAAGsH,aAAa5L,EAAQ4iB,MAAO,CACjCre,EAAKse,UAAW,EAChB,KACF,CAEF,IAAKte,EAAKse,SACR,IAAK,MAAM3Z,KAAM3E,EAAKya,QACpB,GAAI9V,EAAG0C,aAAa5L,EAAQ4iB,MAAO,CACjCre,EAAKse,UAAW,EAChB,KACF,CAGN,CACA,GAAIte,EAAKse,SAAU,CAEjB,MAAMC,EAAcrjB,EAAG+E,YAAYoC,IACjCjH,OAAM,mBACM4E,EAAK2B,IACjB3B,EAAKgc,YAAY9a,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAE8Z,MAAM,KAEjD7c,iBAAiB,WAAYshB,EAC/B,CAEA,GAAI9iB,EAAQ+iB,KACV,IAAK,MAAMze,KAAMC,EAAKya,QAAS,CAC7B,MAAMgE,EAAcvjB,EAAG+E,YAAYoC,IACjCtC,EAAE,qBACYC,EAAK2B,IACnB3B,EAAK0e,kBAAkBxd,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAEjDA,EAAG9C,iBAAiB,QAASwhB,GAAa,GAErCze,EAAKuN,UACRxN,EAAG+G,UAAUjE,IAAI,UAErB,CAGF,GAAIpH,EAAQkjB,aACV3e,EAAK4e,KAAO5e,EAAKoB,UAAUtC,iBAAiBrD,EAAQkjB,YAChD3e,EAAK4e,KAAK7f,QAAQ,CACpBiB,EAAK+Z,iBAAiBvb,QAAQwB,EAAK4e,MACnC,IAAK,MAAM7e,KAAMC,EAAK4e,KAAM,CAC1B,MAAMC,EAAa3jB,EAAG+E,YAAYoC,IAChCtC,EAAE,oBACWC,EAAK2B,IAClB3B,EAAK8e,iBAAiB5d,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAEhDA,EAAG9C,iBAAiB,QAAS4hB,EAC/B,CACF,CAGF,GAAIpjB,EAAQsjB,UAAW,CAErB,MAAMC,EAAmB9jB,EAAG+E,YAAYC,IACtC9E,OAAM,+BACkB4E,EAAK2B,IAC7B3B,EAAKif,uBAAuB/d,KAAKlB,IAEnC/C,iBAAiB,uBAAwB+hB,GAAkB,EAC7D,CACA,GAAIvjB,EAAQyjB,SAAU,CAEpB,MAAMC,EAAkBjkB,EAAG+E,YAAYC,IACrC9E,OAAM,8BACiB4E,EAAK2B,IAC5B3B,EAAKof,sBAAsBle,KAAKlB,IAElC/C,iBAAiB,sBAAuBkiB,GAAiB,EAC3D,CAEA,GAAI1jB,EAAQ4jB,aAAe5jB,EAAQ6jB,kBAAmB,CACpD,IAAK,MAAMvf,KAAMC,EAAK2K,SAAU,CAC9B,MAAM4U,EAAOva,MAAM0C,KAAK3H,EAAGjB,iBAAiB,QAC5CkB,EAAK+Z,iBAAiBvb,QAAQ+gB,GAC9B,IAAK,MAAMC,KAAOD,EAChB,IAAKrkB,EAAG+E,YAAYE,IAAIqf,EAAK,GAAF,OAAKxf,EAAK2B,GAAE,oBAErC,GADAzG,EAAG+E,YAAYC,IAAIsf,EAAK,GAAF,OAAKxf,EAAK2B,GAAE,oBAAmB,GAChD6d,EAAIC,SAQPzf,EAAK0f,yBAAyB,CAAEF,MAAKzf,WARpB,CACjB,MAAM4f,EAAqBzkB,EAAG+E,YAAYoC,IACxCmd,EAAG,qBACWxf,EAAK2B,IACnB3B,EAAK0f,yBAAyBxe,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEwf,MAAKzf,KAAI6f,UAAU,KAE3EJ,EAAIviB,iBAAiB,OAAQ0iB,EAC/B,CAKN,CACA,IAAK,MAAMhb,KAAM3E,EAAKya,QAAS,CAC7B,MAAM8E,EAAOva,MAAM0C,KAAK/C,EAAG7F,iBAAiB,QAC5CkB,EAAK+Z,iBAAiBvb,QAAQ+gB,GAC9B,IAAK,MAAMC,KAAOD,EAChB,IAAKrkB,EAAG+E,YAAYE,IAAIqf,EAAK,GAAF,OAAKxf,EAAK2B,GAAE,oBACrC,GAAK6d,EAAIC,SAQPzf,EAAK0f,yBAAyB,CAAEF,MAAKzf,GAAI4E,QARxB,CACjB,MAAMgb,EAAqBzkB,EAAG+E,YAAYoC,IACxCmd,EAAG,qBACWxf,EAAK2B,IACnB3B,EAAK0f,yBAAyBxe,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEwf,MAAKzf,GAAI4E,EAAIib,UAAU,EAAM5d,QAAQ,KAE7Fwd,EAAIviB,iBAAiB,OAAQ0iB,EAC/B,CAKN,CACF,CAEIlkB,EAAQokB,gBACL3kB,EAAG+H,QAAQ,CAAElD,GAAIC,EAAKoB,cAEzBpB,EAAK8f,UAAY,IAAIC,sBACnB,CAAC9gB,EAAS+gB,KACR,IAAK,MAAMC,KAAShhB,EACdghB,EAAMC,kBAAoB,IAC5BlgB,EAAKmgB,sBACLH,EAASliB,aACTkC,EAAK8f,UAAY,KAErB,GAEF,CAAE5gB,KAAM,OAEVc,EAAK8f,UAAU/hB,QAAQiC,EAAKoB,YAGlC,CAaA0b,gBAAgB,EAAuBhb,GAAG,UAA1B,GAAE/B,EAAE,MAAEiJ,GAAQ,GAAO,EACnC,MAAMhJ,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAKrB,GAJAuN,EAAQA,IAAgBlH,SAAS,QAAR,EAADA,EAAGC,cAAM,WAAR,EAAD,EAAWiH,OAEnCjJ,EAAKtE,EAAQ2kB,eAAiBpgB,EAAKya,QAAQ9d,SAASoD,GAAMC,EAAKsc,YAAY,CAAEvc,OAAM,GAAKA,GAEnFiJ,GAASvN,EAAQ4kB,WAAY,CAChC,MAAMA,EAAargB,EAAKgb,mBAAmBlc,iBAAiBrD,EAAQ4kB,YACpE,GAAIrgB,EAAKgb,mBAAmBlf,QAAQL,EAAQ4kB,YAC1C,OACK,GAAIA,EAAWthB,QAChB7D,EAAGiE,SAAS,CAAEuF,IAAK2b,EAAY1b,GAAI7C,EAAEoO,SACvC,MAGN,CACAlQ,EAAKyb,SAAS,CAAE1b,KAAIiJ,SAASlH,EAC/B,CASAqb,iBAAiB,EAAuBrb,GAAG,UAA1B,GAAE/B,EAAE,MAAEiJ,GAAQ,GAAO,EACpC,MAAMhJ,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAKrB,GAJAuN,EAAQA,IAAgBlH,SAAS,QAAR,EAADA,EAAGC,cAAM,WAAR,EAAD,EAAWiH,OAEnCjJ,EAAKtE,EAAQ2kB,eAAiBpgB,EAAKya,QAAQ9d,SAASoD,GAAMC,EAAKsc,YAAY,CAAEvc,OAAM,GAAKA,GAEnFiJ,GAASvN,EAAQ4kB,WAAY,CAChC,MAAMA,EAAargB,EAAKgb,mBAAmBlc,iBAAiBrD,EAAQ4kB,YACpE,GAAIrgB,EAAKgb,mBAAmBlf,QAAQL,EAAQ4kB,YAC1C,OACK,GAAIA,EAAWthB,QAChB7D,EAAGiE,SAAS,CAAEuF,IAAK2b,EAAY1b,GAAI7C,EAAEoO,SACvC,MAGN,CACAlQ,EAAKsgB,UAAU,CAAEvgB,KAAIiJ,SAASlH,EAChC,CAOAyb,iCAA4C,IAAb,GAAExd,GAAO,UAAH,6CAAG,CAAC,EACvC,MAAMC,EAAOJ,KAEb1E,EAAG+E,YAAYoC,IAAItC,EAAI,uBAAF,OAAyBC,EAAK2B,IAAM3B,EAAKwd,WAAW,CAAEzd,QAE3E,MAAMwgB,EAAsBrlB,EAAG+E,YAAYoC,IACzCtC,EAAE,sCAC6BC,EAAK2B,IACpC3B,EAAKwgB,0BAA0Btf,KAAKlB,EAAM,CAAED,QAE9CA,EAAG9C,iBAAiB,QAASsjB,GAC7BxgB,EAAG9C,iBAAiB,WAAYsjB,GAEhC,MAAME,EAA2BvlB,EAAG+E,YAAYoC,IAC9CtC,EAAE,2BACkBC,EAAK2B,IACzB3B,EAAK0gB,+BAA+Bxf,KAAKlB,EAAM,CAAED,QAEnDA,EAAG9C,iBAAiB,OAAD,OAAQ+C,EAAKuY,cAAgBkI,EAClD,CAOAE,+BAA0C,IAAb,GAAE5gB,GAAO,UAAH,6CAAG,CAAC,EACrC,MAAMC,EAAOJ,KAEP2gB,EAAsBrlB,EAAG+E,YAAYE,IAAIJ,EAAI,sBAAF,OAAwBC,EAAK2B,KAC9E5B,EAAG/C,oBAAoB,QAASujB,GAEhC,MAAME,EAA2BvlB,EAAG+E,YAAYE,IAAIJ,EAAI,oBAAF,OAAsBC,EAAK2B,KACjF5B,EAAG/C,oBAAoB,OAAD,OAAQgD,EAAKuY,cAAgBkI,EACrD,CAQAD,0BAA0B,EAAQ1e,GAAG,IAAX,GAAE/B,GAAI,EAC9B,MAAMC,EAAOJ,KACPiT,EAAS3X,EAAG+E,YAAYE,IAAIJ,EAAI,uBAAF,OAAyBC,EAAK2B,KAE9DG,EAAEjB,KAAiB,UAAViB,EAAEjB,MAIVgS,GAAW3X,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAE,sBAK/C3B,EAAK2gB,6BAA6B,CAAE5gB,OACpC7E,EAAG+E,YAAYI,OAAON,EAAI,GAAF,OAAKC,EAAK2B,GAAE,qBACpCzG,EAAG+E,YAAYI,OAAON,EAAI,uBAAF,OAAyBC,EAAK2B,OANtDzG,EAAG+E,YAAYC,IAAIH,EAAI,GAAF,OAAKC,EAAK2B,GAAE,qBAAoB,GAErDG,EAAEyT,kBAMN,CAOAmL,iCAA4C,IAAb,GAAE3gB,GAAO,UAAH,6CAAG,CAAC,EACvC,MAAMC,EAAOJ,KACbI,EAAK2gB,6BAA6B,CAAE5gB,OACpC7E,EAAG+E,YAAYI,OAAON,EAAI,GAAF,OAAKC,EAAK2B,GAAE,qBACpCzG,EAAG+E,YAAYI,OAAON,EAAI,uBAAF,OAAyBC,EAAK2B,IACxD,CAUAqa,cAAmC,IAAvB,KAAElC,GAAO,GAAU,UAAH,6CAAG,CAAC,EAC9B,MAAM9Z,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAImH,EAAW,EACf,MAAMjE,EAAM,GAEZ,GAAIqB,EAAKuN,SACP,MAAO,CAAE3K,WAAUjE,OAGrB,GAAIqB,EAAKse,WACFpjB,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAa,CAC7D,MAAM0c,EAAOuC,UAAUC,SAASxC,KAAK3hB,MAAM,KAAK,IAChD,GAAI2hB,EAAM,CAER,MAAMyC,EAAY,CAAC/gB,EAAIse,IACjBte,EAAGsH,aAAa5L,EAAQ4iB,QAAUA,EAMxC,IAAK,MAAMte,KAAMC,EAAK2K,SAAU,CAC9B,IAAIuR,GAAY,EAEZpC,IACFoC,EAAY4E,EAAU/gB,EAAIse,IAG5B,MAAM5D,EAAUza,EAAKyc,WAAW,CAAE1c,OAClC,IAAK,MAAM4E,KAAM8V,EAEXX,IAASoC,IACXA,EAAY4E,EAAUnc,EAAI0Z,IAI9B,GAAInC,GAAatZ,EAAWnH,EAAQ2gB,IAAK,CAMvC,GAJAxZ,IACAjE,EAAIH,KAAKuB,GAET7E,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,GACrDlG,EAAQkL,GAAI,CACd,MAAMqL,EAAQvW,EAAQkL,GAAGjK,MAAM,KAAK,GACpCqD,EAAGkJ,cAAc,IAAIC,YAAY8I,EAAO,CAAEjQ,OAAQ,CAAEiH,OAAO,KAC7D,MACEhJ,EAAKyb,SAAS,CAAE1b,KAAIiJ,OAAO,IAE7B9N,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,EAC3D,CACF,CACF,CACF,CAGF,MAAO,CAAEiB,WAAUjE,MACrB,CAQA+f,kBAAkB,EAAQ5c,GAAG,IAAX,GAAE/B,GAAI,EACtB,MAAMC,EAAOJ,KAETI,EAAKuN,UAILvN,EAAKya,QAAQ9d,SAASoD,IAExBC,EAAK+gB,WAAW,CAAEhhB,MAAM+B,EAE5B,CAQAgd,iBAAiB,EAAQhd,GAAG,IAAX,GAAE/B,GAAI,EACRH,KAERohB,UAAU,CAAEjhB,MAAM+B,EACzB,CAMAmd,uBAAuBnd,GAAG,QACxB,MAAM9B,EAAOJ,KAEb,GAAKkC,SAAS,QAAR,EAADA,EAAGC,cAAM,QAAT,EAAWX,WAAaU,SAAS,QAAR,EAADA,EAAGC,cAAM,OAAT,EAAWX,UAAUjC,SAASa,EAAKoB,WAAY,CAE1E,MAAMwB,EAAW5C,EAAK2b,eACtB,IAAK,MAAMsF,KAAWre,EACpB5C,EAAKsgB,UAAU,CAAEvgB,GAAIkhB,EAASjY,OAAO,GAAQlH,EAEjD,CACF,CAMAsd,sBAAsBtd,GACpB,MAAM9B,EAAOJ,KAEb,IAAIshB,EACJ,IAAK,MAAMnhB,KAAMiF,MAAM0C,KAAK1H,EAAK2K,UAAUjL,QAAOC,GAAKA,EAAER,SAAS2C,EAAEoO,UAAU,CAC5EgR,EAAQnhB,EACR,KACF,CACA,IAAKmhB,EACH,IAAK,MAAMvc,KAAMK,MAAM0C,KAAK1H,EAAKya,SAAS/a,QAAOC,GAAKA,EAAER,SAAS2C,EAAEoO,UAAU,CAC3EgR,EAAQvc,EACR,KACF,CAEEuc,GACFlhB,EAAKyb,SAAS,CAAE1b,GAAImhB,GAASpf,EAEjC,CAUA4d,2BAA6E,IAApD,IAAEF,EAAG,GAAEzf,EAAE,SAAE6f,GAAW,EAAK,OAAE5d,GAAS,GAAU,UAAH,6CAAG,CAAC,EACxE,MAAMhC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG+E,YAAYC,IAAIsf,EAAK,GAAF,OAAKxf,EAAK2B,GAAE,oBAAmB,GAEjDlG,EAAQ6jB,mBAAqBM,GAAY5d,IAC3CiF,aAAa/L,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,wBAC1DzG,EAAG+E,YAAYC,IACbF,EAAKoB,UAAS,UACXpB,EAAK2B,GAAE,sBACVwF,YAAW,KACTnH,EAAKmhB,yBAAyB,GAC7BjmB,EAAGc,oBAINP,EAAQ4jB,aACVtf,EAAG+G,UAAUjE,IAAI,kBAGnB9C,EAAGkJ,cACD,IAAIC,YAAY,eAAD,OAAgBlJ,EAAKuY,cAAgB,CAClDxW,OAAQ,CAAE6d,SAAUA,KAG1B,CAUA3D,oBACE,MAAMjc,EAAOJ,KAEPwhB,EAAS,GACf,IAAK,MAAMrhB,KAAMC,EAAK2K,SAAU,CAE9B,MAAM8J,EAAQ1U,EAAGsH,aAAa,iBAC9B,GAAIoN,EAAO,CACY2M,EAAO1hB,QAAOC,GAAKA,EAAE0H,aAAa,mBAAqBoN,IAC1D1V,QAChBqiB,EAAO5iB,KAAKuB,EAEhB,MACEqhB,EAAO5iB,KAAKuB,EAEhB,CACA,OAAOqhB,CACT,CAWAC,eAA6D,IAAhD,IAAE3c,EAAG,KAAE4c,EAAI,KAAEpT,GAAO,EAAK,KAAEwO,GAAO,GAAU,UAAH,6CAAG,CAAC,EACxD,MACMjhB,EADOmE,KACQnE,QAEfylB,EAAQ,GACd,IAAK,MAAMnhB,KAAM2E,EAAK,CACpB,IAAI6c,EAAcxhB,EAAGsH,aAAa,iBAClC,GAAIqV,EAAM,CACR,MAAM8E,EAAkBzhB,EAAGsH,aAAa,sBACpCma,IACFD,GAAe9lB,EAAQgmB,eAAiBD,EAE5C,CAEA,GAAID,IAAgBD,GAKpB,GAAIpT,EAAM,OACR,MAAMkT,EAASE,aAAI,EAAJA,EAAM5kB,MAAMjB,EAAQgmB,gBAAgB/hB,QAAOC,GAAKA,IACzD+hB,EAA2B,QAAd,EAAGH,SAAW,aAAX,EAAa7kB,MAAMjB,EAAQgmB,gBAAgB/hB,QAAOC,GAAKA,IACzE+hB,GAAiBN,GAAUM,EAAcxT,MAAKvO,GAAKyhB,EAAOzkB,SAASgD,MACrEuhB,EAAM1iB,KAAKuB,EAEf,OAVEmhB,EAAM1iB,KAAKuB,EAWf,CACA,OAAOmhB,CACT,CASA5E,cAAuC,IAA3B,GAAEvc,EAAE,KAAE2c,GAAO,GAAU,UAAH,6CAAG,CAAC,EAClC,MAAM1c,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKuE,EAAK2K,WAAa3K,EAAK2K,SAAS5L,OACnC,MAAO,GAET,IAAKgB,EACH,MAAO,GACF,GAAmB,WAAfC,EAAK0a,MAAoB,CAElC,MAAM3V,EAAQ,GACR4c,EAAQzmB,EAAG+E,YAAYE,IAAIH,EAAK2B,GAAI,eAC1C,GAAIggB,EAAO,CACT,IAAK,MAAMC,KAAKD,EAEd5c,EAAMvG,QAAQojB,EAAEjX,UAElB,OAAO5F,CACT,CACA,MAAO,EACT,CAAO,GAAmB,aAAf/E,EAAK0a,MAAsB,CAEpC,IAAI3V,EACAuc,EAAOvhB,EAAGsH,aAAa,iBAC3B,GAAIqV,EAAM,CACR,MAAMmF,EAAW9hB,EAAGsH,aAAa,sBAC7Bwa,IACFP,GAAQ7lB,EAAQgmB,eAAiBI,EAErC,CACA,MAAM3T,GAAOlO,EAAK2K,SAAShO,SAASoD,GAC9BqgB,EAAgBpgB,EAAKqhB,aAAa,CAAE3c,IAAK1E,EAAK2K,SAAU2W,OAAMpT,OAAMwO,SACpEoF,EAAe9hB,EAAKqhB,aAAa,CAAE3c,IAAK1E,EAAKya,QAAS6G,OAAMpT,OAAMwO,SACxE,GAAI4E,EAEFvc,EAAQqb,OAGR,GAAIpb,MAAM0C,KAAK1H,EAAK2K,UAAUhO,SAASoD,GACrCgF,EAAQ,CAAChF,GAAIL,QAAOC,GAAKA,QACpB,CAGLoF,EAAQ,CAACqb,EADK0B,EAAatQ,WAAU7R,GAAKA,IAAMI,MACjBL,QAAOC,GAAKA,GAC7C,CAEF,OAAOoF,CACT,CACF,CASA0X,aAAsC,IAA3B,GAAE1c,EAAE,KAAE2c,GAAO,GAAU,UAAH,6CAAG,CAAC,EACjC,MAAM1c,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKuE,EAAKya,UAAYza,EAAKya,QAAQ1b,OACjC,MAAO,GAET,IAAKgB,EACH,MAAO,GACF,GAAmB,WAAfC,EAAK0a,MAAoB,CAGlC,OADc1a,EAAKya,OAErB,CAAO,GAAmB,aAAfza,EAAK0a,MAAsB,CAEpC,IAAI3V,EACAuc,EAAOvhB,EAAGsH,aAAa,iBAC3B,GAAIqV,EAAM,CACR,MAAMmF,EAAW9hB,EAAGsH,aAAa,sBAC7Bwa,IACFP,GAAQ7lB,EAAQgmB,eAAiBI,EAErC,CACA,MAAM3T,GAAOlO,EAAKya,QAAQ9d,SAASoD,GAC7BqgB,EAAgBpgB,EAAKqhB,aAAa,CAAE3c,IAAK1E,EAAK2K,SAAU2W,OAAMpT,OAAMwO,SACpEoF,EAAe9hB,EAAKqhB,aAAa,CAAE3c,IAAK1E,EAAKya,QAAS6G,OAAMpT,OAAMwO,SACxE,GAAI4E,EAEFvc,EAAQ+c,OAGR,GAAI9c,MAAM0C,KAAK1H,EAAKya,SAAS9d,SAASoD,GACpCgF,EAAQ,CAAChF,GAAIL,QAAOC,GAAKA,QACpB,CAGLoF,EAAQ,CAAC+c,EADK1B,EAAc5O,WAAU7R,GAAKA,IAAMI,MACnBL,QAAOC,GAAKA,GAC5C,CAEF,OAAOoF,CACT,CACF,CAQAgd,oBAAgC,IAAd,IAAErd,GAAQ,UAAH,6CAAG,CAAC,EAC3B,MAAM1E,EAAOJ,KAGb,IAAIoiB,EAAS,GACb,GAHgBhiB,EAAKvE,QAGTyf,cACV,IAAK,MAAMnb,KAAM2E,EAAK,CACpB,MAAM4D,EAAQpN,EAAG+E,YAAYE,IAAIJ,EAAI,iBAAF,OAAmBC,EAAK2B,KACvD2G,EAAMvJ,SACRijB,EAASA,EAAO9S,OAAO5G,GAE3B,CAEF,OAAO0Z,CACT,CAQAC,mBAA+B,IAAd,IAAEvd,GAAQ,UAAH,6CAAG,CAAC,EAC1B,MAAM1E,EAAOJ,KAGb,IAAIoiB,EAAS,GACb,GAHgBhiB,EAAKvE,QAGT0f,aACV,IAAK,MAAMpb,KAAM2E,EAAK,CACpB,MAAM4D,EAAQpN,EAAG+E,YAAYE,IAAIJ,EAAI,gBAAF,OAAkBC,EAAK2B,KACtD2G,EAAMvJ,SACRijB,EAASA,EAAO9S,OAAO5G,GAE3B,CAEF,OAAO0Z,CACT,CASAxG,kBAAoC,IAApB,GAAEzb,EAAE,MAAEiS,GAAU,UAAH,6CAAG,CAAC,EAC/B,MACMvW,EADOmE,KACQnE,QAErB,OAAIA,EAAQymB,aACN,CAAC,aAAc,aAAc,aAAc,YAAYvlB,SAASqV,GAC/B,iBAAxBvW,EAAQymB,YACVniB,EAAGrB,QAAQjD,EAAQymB,aAEnBniB,EAAGsO,WAITtO,CACT,CAKA4b,eAGE,OAAOzgB,EAAGM,UAFGoE,KAEY+B,GAC3B,CAMAkZ,aAAalc,GAGXzD,EAAGM,UAFUoE,KAEK+B,IAAMhD,CAC1B,CAQAwjB,cAA0C,IAA9B,GAAEpiB,EAAE,QAAEqiB,GAAU,GAAU,UAAH,6CAAG,CAAC,EACrC,MAAMpiB,EAAOJ,KAEb,IAAKI,EAAKwd,WAAW,CAAEzd,KAAIqiB,YAAY,EACzBA,EAAUlnB,EAAGK,SAAWL,EAAGM,WACnCwE,EAAK2B,IAAInD,KAAKuB,EACpB,CACF,CAQAsiB,iBAA6C,IAA9B,GAAEtiB,EAAE,QAAEqiB,GAAU,GAAU,UAAH,6CAAG,CAAC,EACxC,MAEMzjB,EAAMyjB,EAAUlnB,EAAGK,SAAWL,EAAGM,UACvCmD,EAHaiB,KAGJ+B,IAAMhD,EAHFiB,KAGW+B,IAAIjC,QAAOC,GAAKA,IAAMI,GAChD,CASAyd,aAAuD,IAA5C,GAAEzd,EAAE,KAAE2c,GAAO,EAAK,QAAE0F,GAAU,GAAU,UAAH,6CAAG,CAAC,EAClD,MAAMpiB,EAAOJ,KAGP+K,EAFU3K,EAAKvE,QAEI2kB,eAAiBpgB,EAAKya,QAAQ9d,SAASoD,GAAMC,EAAKsc,YAAY,CAAEvc,KAAI2c,SAAU,CAAC3c,GAGxG,OADYqiB,EAAUlnB,EAAGK,SAAWL,EAAGM,WAC5BwE,EAAK2B,IAAIjC,QAAOC,GAAKgL,EAAShO,SAASgD,KAAIZ,MACxD,CAQAujB,WAAsB,IAAb,GAAEviB,GAAO,UAAH,6CAAG,CAAC,EAGjB,OAFaH,KAEA4d,WAAW,CAAEzd,MAC5B,CAQAwiB,YAAuB,IAAb,GAAExiB,GAAO,UAAH,6CAAG,CAAC,EAClB,MAAMC,EAAOJ,KAGb,QAFgBI,EAAKvE,QAET8f,IAAMvb,EAAK2b,eAAe5c,QAAU,IAIzCiB,EAAKwd,WAAW,CAAEzd,MAC3B,CAQAyiB,kBAA8B,IAAd,IAAEjkB,GAAQ,UAAH,6CAAG,CAAC,EACzB,MAEMkD,EAAQlD,EAAIoM,SAAS8X,YAFd7iB,KAEiC4d,WAAW,CAAEzd,GAAIxB,EAAIoM,SAAS+X,SAAS,GAAIN,SAAS,IAElG,OADA7jB,EAAIoM,SAAS8X,UAAYhhB,EAClBA,CACT,CAQAkhB,mBAA+B,IAAd,IAAEpkB,GAAQ,UAAH,6CAAG,CAAC,EAC1B,MAEMkD,EAAQlD,EAAIoM,SAASiY,YAFdhjB,KAEiC4d,WAAW,CAAEzd,GAAIxB,EAAIoM,SAAS+X,SAAS,GAAIN,SAAS,IAElG,OADA7jB,EAAIoM,SAASiY,WAAanhB,EACnBA,CACT,CAOAohB,YAAuB,UAAb,GAAE9iB,GAAO,UAAH,6CAAG,CAAC,EAClB,MAAMC,EAAOJ,KAEPZ,EAAQgB,EAAK8iB,SAAS,CAAE/iB,OAC9BC,EAAKob,UAAsB,QAAb,EAAGpb,EAAKhB,aAAK,QAAIA,EAC/BgB,EAAKhB,MAAQA,CACf,CAOA8jB,WAAsB,IAAb,GAAE/iB,GAAO,UAAH,6CAAG,CAAC,EACjB,MAAMC,EAAOJ,KAEbG,EAAKC,EAAKsc,YAAY,CAAEvc,OAAM,GAE9B,IAAIf,EAAQ,KACZ,IAAK,MAAOgO,EAAG9C,KAAYlK,EAAKic,oBAAoBhd,UAClD,GAAIc,IAAOmK,EAAS,CAClBlL,EAAQgO,EACR,KACF,CAEF,OAAOhO,CACT,CAKA+jB,gBACE,MAAM/iB,EAAOJ,KAEM,OAAfI,EAAKhB,OAAkBgB,EAAKhB,QAAUgB,EAAKob,UAE7Cpb,EAAKgjB,UAAY,EACU,OAAlBhjB,EAAKijB,SAEdjjB,EAAKgjB,UAAYhjB,EAAKijB,UAAY,EAAI,EAEtCjjB,EAAKgjB,UAAYhjB,EAAKhB,MAAQgB,EAAKob,WAAa,EAAI,CAExD,CASA8H,YAAuC,IAA7B,GAAEnjB,EAAE,KAAEzC,EAAI,SAAE6lB,GAAa,UAAH,6CAAG,CAAC,EAClC,MAAMnjB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEhB0nB,IAAkC,IAAtB1nB,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU7e,KAEhEyC,EAAGgN,SAAU,EAEbhN,EAAG+G,UAAUjE,OAAO7C,EAAKgZ,UACzBjZ,EAAG+G,UAAUzG,UAAUL,EAAKoZ,aAE5Ble,EAAGwL,YAAY,CACb3G,KACAzD,KAAM,KACJyD,EAAG+G,UAAUjE,OAAO7C,EAAKkZ,YACzBnZ,EAAG+G,UAAUzG,UAAUL,EAAKsZ,aAAa,IAI7CvZ,EAAG+G,UAAUzG,UAAUL,EAAK0Z,kBAAmB1Z,EAAK4Z,eAChD5Z,EAAKgjB,UAAY,EACnBjjB,EAAG+G,UAAUjE,OAAO7C,EAAK0Z,gBAChB1Z,EAAKgjB,UAAY,GAC1BjjB,EAAG+G,UAAUjE,OAAO7C,EAAK4Z,eAG/B,CASAwJ,gBAA2C,IAA7B,GAAErjB,EAAE,KAAEzC,EAAI,SAAE6lB,GAAa,UAAH,6CAAG,CAAC,EACtC,MAAMnjB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEhB0nB,IAAkC,IAAtB1nB,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU7e,KAEhEpC,EAAGwL,YAAY,CAAE3G,OACjBA,EAAG+G,UAAUjE,OAAO7C,EAAKkZ,cAAelZ,EAAKsZ,cAEjD,CASA+J,gBAAsC,IAAxB,IAAE9kB,EAAG,GAAEwB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACjC,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKP,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,cAC5C3B,EAAKse,WAAate,EAAKS,QAAS,CAElC,MAAM6iB,EAAS/kB,EAAIoM,SAAS+X,SAAS,GACrC,GACY,aAATplB,GAAuB0C,EAAKsc,YAAY,CAAEvc,GAAIujB,IAAU3mB,SAASoD,IACxD,YAATzC,GAAsB0C,EAAKyc,WAAW,CAAE1c,GAAIujB,IAAU3mB,SAASoD,GAChE,CACA,MAAMuhB,EAAOvhB,EAAGsH,aAAa5L,EAAQ4iB,MACjCiD,GAEFpmB,EAAGwG,MAAM,CACP3B,GAAI3E,OACJuG,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KACJpB,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,GACzD4hB,QAAQC,UAAU,CAAC,EAAG,GAAI,IAAF,OAAMC,mBAAmBnC,KACjDpmB,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,EAAM,GAIvE,CACF,CAEJ,CASA+hB,cAAyC,IAA7B,GAAE3jB,EAAE,KAAEzC,EAAI,SAAE6lB,GAAa,UAAH,6CAAG,CAAC,EACpC,MAAMnjB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEhB0nB,IAAkC,IAAtB1nB,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU7e,KAEhEyC,EAAGgN,SAAU,EAEbhN,EAAG+G,UAAUzG,UAAUL,EAAKgZ,UAE5B9d,EAAGwL,YAAY,CACb3G,KACAzD,KAAM,KACJyD,EAAG+G,UAAUzG,UAAUL,EAAKkZ,cAAelZ,EAAKsZ,cAChDvZ,EAAG+G,UAAUjE,OAAO7C,EAAKoZ,YAAY,IAIzCrZ,EAAG+G,UAAUzG,UAAUL,EAAK0Z,kBAAmB1Z,EAAK4Z,eAChD5Z,EAAKgjB,UAAY,EACnBjjB,EAAG+G,UAAUjE,OAAO7C,EAAK0Z,gBAChB1Z,EAAKgjB,UAAY,GAC1BjjB,EAAG+G,UAAUjE,OAAO7C,EAAK4Z,eAG/B,CASA+J,kBAA6C,IAA7B,GAAE5jB,EAAE,KAAEzC,EAAI,SAAE6lB,GAAa,UAAH,6CAAG,CAAC,EACxC,MAAMnjB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEhB0nB,IAAkC,IAAtB1nB,EAAQ0gB,WAAuB1gB,EAAQ0gB,UAAU7e,KAEhEpC,EAAGwL,YAAY,CAAE3G,OACjBA,EAAG+G,UAAUzG,UAAUL,EAAKkZ,cAAelZ,EAAKoZ,aAEpD,CASAwK,kBAAwC,IAAxB,IAAErlB,EAAG,GAAEwB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACnC,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKP,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,cAC5ClG,EAAQ4iB,MAAQre,EAAKse,WAAate,EAAKS,QAAS,CAElD,MAAM6iB,EAAS/kB,EAAIoM,SAAS+X,SAAS,GACrC,GACY,aAATplB,GAAuB0C,EAAKsc,YAAY,CAAEvc,GAAIujB,IAAU3mB,SAASoD,IACxD,YAATzC,GAAsB0C,EAAKyc,WAAW,CAAE1c,GAAIujB,IAAU3mB,SAASoD,GAChE,CACA,MAAMuhB,EAAOvhB,EAAGsH,aAAa5L,EAAQ4iB,MACjCiD,GAAQA,IAAST,SAASxC,KAAK3hB,MAAM,KAAK,IAE5CxB,EAAGwG,MAAM,CACP3B,GAAI3E,OACJuG,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KACJpB,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,GACzD4hB,QAAQC,UAAU,CAAC,EAAG,GAAI,KAC1BtoB,EAAG+E,YAAYC,IAAIF,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,aAAY,EAAM,GAIvE,CACF,CAEJ,CAeA8Z,SAAS,EAAsC3Z,GAAG,UAAzC,GAAE/B,EAAE,MAAEiJ,GAAQ,EAAK,MAAE2L,GAAQ,GAAO,EAC3C,MAAM3U,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAGrB,GAFAuN,EAAQA,IAAgBlH,SAAS,QAAR,EAADA,EAAGC,cAAM,WAAR,EAAD,EAAWiH,OAE/BhJ,EAAKuN,WAAavE,EACpB,OAAO,EAGT,GAAIA,GAAShJ,EAAKsiB,SAAS,CAAEviB,OAAO,CAElCC,EAAK6d,iBAEL,MAAMlT,EAAWlP,EAAQ2kB,eAAiBpgB,EAAKya,QAAQ9d,SAASoD,GAAMC,EAAKsc,YAAY,CAAEvc,KAAI2c,MAAM,IAAU,CAAC3c,GAC9GA,EAAK4K,EAAS,GAEd,MAAM8P,EAAUza,EAAKyc,WAAW,CAAE1c,KAAI2c,MAAM,IAEtCxB,EAAgBlb,EAAK+hB,kBAAkB,CAAErd,IAAKiG,IAC9CwQ,EAAenb,EAAKiiB,iBAAiB,CAAEvd,IAAK+V,IAElDza,EAAKmiB,YAAY,CAAEpiB,OACnBC,EAAK6iB,UAAU,CAAE9iB,OACjBC,EAAK+iB,gBAEL,MAAMhc,EAAgB,KAChB8c,EAAc,MACpB,IAAItlB,EAAMyB,EAAK8jB,YAAY,CAAEnZ,WAAU8P,UAASS,gBAAeC,eAAcnS,QAAOlH,MAEpF,MAAMc,EAAW5C,EAAK2b,eACtB,GAAI/Y,EAAS7D,OAAStD,EAAQ2gB,IAAK,CAEjC,MAAM2H,EAAc/jB,EAAKsgB,UAAU,CAAEvgB,GAAI6C,EAAS,GAAIohB,UAAWzlB,KAE5D9C,EAAQwoB,OAAT,MAAkBF,GAAAA,EAAaxlB,MACjCA,EAAMwlB,EAAYxlB,IAEtB,CAEK9C,EAAQwoB,MAGXjkB,EAAK,SAAD,OAAU+G,IAAiB0D,QAAQlM,GAFvCyB,EAAK,SAAD,OAAU+G,IAAmB,CAACxI,GAKpC,IAAK,MAAMjB,KAAQ0C,EAAK,SAAD,OAAU+G,IAAiB,GAChD/G,EAAKkkB,YAAY,CAAEnd,gBAAe8c,cAAavmB,OAAM0B,MAAO,IAGnD,MAAX,GAAI2V,EACF5U,EAAqB,QAAnB,EAAGmb,EAAc,UAAE,QAAInb,EACzBA,EAAG4U,QAGL,OAAO,CACT,CAKA,OALWlZ,EAAQuL,KAAO,IAAIvL,EAAQuL,IAAItK,MAAM,MAAMC,SAASmF,aAAC,EAADA,EAAGxE,OAEhE0C,EAAKsgB,UAAU,CAAEvgB,MAAM+B,IAGlB,CACT,CAYAwe,YAAmE,UAAzD,GAAEvgB,EAAE,MAAEiJ,GAAQ,EAAK,MAAE2L,GAAQ,EAAK,UAAEqP,GAAc,UAAH,6CAAG,CAAC,EAAGliB,EAAC,uCAC/D,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAGrB,GAFAuN,EAAQA,IAAgBlH,SAAS,QAAR,EAADA,EAAGC,cAAM,WAAR,EAAD,EAAWiH,OAE/BhJ,EAAKuN,WAAavE,EACpB,OAAO,EAGT,GAAIA,GAAShJ,EAAKuiB,UAAU,CAAExiB,OAAO,CAEnC,MAAM4K,EAAWlP,EAAQ2kB,eAAiBpgB,EAAKya,QAAQ9d,SAASoD,GAAMC,EAAKsc,YAAY,CAAEvc,KAAI2c,MAAM,IAAU,CAAC3c,GAC9GA,EAAK4K,EAAS,GAEd3K,EAAKqiB,eAAe,CAAEtiB,OAEtB,MAAM0a,EAAUza,EAAKyc,WAAW,CAAE1c,KAAI2c,MAAM,IAEtCxB,EAAgBlb,EAAK+hB,kBAAkB,CAAErd,IAAKiG,IAC9CwQ,EAAenb,EAAKiiB,iBAAiB,CAAEvd,IAAK+V,IAE7Cza,EAAK2b,eAAe5c,QACvBiB,EAAK6d,iBAGP,MAAM9W,EAAgB,MAChB8c,EAAc,KACdtlB,EAAMyB,EAAK8jB,YAAY,CAAEnZ,WAAU8P,UAASS,gBAAeC,eAAcnS,QAAOlH,MAEtF,GAAIrG,EAAQ0oB,YAAc1oB,EAAQwoB,OAASD,EACzC,IAAK,MAAMnjB,KAAOtC,EAAK,CACrB,MAAM+P,EAAO/P,EAAIsC,GACjB,GAAIyN,EAAKoU,SAAU,CACjB,MAAM0B,EAAaJ,EAAUnjB,GACvB6hB,EAAWpU,EAAKoU,SAAShjB,QAAOC,IAAMykB,EAAW1B,SAAS/lB,SAASgD,KAEzEykB,EAAWC,QAAUD,EAAW1B,SAAShjB,QAAOC,GAAK2O,EAAKoU,SAAS/lB,SAASgD,KAE5E2O,EAAKoU,SAAWA,CAClB,CACF,CASF,GANKjnB,EAAQwoB,MAGXjkB,EAAK,SAAD,OAAU+G,IAAiB0D,QAAQlM,GAFvCyB,EAAK,SAAD,OAAU+G,IAAmB,CAACxI,GAKhCyB,EAAK,SAAD,OAAU+G,IAAiBhI,OAAStD,EAAQ2gB,IAAK,CAEvD,MAAMkI,EAAYtkB,EAAK,SAAD,OAAU6jB,IAAehZ,QAC/C7K,EAAKukB,WAAW,CAAExd,cAAe8c,EAAaA,YAAa9c,EAAexI,IAAK+lB,IAE/E,MAAME,EAAaxkB,EAAK,SAAD,OAAU+G,IAAiB8D,QAClD7K,EAAKukB,WAAW,CAAExd,gBAAe8c,cAAatlB,IAAKimB,GACrD,CAEA,IAAK,MAAMlnB,KAAQ0C,EAAK,SAAD,OAAU+G,IAAiB,GAChD/G,EAAKkkB,YAAY,CAAEnd,gBAAe8c,cAAavmB,OAAM0B,MAAO,IAGnD,MAAX,GAAI2V,EACF5U,EAAqB,QAAnB,EAAGmb,EAAc,UAAE,QAAInb,EACzBA,EAAG4U,QAGL,OAAIqP,GACK,CAAEzlB,IAAKylB,EAGlB,CAEA,OAAO,CACT,CAYAF,cAA+E,IAAnE,SAAEnZ,EAAQ,QAAE8P,EAAO,cAAES,EAAa,aAAEC,EAAY,MAAEnS,EAAK,EAAElH,GAAM,UAAH,6CAAG,CAAC,EAE1E,MAAMvD,EAAM,CAAC,EAqBb,OApBAA,EAAIoM,SAAW,CACb+X,SAAU/X,EACV3B,MAAOA,EACPlH,EAAGA,GAED2Y,EAAQ1b,SACVR,EAAIkc,QAAU,CACZiI,SAAUjI,IAGVS,EAAcnc,SAChBR,EAAI2c,cAAgB,CAClBwH,SAAUxH,IAGVC,EAAapc,SACfR,EAAI4c,aAAe,CACjBuH,SAAUvH,IAGP5c,CACT,CAKAkmB,aACE,MAAMzkB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBuE,EAAKuN,WAIJvN,EAAK0kB,YAAc1kB,EAAK2kB,cACvBzpB,EAAG+H,QAAQ,CAAElD,GAAIC,EAAKoB,cAEpB3F,EAAQgiB,KAAKmH,QACf5kB,EAAK6kB,SAAS,CAAEC,OAAQrpB,EAAQgiB,KAAKsH,KAAMC,KAAMvpB,EAAQgiB,KAAKuH,OAE9DhlB,EAAKilB,SAAS,CAAEH,OAAQrpB,EAAQgiB,KAAKsH,KAAMC,KAAMvpB,EAAQgiB,KAAKuH,OAItE,CAKAnJ,kBACE,MAAM7b,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,UAIL9R,EAAQgiB,MAAQhiB,EAAQgiB,KAAKC,MAAQxiB,EAAGgB,gBACrC8D,EAAK0kB,aAAe1kB,EAAK2kB,cAET,OAAf3kB,EAAKhB,SAAoBgB,EAAKS,SAAWhF,EAAQgiB,KAAKhd,SAAU,CAElET,EAAK2kB,cAAe,EAEpB1d,aAAa/L,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,iBAE1D,MAAM+b,EAAOjiB,EAAQgiB,KAAKC,KAE1B,GAAI1d,EAAKuN,SACP,OAGFrS,EAAG+E,YAAYC,IACbF,EAAKoB,UAAS,UACXpB,EAAK2B,GAAE,eACVwF,YAAW,KAETnH,EAAKykB,YAAY,GAChB/G,EAAOxiB,EAAGgB,gBAGf8D,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,aAAD,OAAclJ,EAAKuY,eACjE,CAGN,CAKAsF,iBACE,MAAM7d,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBA,EAAQgiB,MAAQhiB,EAAQgiB,KAAKC,OAC1B1d,EAAK0kB,YAAc1kB,EAAK2kB,eAE3B3kB,EAAK2kB,cAAe,EAEpB1d,aAAa/L,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,iBAE1D3B,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,YAAD,OAAalJ,EAAKuY,gBAGpE,CAQAwI,WAAW,EAAQjf,GAAG,IAAX,GAAE/B,GAAI,EACf,MAAMC,EAAOJ,KAETI,EAAKuN,WAILxN,EAAG+G,UAAU3H,YAAYa,EAAKgZ,WAAcjZ,EAAG+G,UAAU3H,SAAS,aAItE2C,EAAEyT,iBAEEvV,EAAKsiB,SAAS,CAAEviB,QAClBC,EAAKyb,SAAS,CAAE1b,OAEpB,CAMAihB,YAAuB,IAAb,GAAEjhB,GAAO,UAAH,6CAAG,CAAC,EAClB,MAAMC,EAAOJ,KAEb,GAAII,EAAKuN,SACP,OAGF,MAAMwX,EAAOtgB,WAAW1E,EAAGsH,aAAa,gBACpC0d,EAAO,EACT/kB,EAAK6kB,SAAS,CAAEC,QAASC,IAEzB/kB,EAAKilB,SAAS,CAAEH,OAAQC,GAE5B,CAKA5D,0BACevhB,KAERoC,QACP,CAKAme,sBACevgB,KAERoC,QACP,CAcAkiB,cAA8D,IAAlD,cAAEnd,EAAa,YAAE8c,EAAW,KAAEvmB,EAAI,MAAE0B,GAAU,UAAH,6CAAG,CAAC,EACzD,MAAMgB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEf8C,EAAMyB,EAAK,SAAD,OAAU+G,IAAiB/H,GAC3C,GAAIT,GAAOA,EAAIjB,KAAUiB,EAAIjB,GAAMgC,KAAM,CACvC,MAAM4lB,EAAallB,EAAK,SAAD,OAAU6jB,IAC3BsB,EAAWD,EAAWA,EAAWnmB,OAAS,GAC3ComB,GAAaA,EAAS7nB,KAAS6nB,EAAS7nB,GAAMgC,OAE7CU,EAAKS,UAAYhF,EAAQwoB,MAC3B1lB,EAAIjB,GAAM8nB,SAAU,EACX3pB,EAAQwoB,QAAUxoB,EAAQwoB,MAAM3mB,KACzCiB,EAAIjB,GAAM+nB,aAAc,GAG1BrlB,EAAKslB,kBAAkB,CAAEve,gBAAezJ,SAExC0C,EAAKulB,YAAY,CAAExe,gBAAe8c,cAAatlB,MAAKjB,SAExD,CACF,CASAinB,aAAqD,IAA1C,cAAExd,EAAa,YAAE8c,EAAW,IAAEtlB,GAAQ,UAAH,6CAAG,CAAC,EAChD,MAAMyB,EAAOJ,KAEb,IAAK,MAAMtC,KAAQiB,EACjB,GAAIA,EAAIjB,GAAMgC,KACZ,IAAK,MAAMS,KAAMxB,EAAIjB,GAAMolB,SAEzBxnB,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,yBACnCzG,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,wBACnCsF,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKrE,EAAI,kBACrD2J,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKrE,EAAI,iBAErD0C,EAAKwlB,gBAAgB,CACnBze,cAAe8c,EACfA,YAAa9c,EACbxI,MACAwB,KACAzC,OACAmoB,WAAW,IAEbzlB,EAAK0lB,eAAe,CAClB3e,cAAe8c,EACfA,YAAa9c,EACbxI,MACAwB,KACAzC,OACAmoB,WAAW,GAKrB,CAUAF,cAA4D,IAAhD,cAAExe,EAAa,YAAE8c,EAAW,IAAEtlB,EAAG,KAAEjB,GAAS,UAAH,6CAAG,CAAC,EACvD,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfiJ,EAAMnG,EAAIjB,GAAMolB,SACtB,IAAK,MAAM3iB,KAAM2E,EAAK,OAEpB,MAAMye,EAA4B,QAApB,EAAG5kB,EAAIjB,GAAM+mB,eAAO,aAAjB,EAAmB1nB,SAASoD,GAE7C,IAAIuR,GACFtR,EAAKS,UAAWT,EAAKuN,UAEjBrS,EAAGqM,UAAU,CAAExH,KAAI6G,SAAUnL,EAAQ6V,OAAS7V,EAAQ,QAAD,OAASsL,IAAkBA,kBACtF,GAAIuK,GACmB,mBAAVA,EAAsB,CAG/BA,EAAQA,EAAM,CAAE2P,QAFF/lB,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKoF,EAAa,WAAYrC,EAAI8M,WAAU7R,GAAKA,IAAMI,IAEpE4lB,OADpBzqB,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKoF,EAAa,SAAUrC,EAAI3F,QAC9B,EAAGgB,KAAIC,QACtD,CAGFiH,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKrE,EAAI,kBACrD2J,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKrE,EAAI,iBAChDgU,EAEgB,QAAVA,EACTpW,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAKrE,EAAI,kBACrBhB,KAAM,KACJ0D,EAAKwlB,gBAAgB,CAAEze,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAAW,IAIjFjoB,EAAG+E,YAAYC,IACbH,EAAE,UACCC,EAAK2B,GAAKrE,EAAI,gBACjB6J,YAAW,KACTnH,EAAKwlB,gBAAgB,CAAEze,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAAW,GAC5E7R,IAfLtR,EAAKwlB,gBAAgB,CAAEze,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,aAmBhE5kB,EAAIjB,GAAM8nB,SAERrlB,IAAO2E,EAAIA,EAAI3F,OAAS,IAC1BiB,EAAK4lB,WAAW,CAAE7e,gBAAe8c,cAAatlB,MAAKjB,QAGzD,CAEKoH,EAAI3F,QACPiB,EAAK4lB,WAAW,CAAE7e,gBAAe8c,cAAatlB,MAAKjB,QAEvD,CAaAkoB,kBAAiG,IAAjF,cAAEze,EAAa,YAAE8c,EAAW,IAAEtlB,EAAG,GAAEwB,EAAE,KAAEzC,EAAI,SAAE6lB,EAAQ,UAAEsC,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC5F,MAAMzlB,EAAOJ,KAwEb,GAtEsB,OAAlBmH,IAA2B/G,EAAKwiB,gBAAgB,CAAEjkB,SAAUA,EAAIoM,SAAS3B,QAE9D,aAAT1L,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,IACtD1iB,EAAKmiB,YAAY,CAAEpiB,KAAIqiB,SAAS,IAGlCpiB,EAAKkjB,UAAU,CAAEnjB,KAAIzC,SACrB0C,EAAKqjB,cAAc,CAAE9kB,MAAKwB,KAAIzC,SAE9B0C,EAAK6lB,eAAe,CAAE9e,gBAAexI,MAAKwB,KAAIzC,SAC9C0C,EAAK8lB,iBAAiB,CAAE/e,gBAAehH,KAAIzC,SAC3C0C,EAAK+lB,cAAc,CAAEhf,gBAAehH,KAAIzC,OAAMiB,QACzCyB,EAAKS,QAGRT,EAAKgmB,iBAAiB,CAAEjf,gBAAehH,KAAIzC,OAAMkE,OAAO,IAFxDxB,EAAKgmB,iBAAiB,CAAEjf,gBAAehH,KAAIzC,SAKxC6lB,GAAqB,kBAAT7lB,GAAqC,iBAATA,GAEtC0C,EAAKuN,UACRrS,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,IAAE,OAAGoF,EAAa,aAC9BzK,KAAM,KACJyD,EAAGkJ,cACD,IAAIC,YAAY,MAAD,OAAOlJ,EAAKuY,cAAgB,CACzCxW,OAAQxD,EAAIoM,SAAS7I,IAExB,KAKkB,QAAlBiF,IAA4B/G,EAAK2iB,iBAAiB,CAAEpkB,SAAUA,EAAIoM,SAAS3B,SAEvE,aAAT1L,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,KACtD1iB,EAAKqiB,eAAe,CAAEtiB,KAAIqiB,SAAS,IAE9BpiB,EAAK2b,eAAe5c,SAEvBiB,EAAKhB,MAAQ,KACbgB,EAAK+iB,kBAIT/iB,EAAK0jB,YAAY,CAAE3jB,KAAIzC,SACvB0C,EAAK4jB,gBAAgB,CAAErlB,MAAKwB,KAAIzC,SAEhC0C,EAAKgmB,iBAAiB,CAAEjf,gBAAehH,KAAIzC,SAC3C0C,EAAK+lB,cAAc,CAAEhf,gBAAehH,KAAIzC,OAAMiB,QAEzC4kB,GAAqB,kBAAT7lB,GAAqC,iBAATA,GAEtC0C,EAAKuN,UACRrS,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,IAAE,OAAGoF,EAAa,aAC9BzK,KAAM,KACJyD,EAAGkJ,cACD,IAAIC,YAAY,OAAD,OAAQlJ,EAAKuY,cAAgB,CAC1CxW,OAAQxD,EAAIoM,SAAS7I,IAExB,MAON2jB,IAGCzlB,EAAKuN,UACPrS,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAKrE,EAAI,eAEvB0C,EAAKimB,WAAW,CAAElf,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,cAG7DjoB,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAKrE,EAAI,aACrBhB,KAAM,KACJ0D,EAAKimB,WAAW,CAAElf,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAAW,KAKzE5kB,EAAIjB,GAAM8nB,SAAW7mB,EAAIjB,GAAM+nB,aAAa,CAC/C,MAAM3gB,EAAMnG,EAAIjB,GAAMolB,SAElB3iB,IAAO2E,EAAIA,EAAI3F,OAAS,IAC1BiB,EAAK4lB,WAAW,CAAE7e,gBAAe8c,cAAatlB,MAAKjB,QAEvD,CAEJ,CAYA2oB,aAAyE,IAA9D,cAAElf,EAAa,YAAE8c,EAAW,IAAEtlB,EAAG,GAAEwB,EAAE,KAAEzC,EAAI,SAAE6lB,GAAa,UAAH,6CAAG,CAAC,EACpE,MAAMnjB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfiJ,EAAMnG,EAAIjB,GAAMolB,SACtB,IAAI9b,GACF5G,EAAKS,UAAWT,EAAKuN,UAEjBrS,EAAGgM,SAAS,CAAEnH,KAAI6G,SAAUnL,EAAQmL,UAAYnL,EAAQ,WAAD,OAAYsL,IAAkBA,kBAC3F,GAAIH,GACsB,mBAAbA,EAAyB,CAGlCA,EAAWA,EAAS,CAAEqa,QAFR/lB,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKoF,EAAa,WAAYrC,EAAI8M,WAAU7R,GAAKA,IAAMI,IAE9D4lB,OAD1BzqB,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKoF,EAAa,SAAUrC,EAAI3F,QACxB,EAAGgB,KAAIC,QAC5D,CAGFiH,aAAa/L,EAAG+E,YAAYE,IAAIJ,EAAI,GAAF,OAAKC,EAAK2B,GAAKrE,EAAI,iBAChDsJ,EAEmB,QAAbA,EACT1L,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAKrE,EAAI,iBACrBhB,KAAM,KACJ0D,EAAK0lB,eAAe,CAAE3e,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAAW,IAIhFjoB,EAAG+E,YAAYC,IACbH,EAAE,UACCC,EAAK2B,GAAKrE,EAAI,eACjB6J,YAAW,KACTnH,EAAK0lB,eAAe,CAAE3e,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAAW,GAC3Evc,IAfL5G,EAAK0lB,eAAe,CAAE3e,gBAAe8c,cAAatlB,MAAKwB,KAAIzC,OAAM6lB,YAkBrE,CAaAuC,iBAAgG,IAAjF,cAAE3e,EAAa,YAAE8c,EAAW,IAAEtlB,EAAG,GAAEwB,EAAE,KAAEzC,EAAI,SAAE6lB,EAAQ,UAAEsC,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC3F,MAAMzlB,EAAOJ,KAEb,GAAsB,OAAlBmH,EAAwB,CAE1B,GAAa,aAATzJ,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,KAEjD1iB,EAAK,SAAD,OAAU6jB,IAAe9kB,OAEhC,IAAK,MAAMzB,KAAQiB,EACjByB,EAAK6lB,eAAe,CAAE9e,cAAe8c,EAAatlB,MAAKjB,SAK7D0C,EAAKojB,cAAc,CAAErjB,KAAIzC,SAEzB0C,EAAKgmB,iBAAiB,CAAEjf,gBAAehH,KAAIzC,OAAMkE,OAAO,IACxDxB,EAAKkmB,iBAAiB,CAAEnf,gBAAehH,KAAIzC,OAAMiB,QAE5C4kB,GAAqB,kBAAT7lB,GAAqC,iBAATA,GAEtC0C,EAAKuN,UACRrS,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,IAAE,OAAGoF,EAAa,YAC9BzK,KAAM,KACJyD,EAAGkJ,cACD,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,cAAgB,CAC7CxW,OAAQxD,EAAIoM,SAAS7I,IAExB,GAKX,MAAO,GAAsB,QAAlBiF,EAAyB,CAElC,GAAa,aAATzJ,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,KAEjD1iB,EAAK2b,eAAe5c,OAEvB,IAAK,MAAMzB,KAAQiB,EACjByB,EAAK6lB,eAAe,CAAE9e,gBAAexI,MAAKjB,SAKhD0C,EAAK2jB,gBAAgB,CAAE5jB,KAAIzC,SAE3B0C,EAAK8lB,iBAAiB,CAAE/e,gBAAehH,KAAIzC,SAC3C0C,EAAKgmB,iBAAiB,CAAEjf,gBAAehH,KAAIzC,OAAMkE,OAAO,IAEnD2hB,GAAqB,kBAAT7lB,GAAqC,iBAATA,GAEtC0C,EAAKuN,UACRrS,EAAGwG,MAAM,CACP3B,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,IAAE,OAAGoF,EAAa,YAC9BzK,KAAM,KACJyD,EAAGkJ,cACD,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,cAAgB,CAC9CxW,OAAQxD,EAAIoM,SAAS7I,IAExB,GAKX,CAEA,IAAK2jB,IAEElnB,EAAIjB,GAAM8nB,UAAY7mB,EAAIjB,GAAM+nB,YAAa,CAChD,MAAM3gB,EAAMnG,EAAIjB,GAAMolB,SAElB3iB,IAAO2E,EAAIA,EAAI3F,OAAS,IAC1BiB,EAAK4lB,WAAW,CAAE7e,gBAAe8c,cAAatlB,MAAKjB,QAEvD,CAEJ,CAUAsoB,aAA2D,IAAhD,cAAE7e,EAAa,YAAE8c,EAAW,IAAEtlB,EAAG,KAAEjB,GAAS,UAAH,6CAAG,CAAC,EACtD,MAAM0C,EAAOJ,KAEb,GAAIrB,EAAIjB,GAAO,CAEbiB,EAAIjB,GAAMgC,MAAO,EAEjB,IAAIA,EAAO,EACX,IAAK,MAAMhC,KAAQiB,EACbA,EAAIjB,GAAMgC,MACZA,IAIJ,GAAIA,IAASsB,OAAO3B,QAAQV,GAAKQ,OAAQ,CAEvC,IAAK,MAAMzB,KAAQiB,EACjByB,EAAKkkB,YAAY,CACfnd,cAAe8c,EACfA,YAAa9c,EACbzJ,OACA0B,MAAOgB,EAAK,SAAD,OAAU6jB,IAAe9kB,OAAS,IAIjDiB,EAAK,SAAD,OAAU+G,IAAiBof,MAE/BnmB,EAAKomB,eAAe,CAAErf,gBAAexI,OACvC,CACF,CACF,CAQA6nB,iBAA4C,IAA7B,cAAErf,EAAa,IAAExI,GAAQ,UAAH,6CAAG,CAAC,EACvC,MAAMyB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAsB,OAAlBsL,GAmCF,GAhCA7L,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KACJ,GAAI0D,EAAKS,QAAS,CAEhBT,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAE1D,IAAK,MAAMjb,KAAQiB,EACjB,IAAK,MAAMwB,KAAMxB,EAAIjB,GAAMolB,SACzB3iB,EAAG+G,UAAUzG,UAAUL,EAAKwZ,iBAI5B/d,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAEhD,CAEAA,EAAK6b,kBAED7b,EAAKS,UACPT,EAAKS,SAAU,GAGjBT,EAAKijB,SAAW,IAAI,IAIpBxnB,EAAQ4qB,aAAermB,EAAKsmB,WAAY,CAC1C,MAAMC,EAAMvmB,EAAKya,QAAQ1b,OAASiB,EAAKya,QAAUza,EAAK2K,SACtD3K,EAAKsmB,WAAarO,EAA0BsO,EAAK9qB,EAAQwc,WACzDjY,EAAKsmB,WAAWtP,UAClB,MAC2B,QAAlBjQ,GAELtL,EAAQ4qB,YAAcrmB,EAAKsmB,aAC7BtmB,EAAKsmB,WAAWlR,aAChBpV,EAAKsmB,WAAa,KAGxB,CAcAT,iBAAsD,IAAvC,cAAE9e,EAAa,IAAExI,EAAG,GAAEwB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACjD,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAMrB,GAJKuE,EAAKya,QAAQ1b,QAAmB,aAATzB,IAC1BA,EAAO,WAGL7B,EAAQ+qB,QAAU/qB,EAAQ+qB,OAAOlpB,GACnC,GAAsB,OAAlByJ,EACF/G,EAAKwmB,OAASxmB,EAAKwmB,OAASxmB,EAAKwmB,OAAS/qB,EAAQ+qB,OAAOlpB,GAAMiE,MAC/DvB,EAAKwmB,OAASxmB,EAAKwmB,OAAS/qB,EAAQ+qB,OAAOlpB,GAAMmpB,OACjD1mB,EAAGoE,MAAMqiB,OAASxmB,EAAKwmB,YAClB,GAAsB,QAAlBzf,IACT/G,EAAKwmB,OAAS/qB,EAAQ+qB,OAAOlpB,GAAMiE,MAE/BhD,EAAIjB,IACN,IAAK,MAAMyC,KAAMxB,EAAIjB,GAAMolB,SACzB3iB,EAAGoE,MAAMqiB,OAASxmB,EAAKwmB,MAKjC,CAQAlB,oBAAgD,IAA9B,cAAEve,EAAa,KAAEzJ,GAAS,UAAH,6CAAG,CAAC,EAC3C,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACjBA,EAAQirB,YAEG,YAATppB,IAAwB0C,EAAKya,QAAQ1b,QAAmB,aAATzB,KAC3B,OAAlByJ,EAEF7L,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,kBACdrF,KAAM,KACJ,IAAK,MAAMwG,KAAKrH,EAAQirB,UAAUhqB,MAAM,KAAM,CAE5CxB,EAAGyH,WAAWE,IAAI,CAChBC,EAAGA,EACHnB,GAAI3B,EAAK2B,KAGO/E,SAASoB,gBAAgBmI,cAAc,QAC/CW,UAAUjE,IAAIC,EAC1B,KAGuB,QAAlBiE,GAET7L,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,kBACdrF,KAAM,KACJ,IAAK,MAAMwG,KAAKrH,EAAQirB,UAAUhqB,MAAM,KAMtC,GAJAxB,EAAGyH,WAAWtC,OAAO,CACnByC,EAAGA,EACHnB,GAAI3B,EAAK2B,MAENzG,EAAGyH,WAAWxC,IAAI,CAAE2C,EAAGA,IAAK/D,OAAQ,CAErBnC,SAASoB,gBAAgBmI,cAAc,QAC/CW,UAAUzG,OAAOyC,EAC7B,CACF,IAMZ,CASAgjB,mBAAmD,IAAlC,cAAE/e,EAAa,GAAEhH,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EAC9C,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,GAAIA,EAAQkrB,WAEG,YAATrpB,IAAwB0C,EAAKya,QAAQ1b,QAAmB,aAATzB,GACjD,GAAsB,OAAlByJ,EAAwB,CAE1B,MAAM6f,EAAiBhqB,SAASuJ,cAAc1K,EAAQkrB,UACjC/pB,SAASuJ,cAAc,oBAAD,OAAqBnG,EAAK2B,GAAE,QAErE5B,EAAG8mB,OAAO3rB,EAAGmK,KAAK,CAAED,IAAK,iDAAF,OAAmDpF,EAAK2B,GAAE,eAEnFilB,EAAepgB,OAAOzG,EACxB,MAAO,GAAsB,QAAlBgH,EAAyB,CAElC,MAAM+f,EAAelqB,SAASuJ,cAAc,oBAAD,OAAqBnG,EAAK2B,GAAE,OACnEmlB,GACFA,EAAaD,OAAO9mB,GACpB+mB,EAAazmB,UAEbN,EAAGM,QAEP,CAGN,CAUA6lB,mBAAwD,IAAvC,cAAEnf,EAAa,IAAExI,EAAG,GAAEwB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACnD,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,GAAIA,EAAQsrB,UACY,OAAlBhgB,EAAwB,CAC1B,MAAMggB,EAAW,IAAY,IAAX,GAAEhnB,GAAI,EAEtB,IAAKC,EAAKS,SAAWhF,EAAQurB,aAAc,CAEzC,MAAM5B,EAAUplB,EAAKS,QACrBvF,EAAGmB,MAAM,CACPE,MAAO,WACPD,KAAM,KACJQ,uBAAsB,KAChBsoB,IACFlqB,EAAGiB,mBAAoB,GAEzB4D,EAAGkJ,cAAc,IAAIC,YAAY,gCAAgC,GACjE,GAGR,GAGF,GAAgC,iBAArBzN,EAAQsrB,UACjB,GAAIzpB,IAAS7B,EAAQsrB,SACnBA,EAAS,CAAEhnB,YACN,GAAa,aAATzC,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,GAAI,OACjE,IAAIuE,EAAkBjnB,EAAKoB,UAAU+E,cAAc1K,EAAQsrB,UAC3DE,EAAiC,QAAlB,EAAGA,SAAe,QAAIrqB,SAASuJ,cAAc1K,EAAQsrB,UAChEE,GACFF,EAAS,CAAEhnB,GAAIknB,GAEnB,MACkB,aAAT3pB,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,IAC7DqE,EAAS,CAAEhnB,GAAIC,EAAKoB,WAExB,CAEJ,CAUA4kB,mBAAkE,IAAjD,cAAEjf,EAAa,GAAEhH,EAAE,KAAEzC,EAAI,MAAEkE,GAAQ,GAAU,UAAH,6CAAG,CAAC,EAC7D,MAAMxB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,GAAIA,EAAQyrB,eACV,GAAsB,OAAlBngB,GACF,GAAItL,EAAQyrB,iBAAmB5pB,EAC7B,GAAIkE,EACFzB,EAAGoE,MAAMkJ,OAAS,UAClBtN,EAAGoE,MAAMgjB,UAAY,OACrBpnB,EAAG+G,UAAUjE,IAAI,qBACjB3H,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,6BAC9B,CACL5B,EAAG+G,UAAUzG,OAAO,qBACpBN,EAAGoE,MAAMkJ,OAAS,OAClBtN,EAAGoE,MAAMgjB,UAAY,OACrB,MAAMpiB,EAAQhF,EAAG6H,aACjB7H,EAAGoE,MAAMkJ,OAAS,GAClBtN,EAAGoE,MAAMgjB,UAAY,GACrB,IAAI1mB,EAAUV,EAAG6H,aACjBnH,EAAUA,IAAYsE,EAAQ,EAAItE,EAClCV,EAAGoE,MAAMkJ,OAAS,GAAH,OAAM5M,EAAO,MAC5BV,EAAGoE,MAAMgjB,UAAY,OACrBjsB,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,uBACdrF,KAAM,KACJyD,EAAGoE,MAAMkJ,OAAS,GAAH,OAAMtI,EAAK,KAAI,GAGpC,OAEG,GAAsB,QAAlBgC,GACLtL,EAAQyrB,iBAAmB5pB,EAC7B,GAAIkE,EACFzB,EAAGoE,MAAMkJ,OAAS,GAClBtN,EAAGoE,MAAMgjB,UAAY,GACrBjsB,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,6BAC9B,CACL5B,EAAG+G,UAAUzG,OAAO,qBACpB,MAAM4gB,EAAUlhB,EAAG6H,aACnB7H,EAAGoE,MAAMkJ,OAAS,GAClBtN,EAAGoE,MAAMgjB,UAAY,GACrB,IAAIpiB,EAAQhF,EAAG6H,aACf7H,EAAGoE,MAAMkJ,OAAS,OAClBtN,EAAGoE,MAAMgjB,UAAY,OACrB,MAAM1mB,EAAUV,EAAG6H,aACnB7C,EAAQtE,IAAYsE,EAAQ,EAAIA,EAChChF,EAAGoE,MAAMkJ,OAAS,GAAH,OAAM4T,EAAO,MAC5B/lB,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,uBACdrF,KAAM,KACJyD,EAAGoE,MAAMkJ,OAAS,GAAH,OAAMtI,EAAK,KAAI,GAGpC,CAIN,GAAItJ,EAAQ2rB,cACV,GAAsB,OAAlBrgB,GACF,GAAItL,EAAQ2rB,gBAAkB9pB,EAC5B,GAAIkE,EACFzB,EAAGoE,MAAMgE,MAAQ,UACjBpI,EAAGoE,MAAMkjB,SAAW,OACpBtnB,EAAG+G,UAAUjE,IAAI,qBACjB3H,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,4BAC9B,CACL5B,EAAG+G,UAAUzG,OAAO,qBACpBN,EAAGoE,MAAMgE,MAAQ,OACjBpI,EAAGoE,MAAMkjB,SAAW,OACpB,MAAMtiB,EAAQhF,EAAG4H,YACjB5H,EAAGoE,MAAMgE,MAAQ,GACjBpI,EAAGoE,MAAMkjB,SAAW,GACpB,IAAI5mB,EAAUV,EAAG4H,YACjBlH,EAAUA,IAAYsE,EAAQ,EAAItE,EAClCV,EAAGoE,MAAMgE,MAAQ,GAAH,OAAM1H,EAAO,MAC3BV,EAAGoE,MAAMkjB,SAAW,OACpBnsB,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,sBACdrF,KAAM,KACJyD,EAAGoE,MAAMgE,MAAQ,GAAH,OAAMpD,EAAK,KAAI,GAGnC,OAEG,GAAsB,QAAlBgC,GACLtL,EAAQ2rB,gBAAkB9pB,EAC5B,GAAIkE,EACFzB,EAAGoE,MAAMgE,MAAQ,GACjBpI,EAAGoE,MAAMkjB,SAAW,GACpBnsB,EAAGwL,YAAY,CAAE3G,KAAI4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,4BAC9B,CACL5B,EAAG+G,UAAUzG,OAAO,qBACpB,MAAM4gB,EAAUlhB,EAAG4H,YACnB5H,EAAGoE,MAAMgE,MAAQ,GACjBpI,EAAGoE,MAAMkjB,SAAW,GACpB,IAAItiB,EAAQhF,EAAG4H,YACf5H,EAAGoE,MAAMgE,MAAQ,OACjBpI,EAAGoE,MAAMkjB,SAAW,OACpB,MAAM5mB,EAAUV,EAAG4H,YACnB5C,EAAQtE,IAAYsE,EAAQ,EAAIA,EAChChF,EAAGoE,MAAMgE,MAAQ,GAAH,OAAM8Y,EAAO,MAC3B/lB,EAAGwL,YAAY,CACb3G,KACA4B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,sBACdrF,KAAM,KACJyD,EAAGoE,MAAMgE,MAAQ,GAAH,OAAMpD,EAAK,KAAI,GAGnC,CAIR,CAUAghB,gBAAqD,IAAvC,cAAEhf,EAAa,GAAEhH,EAAE,KAAEzC,EAAI,IAAEiB,GAAQ,UAAH,6CAAG,CAAC,EAChD,MAAMyB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,GAAsB,OAAlBsL,EAAwB,CAE1B,GAAItL,EAAQ6rB,cACG,aAAThqB,GAAgC,YAATA,GAAoB,CAC7C,MAAMiqB,EAAexnB,EACfynB,EAA4BtsB,EAAG+E,YAAYoC,IAC/CklB,EAAY,sBACGvnB,EAAK2B,IACpB3B,EAAKynB,gCAAgCvmB,KAAKlB,IAG5ClD,uBAAsB,KACpByqB,EAAavqB,oBAAoB,QAASwqB,GAC1CD,EAAatqB,iBAAiB,QAASuqB,EAA0B,GAErE,CAGF,GAAI/rB,EAAQisB,cAEG,aAATpqB,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,GAAI,CAC1D,MAAMiF,EAAW/qB,SAASkC,iBAAiBrD,EAAQisB,cACnD,IAAK,MAAME,KAAWD,EAAU,CAC9B,MAAME,EAA6B3sB,EAAG+E,YAAYoC,IAChDulB,EAAO,0BACY5nB,EAAK2B,IACxB3B,EAAK8nB,iCAAiC5mB,KAAKlB,IAG7ClD,uBAAsB,KACpB8qB,EAAQ5qB,oBAAoB,YAAa6qB,GACzCD,EAAQ3qB,iBAAiB,YAAa4qB,EAA2B,GAErE,CACF,CAGF,GAAIpsB,EAAQssB,YAEG,YAATzqB,IAAwB0C,EAAKya,QAAQ1b,QAAmB,aAATzB,GAAsB,CACvE,MAAM0qB,EAAgBjoB,EAAGjB,iBAAiBrD,EAAQssB,WAClD,IAAK,MAAMR,KAAgBS,EAAe,CACxC,MAAMC,EAA0B/sB,EAAG+E,YAAYoC,IAC7CklB,EAAY,sBACGvnB,EAAK2B,IACpB3B,EAAKkoB,8BAA8BhnB,KAAKlB,IAG1ClD,uBAAsB,KACpByqB,EAAavqB,oBAAoB,QAASirB,GAC1CV,EAAatqB,iBAAiB,QAASgrB,EAAwB,IAGjE,MAAME,EAAiCjtB,EAAG+E,YAAYoC,IACpDklB,EAAY,wBACKvnB,EAAK2B,IACtB3B,EAAKooB,qCAAqClnB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEunB,kBAGpEzqB,uBAAsB,KACpByqB,EAAatqB,iBAAiB,UAAWkrB,GACzCZ,EAAa3L,aAAa,WAAY,KACtC2L,EAAa3L,aAAa,OAAQ,SAAS,GAE/C,CACF,CAEJ,MAAO,GAAsB,QAAlB7U,EAAyB,CAElC,GAAItL,EAAQ6rB,cACG,aAAThqB,GAAgC,YAATA,GAAoB,CAC7C,MAAMiqB,EAAexnB,EACfynB,EAA4BtsB,EAAG+E,YAAYE,IAAIonB,EAAc,eAAF,OAAiBvnB,EAAK2B,KACvF4lB,EAAavqB,oBAAoB,QAASwqB,EAC5C,CAGF,GAAI/rB,EAAQisB,cAEG,aAATpqB,GAAuByC,IAAOxB,EAAIoM,SAAS+X,SAAS,GAAI,CAC1D,MAAMsF,EAAgBprB,SAASkC,iBAAiBrD,EAAQisB,cACxD,IAAK,MAAMH,KAAgBS,EAAe,CACxC,MAAMH,EAA6B3sB,EAAG+E,YAAYE,IAAIonB,EAAc,mBAAF,OAAqBvnB,EAAK2B,KAC5F4lB,EAAavqB,oBAAoB,YAAa6qB,EAChD,CACF,CAGF,GAAIpsB,EAAQssB,YAEG,YAATzqB,IAAwB0C,EAAKya,QAAQ1b,QAAmB,aAATzB,GAAsB,CACvE,MAAM0qB,EAAgBjoB,EAAGjB,iBAAiBrD,EAAQssB,WAClD,IAAK,MAAMR,KAAgBS,EAAe,CACxC,MAAMC,EAA0B/sB,EAAG+E,YAAYE,IAAIonB,EAAc,eAAF,OAAiBvnB,EAAK2B,KACrF4lB,EAAavqB,oBAAoB,QAASirB,GAE1C,MAAME,EAAiCjtB,EAAG+E,YAAYE,IAAIonB,EAAc,iBAAF,OAAmBvnB,EAAK2B,KAC9F4lB,EAAavqB,oBAAoB,UAAWmrB,GAC5CZ,EAAac,gBAAgB,YAC7Bd,EAAac,gBAAgB,OAC/B,CACF,CAEJ,CACF,CAMAZ,gCAAgC3lB,GAC9B,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIqG,EAAEoO,OAAOpU,QAAQL,EAAQ6rB,aAAc,CACzC,MAAM1kB,EAAW5C,EAAK2b,eACtB,IAAK,MAAMsF,KAAWre,EACpB5C,EAAKsgB,UAAU,CAAEvgB,GAAIkhB,EAASjY,OAAO,GAEzC,CACF,CAMA8e,iCAAiChmB,GAC/B,MAAM9B,EAAOJ,KAEb,IAAK1E,EAAGiE,SAAS,CAAEuF,IAAK,IAAI1E,EAAK2K,YAAa3K,EAAKya,SAAU9V,GAAI7C,EAAEoO,SAAW,CAC5E,MAAMtN,EAAW5C,EAAK2b,eACtB,IAAK,MAAMsF,KAAWre,EACpB5C,EAAKsgB,UAAU,CAAEvgB,GAAIkhB,EAASjY,OAAO,GAEzC,CACF,CAMAkf,8BAA8BpmB,GAC5B,MAAM9B,EAAOJ,KAEb,GAAI1E,EAAGiE,SAAS,CAAEuF,IAAK,IAAI1E,EAAK2K,YAAa3K,EAAKya,SAAU9V,GAAI7C,EAAEoO,SAAW,CAC3E,MAAMtN,EAAW5C,EAAK2b,eACtB,IAAK,MAAMsF,KAAWre,EACpB5C,EAAKsgB,UAAU,CAAEvgB,GAAIkhB,EAASjY,OAAO,GAEzC,CACF,CAQAof,qCAAqC,EAAkBtmB,GAAG,IAArB,aAAEylB,GAAc,EACnD,MAAM1mB,EAAMiB,EAAEjB,IAEF,UAARA,GAA2B,MAARA,IACrBiB,EAAEyT,iBACFgS,EAAate,cAAc,IAAIC,YAAY,UAE/C,CAcAof,eAA8D,IAAjD,MAAEtpB,GAAQ,EAAK,OAAE8lB,EAAS,EAAC,KAAEE,EAAO,MAAS,UAAH,6CAAG,CAAC,EACzD,MAAMhlB,EAAOJ,KASb,OAPc,IAAVZ,EACFA,GAAgB8lB,EAEhB9lB,EADwB,OAAfgB,EAAKhB,MACNgB,EAAKhB,MAAQ8lB,EAEb,EAEH9kB,EAAKuoB,YAAY,CAAEvpB,QAAOgmB,QACnC,CASAwD,UAA0C,IAAlC,OAAE1D,EAAS,EAAC,KAAEE,EAAO,MAAS,UAAH,6CAAG,CAAC,EACrC,MAEMhY,EAFOpN,KAEE0oB,aAAa,CAAExD,SAAQE,SACtC,OAHaplB,KAGDqc,oBAAoBjP,EAClC,CAUAiY,WAA0D,IAAjD,OAAEH,EAAS,EAAC,MAAE9b,GAAQ,EAAK,KAAEgc,EAAO,MAAS,UAAH,6CAAG,CAAC,EACrD,MAAMhlB,EAAOJ,KAEbI,EAAKijB,UAAW,EAChB,MAAMjkB,EAAQgB,EAAKsoB,aAAa,CAAExD,SAAQE,SAE1C,OADWhlB,EAAKyoB,QAAQ,CAAEzpB,QAAOgK,QAAOgc,QAE1C,CAUA0D,eAA8D,IAAjD,MAAE1pB,GAAQ,EAAK,OAAE8lB,EAAS,EAAC,KAAEE,EAAO,MAAS,UAAH,6CAAG,CAAC,EACzD,MAAMhlB,EAAOJ,KASb,OAPc,IAAVZ,EACFA,GAAgB8lB,EAEhB9lB,EADwB,OAAfgB,EAAKhB,MACNgB,EAAKhB,MAAQ8lB,EAEb9kB,EAAKic,oBAAoBld,OAAS,EAErCiB,EAAKuoB,YAAY,CAAEvpB,QAAOgmB,QACnC,CASA2D,UAA0C,IAAlC,OAAE7D,EAAS,EAAC,KAAEE,EAAO,MAAS,UAAH,6CAAG,CAAC,EACrC,MAEMhY,EAFOpN,KAEE8oB,aAAa,CAAE5D,SAAQE,SACtC,OAHaplB,KAGDqc,oBAAoBjP,EAClC,CAUA6X,WAA0D,IAAjD,OAAEC,EAAS,EAAC,MAAE9b,GAAQ,EAAK,KAAEgc,EAAO,MAAS,UAAH,6CAAG,CAAC,EACrD,MAAMhlB,EAAOJ,KAEbI,EAAKijB,UAAW,EAChB,MAAMjkB,EAAQgB,EAAK0oB,aAAa,CAAE5D,SAAQE,SAE1C,OADWhlB,EAAKyoB,QAAQ,CAAEzpB,QAAOgK,QAAOgc,QAE1C,CASAuD,cAAyC,IAA7B,MAAEvpB,EAAK,KAAEgmB,EAAO,MAAS,UAAH,6CAAG,CAAC,EACpC,MAAMhlB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAGf2gB,EAAMpc,EAAKic,oBAAoBld,OAAS,EAsB9C,OAvBY,IAEAqd,EAEVpd,EAAQ,KAEJA,EAAQod,EACN4I,GAAkB,OAATA,IAAkBvpB,EAAQupB,MAAQhlB,EAAK4oB,QAClD5pB,EAAQA,EAAQod,EAAM,EACtBpd,EAAQA,EAAQod,EAAMA,EAAMpd,GAE5BA,EAAQ,KAEDA,EAbD,IAcJgmB,GAAiB,MAARA,IAAiBvpB,EAAQupB,MAAQhlB,EAAK4oB,QACjD5pB,EAAQA,EAAQod,EAAM,EACtBpd,EAAQA,EAhBF,IAgBsBA,GAE5BA,EAAQ,MAKPA,CACT,CASA6pB,SAAwC,IAAjC,MAAE7pB,EAAQ,EAAC,KAAEgmB,EAAO,MAAS,UAAH,6CAAG,CAAC,EACnC,MAEMhY,EAFOpN,KAEE2oB,YAAY,CAAEvpB,QAAOgmB,SACpC,OAHaplB,KAGDqc,oBAAoBjP,EAClC,CAUAyb,UAAoD,IAA5C,MAAEzpB,EAAK,MAAEgK,GAAQ,EAAK,KAAEgc,EAAO,MAAS,UAAH,6CAAG,CAAC,EAC/C,MAAMhlB,EAAOJ,KAEPG,EAAKC,EAAK6oB,OAAO,CAAE7pB,QAAOgmB,SAIhC,OAHIjlB,GACFC,EAAKyb,SAAS,CAAE1b,KAAIiJ,UAEfjJ,CACT,CASAia,SACE,MAAMha,EAAOJ,KACb,GAAII,EAAKuN,SAAU,CAEjBvN,EAAKuN,UAAW,EAChBvN,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,cACzD,IAAK,MAAMvY,KAAMC,EAAK2K,SACpB5K,EAAGsoB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,cAE/C,IAAK,MAAM3T,KAAM3E,EAAKya,QACpB9V,EAAG0jB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,cAG/CtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,eAC9D,CACF,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,IAAKuE,EAAKuN,SAAU,CAIlB,GAHAvN,EAAKuN,UAAW,EAGZ9R,EAAQstB,kBACV,IAAK,MAAMhpB,KAAMC,EAAK2K,SAASjL,QAAOC,GAAKK,EAAKwd,WAAW,CAAEzd,GAAIJ,MAC/DK,EAAKsgB,UAAU,CAAEvgB,KAAIiJ,OAAO,IAIhChJ,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,aAAa,IACnE,IAAK,MAAMvY,KAAMC,EAAK2K,SACpB5K,EAAG6b,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,aAAa,IAEzD,IAAK,MAAM3T,KAAM3E,EAAKya,QACpB9V,EAAGiX,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,aAAa,IAGzD,GAAI7c,EAAQ+iB,KACV,IAAK,MAAMA,KAAQxe,EAAKya,QACtB+D,EAAK1X,UAAUzG,OAAO,WAItBL,EAAK8f,YACP9f,EAAK8f,UAAUhiB,aACfkC,EAAK8f,UAAY,MAGnB7Y,aAAa/L,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,GAAF,OAAKpB,EAAK2B,GAAE,iBAErDmnB,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,eAEhE,CACF,CASA6B,YACE,MAAMpa,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETutB,KAAM,CAEhB,IAAItkB,EAAM1E,EAAK2K,SACX4b,EAAMvmB,EAAKya,QAEVza,EAAKya,QAAQ1b,SAChB2F,EAAM,GACN6hB,EAAMvmB,EAAK2K,UAGb3K,EAAKipB,cAA+B,WAAfjpB,EAAK0a,QAAsB1a,EAAK2K,SAAShO,SAASqD,EAAKoB,WAE5EpB,EAAKkpB,cAAc,CAAExkB,MAAK6hB,QAC1BvmB,EAAKmpB,YAAY,CAAEzkB,MAAK6hB,QACxBvmB,EAAKopB,iBACLppB,EAAKqpB,gBACLrpB,EAAKspB,kBACLtpB,EAAKupB,gBAAgB,CAAE7kB,QACvB1E,EAAKwpB,kBAAkB,CAAE9kB,IAAK1E,EAAK2K,UACrC,CACF,CAQAue,gBAAiC,IAAnB,IAAExkB,EAAG,IAAE6hB,GAAQ,UAAH,6CAAG,CAAC,EAC5B,MAAMvmB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,GAAIA,EAAQutB,KAAKS,KAAM,CACrB,IAAIC,GAAQ,EAMZ,GAJIjuB,EAAQutB,KAAKW,UAAY3pB,EAAKipB,eAChCjpB,EAAKoB,UAAUwa,aAAa,mBAAoB,YAGxB,UAAtBngB,EAAQutB,KAAKS,KAEf,IAAK,MAAM1pB,KAAM2E,EACf3E,EAAG6b,aAAa,iBAAiB,QAE9B,GAA0B,WAAtBngB,EAAQutB,KAAKS,KAAmB,CAEzC,IAAK,MAAM1pB,KAAM2E,EACf3E,EAAG6b,aAAa,gBAAiB,UAEnC,IAAK,MAAMjX,KAAM4hB,EACf5hB,EAAGiX,aAAa,OAAQ,UACxBjX,EAAGiX,aAAa,aAAc,OAElC,MAAO,GAA0B,YAAtBngB,EAAQutB,KAAKS,KAEtB,IAAK,MAAM9kB,KAAM4hB,EACf5hB,EAAGiX,aAAa,OAAQ,gBAErB,GAA0B,aAAtBngB,EAAQutB,KAAKS,MAAuBzpB,EAAKipB,cAAe,CAEjEjpB,EAAKoB,UAAUwa,aAAa,OAAQ,SACpC5b,EAAKoB,UAAUwa,aAAa,uBAAwB,YACpD,IAAK,MAAMjX,KAAM4hB,EACf5hB,EAAGiX,aAAa,OAAQ,SACxBjX,EAAGiX,aAAa,uBAAwB,QAE5C,MAAO,GAA0B,YAAtBngB,EAAQutB,KAAKS,MAAsBzpB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,OAAQ,CAEvF2qB,GAAQ,EACR1pB,EAAKoB,UAAUwa,aAAa,OAAQ,WACpC,IAAK,MAAM7b,KAAM2E,EACf3E,EAAG6b,aAAa,OAAQ,OAE1B,IAAK,MAAMjX,KAAM4hB,EACf5hB,EAAGiX,aAAa,OAAQ,WAE5B,MAAO,GAA0B,SAAtBngB,EAAQutB,KAAKS,MAAmBzpB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,OAAQ,CAEpFiB,EAAKoB,UAAUwa,aAAa,OAAQ,QACpC,IAAK,MAAM7b,KAAM2E,EACf3E,EAAG6b,aAAa,OAAQ,YAE1B,IAAK,MAAMjX,KAAM4hB,EACf5hB,EAAGiX,aAAa,OAAQ,OAE5B,MAAO,GAA0B,YAAtBngB,EAAQutB,KAAKS,MAAsBzpB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,OAAQ,CAEvF2qB,GAAQ,EACR1pB,EAAKoB,UAAUwa,aAAa,OAAQ,WACpC,IAAK,MAAM7b,KAAM2E,EACf3E,EAAG6b,aAAa,OAAQ,SAE5B,CAEI8N,GAASjuB,EAAQ2gB,IAAM,GACzBpc,EAAKoB,UAAUwa,aAAa,uBAAwB,OAExD,CACF,CAQAuN,cAA+B,IAAnB,IAAEzkB,EAAG,IAAE6hB,GAAQ,UAAH,6CAAG,CAAC,EAC1B,MACM9qB,EADOmE,KACQnE,QAErB,GAHamE,KAGJ6a,QAAQ1b,OAAQ,CAEvB,GAAItD,EAAQutB,KAAKY,eAAiBnuB,EAAQutB,KAAKa,SAE7C,IAAK,MAAMllB,KAAM4hB,EAAK,CACT5hB,EAAG0C,aAAa,OAEzB1C,EAAGiX,aAAa,KAAM1gB,EAAG2J,WAE7B,CAEF,GAAIpJ,EAAQutB,KAAKc,aAEf,IAAK,MAAM/pB,KAAM2E,EAAK,CACT3E,EAAGsH,aAAa,OAEzBtH,EAAG6b,aAAa,KAAM1gB,EAAG2J,WAE7B,CAEJ,CACF,CAKAukB,iBACE,MAAMppB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKya,QAAQ1b,OAAQ,CAEvB,GAAItD,EAAQutB,KAAKY,eAAiBnuB,EAAQutB,KAAKa,SAC7C,IAAK,MAAM9pB,KAAMC,EAAK2K,SAAU,CAC9B,MAAM4b,EAAMvmB,EAAKyc,WAAW,CAAE1c,OAC9B,IAAIqF,EAAM,GACV,IAAK,MAAMT,KAAM4hB,EACfnhB,GAAO,GAAJ,OAAOT,EAAG0C,aAAa,MAAK,KAE7B5L,EAAQutB,KAAKY,gBACf7pB,EAAG6b,aAAa,kBAAmBxW,EAAIK,QACvC1F,EAAGsoB,gBAAgB,eAEjB5sB,EAAQutB,KAAKa,UACf9pB,EAAG6b,aAAa,gBAAiBxW,EAAIK,OAEzC,CAGF,GAAIhK,EAAQutB,KAAKc,aACf,IAAK,MAAMnlB,KAAM3E,EAAKya,QAAS,CAC7B,MAAM/V,EAAM1E,EAAKsc,YAAY,CAAEvc,GAAI4E,IACnC,IAAIS,EAAM,GACV,IAAK,MAAMrF,KAAM2E,EACfU,GAAO,GAAJ,OAAOrF,EAAGsH,aAAa,MAAK,KAEjC1C,EAAGiX,aAAa,kBAAmBxW,EAAIK,QACvCd,EAAG0jB,gBAAgB,aACrB,CAEJ,CACF,CAKAiB,kBACE,MAAMtpB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQutB,KAAKe,UAAYtuB,EAAQutB,KAAKgB,SAAU,CAClD,GAAIvuB,EAAQutB,KAAKgB,SACf,IAAK,MAAMrlB,KAAM3E,EAAKya,QACpB9V,EAAGiX,aAAa,gBAAiB,SAGrC,IAAK,MAAM7b,KAAMC,EAAK2K,SAAU,CAC1BlP,EAAQutB,KAAKe,UAAY/pB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,QAC9DgB,EAAG6b,aAAa,gBAAiB,SAGnC,MAAMqB,EAAY/hB,EAAG+E,YAAYoC,IAC/BtC,EAAE,aACIC,EAAKuY,aAAY,yBAAiBvY,EAAK2B,IAC7C3B,EAAKiqB,mBAAmB/oB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAElDA,EAAG9C,iBAAiB,MAAD,OAAO+C,EAAKuY,cAAgB0E,GAE/C,MAAMG,EAAaliB,EAAG+E,YAAYoC,IAChCtC,EAAE,cACKC,EAAKuY,aAAY,yBAAiBvY,EAAK2B,IAC9C3B,EAAKkqB,oBAAoBhpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAEnDA,EAAG9C,iBAAiB,OAAD,OAAQ+C,EAAKuY,cAAgB6E,EAClD,CACF,CACF,CAOA6M,qBAAgC,IAAb,GAAElqB,GAAO,UAAH,6CAAG,CAAC,EAC3B,MAAMC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQutB,KAAKgB,SAAU,CACzB,MAAMzD,EAAMvmB,EAAKyc,WAAW,CAAE1c,OAC9B,IAAK,MAAM4E,KAAM4hB,EACf5hB,EAAGiX,aAAa,gBAAiB,OAErC,CAEIngB,EAAQutB,KAAKe,UAAY/pB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,QAC9DgB,EAAG6b,aAAa,gBAAiB,OAErC,CAOAsO,sBAAiC,IAAb,GAAEnqB,GAAO,UAAH,6CAAG,CAAC,EAC5B,MAAMC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQutB,KAAKgB,SAAU,CACzB,MAAMzD,EAAMvmB,EAAKyc,WAAW,CAAE1c,OAC9B,IAAK,MAAM4E,KAAM4hB,EACf5hB,EAAGiX,aAAa,gBAAiB,QAErC,CAEIngB,EAAQutB,KAAKe,UAAY/pB,EAAKipB,eAAiBjpB,EAAKya,QAAQ1b,QAC9DgB,EAAG6b,aAAa,gBAAiB,QAErC,CAKAyN,gBACE,MAAMrpB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQgiB,MAAQhiB,EAAQgiB,KAAKC,MAC3BjiB,EAAQutB,KAAKmB,KAAM,CACrB,MAAM/oB,EAAYpB,EAAKoB,UACvBA,EAAUwa,aAAa,YAAa,UAEpC,MAAMqB,EAAY/hB,EAAG+E,YAAYoC,IAC/BjB,EAAS,oBACIpB,EAAKuY,aAAY,qBAAavY,EAAK2B,IAChD3B,EAAKoqB,oBAAoBlpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEoB,eAEnDA,EAAUnE,iBAAiB,aAAD,OAAc+C,EAAKuY,cAAgB0E,GAE7D,MAAMG,EAAaliB,EAAG+E,YAAYoC,IAChCjB,EAAS,mBACGpB,EAAKuY,aAAY,qBAAavY,EAAK2B,IAC/C3B,EAAKqqB,mBAAmBnpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEoB,eAElDA,EAAUnE,iBAAiB,YAAD,OAAa+C,EAAKuY,cAAgB6E,EAC9D,CAEJ,CAOAgN,sBAAwC,IAApB,UAAEhpB,GAAc,UAAH,6CAAG,CAAC,EAEnCA,EAAUwa,aAAa,YAAa,MACtC,CAOAyO,qBAAuC,IAApB,UAAEjpB,GAAc,UAAH,6CAAG,CAAC,EAElCA,EAAUwa,aAAa,YAAa,SACtC,CAOA2N,kBAA8B,IAAd,IAAE7kB,GAAQ,UAAH,6CAAG,CAAC,EACzB,MAAM1E,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETutB,KAAKzb,SAAU,CACzB,MAAMnM,EAAYpB,EAAKoB,UAEjBkpB,EAAgBpvB,EAAG+E,YAAYoC,IACnCjB,EAAS,iBACCpB,EAAKuY,aAAY,uBAAevY,EAAK2B,IAC/C3B,EAAKuqB,iBAAiBrpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAE0E,SAEhDtD,EAAUnE,iBAAiB,UAAD,OAAW+C,EAAKuY,cAAgB+R,EAC5D,CACF,CAOAC,mBAA+B,IAAd,IAAE7lB,GAAQ,UAAH,6CAAG,CAAC,EAC1B,MAAM1E,EAAOJ,KAEb,IAAK,MAAMG,KAAM2E,EACX1E,EAAKuN,SACPxN,EAAG6b,aAAa,gBAAiB,QAEjC7b,EAAGsoB,gBAAgB,gBAGzB,CAOAmB,oBAAgC,IAAd,IAAE9kB,GAAQ,UAAH,6CAAG,CAAC,EAC3B,MAAM1E,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETutB,KAAKwB,SACf,IAAK,MAAMzqB,KAAM2E,EAAK,CAEpB,MAAMuY,EAAY/hB,EAAG+E,YAAYoC,IAC/BtC,EAAE,aACIC,EAAKuY,aAAY,yBAAiBvY,EAAK2B,IAC7C3B,EAAKyqB,aAAavpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAE5CA,EAAG9C,iBAAiB,MAAD,OAAO+C,EAAKuY,cAAgB0E,GAE/C,MAAMG,EAAaliB,EAAG+E,YAAYoC,IAChCtC,EAAE,cACKC,EAAKuY,aAAY,yBAAiBvY,EAAK2B,IAC9C3B,EAAK0qB,cAAcxpB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAE7CA,EAAG9C,iBAAiB,OAAD,OAAQ+C,EAAKuY,cAAgB6E,EAClD,CAEJ,CAOAqN,eAA0B,IAAb,GAAE1qB,GAAO,UAAH,6CAAG,CAAC,EACrB,MAAMC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfkvB,EAAiBzvB,EAAG+E,YAAYoC,IAAItC,EAAI,wBAAF,OAA0BC,EAAK2B,IAAM3B,EAAK4qB,kBAAkB1pB,KAAKlB,IAG7G,GAFAD,EAAG9C,iBAAiB,UAAW0tB,EAAgB,CAAE7T,SAAS,IAEhC,UAAtBrb,EAAQutB,KAAKS,MAA0C,WAAtBhuB,EAAQutB,KAAKS,MAAqBhuB,EAAQutB,KAAK6B,MAAO,CACzF,MAAMC,EAAyB5vB,EAAG+E,YAAYoC,IAC5CzF,SAAQ,wCACyBoD,EAAK2B,IACtC3B,EAAK+qB,0BAA0B7pB,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAED,QAEzDnD,SAASI,oBAAoB,UAAW8tB,GACxCluB,SAASK,iBAAiB,UAAW6tB,EACvC,CACF,CAOAJ,gBAA2B,IAAb,GAAE3qB,GAAO,UAAH,6CAAG,CAAC,EACtB,MAEM4qB,EAAiBzvB,EAAG+E,YAAYE,IAAIJ,EAAI,wBAAF,OAF/BH,KAE8D+B,KAC3E5B,EAAG/C,oBAAoB,UAAW2tB,GAElC,MAAMG,EAAyB5vB,EAAG+E,YAAYE,IAAIJ,EAAI,iCAAF,OALvCH,KAK+E+B,KAC5F/E,SAASI,oBAAoB,UAAW8tB,EAC1C,CAQAF,kBAAkB9oB,GAChB,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,MAAM1M,EAAMiB,EAAEjB,IACRmqB,EAAUvvB,EAAQutB,KAAKW,SAAW,UAAY,YAC9CsB,EAAUxvB,EAAQutB,KAAKW,SAAW,YAAc,aAEtD,IAAI5pB,EAcJ,OAbItE,EAAQutB,KAAKW,SACX9oB,IAAQmqB,EACVjrB,EAAKC,EAAK2oB,UACD9nB,IAAQoqB,IACjBlrB,EAAKC,EAAKwoB,WASVzoB,GAEFC,EAAKyb,SAAS,CAAE1b,KAAI4U,OAAO,SAE3B7S,EAAEyT,uBAJJ,CAOF,CAQAwV,4BAA0C,IAAhB,GAAEhrB,GAAO,UAAH,6CAAG,CAAC,EAAG+B,EAAC,uCACtC,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,MAAM1M,EAAMiB,EAAEjB,IACRmqB,EAAUvvB,EAAQutB,KAAKW,SAAW,YAAc,UAChDsB,EAAUxvB,EAAQutB,KAAKW,SAAW,aAAe,YAEvD,GAAY,WAAR9oB,GACwB,UAAtBpF,EAAQutB,KAAKS,MAA0C,WAAtBhuB,EAAQutB,KAAKS,MAOpD,GAAIhuB,EAAQutB,KAAK6B,MAAO,CACtB,IAAIvc,EACJ,MAAMuc,EAAQ,GACRtE,EAAMvmB,EAAKya,QAAQ/a,QAAOC,GAAKK,EAAKwd,WAAW,CAAEzd,GAAIJ,MAC3D,IAAK,MAAMgF,KAAM4hB,EACfsE,EAAMrsB,QAAQmG,EAAG7F,iBAAiBrD,EAAQutB,KAAK6B,QAEjD,GAAIA,EAAM9rB,OAAQ,CAChB,MAAMkiB,EAAU4J,EAAM3Z,QAAQtU,SAASgX,eACvC,GAAI/S,IAAQmqB,EAAS,CACnB,IAAiB,IAAb/J,EACF3S,EAAOuc,EAAMA,EAAM9rB,OAAS,OACvB,CAELuP,EAAOuc,GADO5J,EAAU,EAAI4J,EAAM9rB,QAAU8rB,EAAM9rB,OAEpD,CAEA+C,EAAEyT,gBACJ,MAAO,GAAI1U,IAAQoqB,EAAS,CAC1B,IAAiB,IAAbhK,EACF3S,EAAOuc,EAAM,OACR,CAELvc,EAAOuc,GADO5J,EAAU,GAAK4J,EAAM9rB,OAErC,CAEA+C,EAAEyT,gBACJ,KAAO,CACLvV,EAAKkrB,QAAUlrB,EAAKkrB,QAAUppB,EAAEjB,IAAIgU,cACpC,MAAMqM,EAAQ2J,EAAMnrB,QAAOC,IAAC,aAAe,QAAf,EAAIA,EAAEwrB,iBAAS,aAAX,EAAatW,cAAcuW,WAAWprB,EAAKkrB,QAAQ,IAC/EhK,EAAMniB,SACRuP,EAAO4S,EAAM,IAGfja,aAAa/L,EAAG+E,YAAYE,IAAIvD,SAAU,GAAF,OAAKoD,EAAK2B,GAAE,mBACpDzG,EAAG+E,YAAYC,IACbtD,SAAQ,UACLoD,EAAK2B,GAAE,iBACVwF,YAAW,KACTnH,EAAKkrB,QAAU,EAAE,GAChB,KAEP,CACA,GAAI5c,EAGF,YADAA,EAAKqG,OAGT,CACF,OAtDI3U,EAAKsgB,UAAU,CAAEvgB,KAAI4U,OAAO,GAuDlC,CAWA3S,SAA6B,IAAtB,KAAE8X,GAAO,GAAS,UAAH,6CAAG,CAAC,EACxB,MAAM9Z,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETstB,kBACV,IAAK,MAAMpkB,KAAM3E,EAAKya,QAAQ/a,QAAOC,GAAKK,EAAKwd,WAAW,CAAEzd,GAAIJ,MAC9DK,EAAK8lB,iBAAiB,CAAE/e,cAAe,MAAOhH,GAAI4E,EAAIrH,KAAM,YAIhE0C,EAAK2Y,WAAW,CAAEmB,QACpB,CAKAuR,UACE,MAAMrrB,EAAOJ,KAEbI,EAAKqa,aAELra,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAC/D,CAKAqC,gBACE,MAAM5a,EAAOJ,KAEb,GAAmB,WAAfI,EAAK0a,MAAoB,OAC3B,MAAM/b,EAAgD,QAA7C,EAAGzD,EAAG+E,YAAYE,IAAIH,EAAK2B,GAAI,sBAAc,QAAI,GACrDhD,EAAIhC,SAASqD,KAChBrB,EAAIH,KAAKwB,GACT9E,EAAG+E,YAAYC,IAAIF,EAAK2B,GAAI,cAAehD,GAE/C,CACF,CAKA2sB,mBACE,MAAMtrB,EAAOJ,KAEb,GAAmB,WAAfI,EAAK0a,MAAoB,CAC3B,IAAI/b,EAAMzD,EAAG+E,YAAYE,IAAIH,EAAK2B,GAAI,eAClChD,IACFA,EAAMA,EAAIe,QAAOC,GAAKA,IAAMK,IAC5B9E,EAAG+E,YAAYC,IAAIF,EAAK2B,GAAI,cAAehD,GAE/C,CACF,CAKAie,gBACE,MAAM5c,EAAOJ,KAEb,IAAK,MAAMG,KAAMC,EAAK+Z,iBAAkB,CACtC,MAAMwR,EAAWrwB,EAAG+E,YAAYsC,OAAOxC,GACvC,GAAIwrB,EACF,IAAK,MAAO1qB,KAAQ0qB,EAClB,GAAI1qB,GACEA,EAAI2qB,SAASxrB,EAAK2B,IAAK,CACzB,MAAM8pB,EAAUvwB,EAAG+E,YAAYE,IAAIJ,EAAIc,GACvC,GAAuB,mBAAZ4qB,EAAwB,CACjC,MAAM1O,EAASlc,EAAInE,MAAM,KAAK,GAAGA,MAAM,KACvC,IAAK,MAAMsV,KAAS+K,EAClBhd,EAAG/C,oBAAoBgV,EAAOyZ,GAC9B1rB,EAAG/C,oBAAoBgV,EAAOyZ,GAAS,EAG3C,CACF,CAIR,CACF,CAOAC,UAA+B,IAAvB,KAAEC,GAAO,GAAU,UAAH,6CAAG,CAAC,EAC1B,MAAM3rB,EAAOJ,KAEbI,EAAKua,QAAQ,CAAEuO,WAAW,IAE1B5tB,EAAGwF,eAAe,CAAEV,OAAMO,eAAgBP,EAAK+Y,kBAE/C/Y,EAAK4c,gBAEL5c,EAAKsrB,mBAEAK,IAEH3rB,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,gBAIjE,ECrwHa,SAASqT,EAAUvmB,GAChC,GAAY,MAARA,EACF,OAAOjK,OAGT,GAAwB,oBAApBiK,EAAKsV,WAAkC,CACzC,IAAIxQ,EAAgB9E,EAAK8E,cACzB,OAAOA,GAAgBA,EAAc0hB,aAAwBzwB,MAC/D,CAEA,OAAOiK,CACT,CCTA,SAASymB,EAAUzmB,GAEjB,OAAOA,aADUumB,EAAUvmB,GAAMwE,SACIxE,aAAgBwE,OACvD,CAEA,SAASkiB,EAAc1mB,GAErB,OAAOA,aADUumB,EAAUvmB,GAAMT,aACIS,aAAgBT,WACvD,CAEA,SAASonB,EAAa3mB,GAEpB,MAA0B,oBAAf4mB,aAKJ5mB,aADUumB,EAAUvmB,GAAM4mB,YACI5mB,aAAgB4mB,WACvD,CF0vHA/T,EAAOI,cAAgB,YACvBJ,EAAOW,oBAAsB,CAC3BiD,OAAO,EAEPnR,SAAU,2BACV8P,QAAS,0BACTS,eAAe,EACfC,cAAc,EACdF,SAAS,EAEThC,MAAO,KACPE,QAAS,KACTE,SAAU,MACVE,UAAW,OACXE,aAAc,UACdE,YAAa,aACbE,WAAY,YACZsC,WAAW,EACXkC,KAAM,eACNoD,eAAgB,IAChBrB,eAAe,EAEf7E,IAAK,EACLa,IAAK,EAELzV,GAAI,QACJK,IAAK,QACLkb,aAAa,EACb7B,WAAY,kBACZ0H,WAAW,EACXT,aAAa,EACbI,cAAc,EACdrK,cAAc,EAEd4G,MAAO,CACLtZ,UAAU,EACV8P,SAAS,EACTS,eAAe,EACfC,cAAc,GAEhB7J,OAAO,EACP4a,SAAS,EACTC,UAAU,EACVvlB,UAAU,EACVwlB,YAAY,EACZC,aAAa,EAEb5O,KAAM,CACJC,MAAM,EACNjd,SAAS,EACTskB,KAAM,EACNH,SAAS,EACT5T,MAAO,YACPgU,MAAM,GAGR+D,mBAAmB,EACnBhC,UAAU,EACVC,cAAc,EACdlrB,SAAS,EACTyR,UAAU,EACVsS,eAAe,EACfmF,MAAM,EACNxG,MAAM,EACNG,YAAY,EACZgI,UAAU,EACVD,WAAW,EACX3H,WAAW,EACXG,UAAU,EACVG,aAAa,EACbC,mBAAmB,EACnBkH,QAAQ,EACRH,YAAY,EACZpO,UAAW,CACTqU,cAAc,EACd1X,eAAe,EACfU,mBAAmB,EACnBiX,cAAe,QAEjBrF,gBAAgB,EAChBE,eAAe,EACf4B,KAAM,CACJS,MAAM,EACNG,eAAe,EACfE,cAAc,EACdD,UAAU,EACVE,UAAU,EACVC,UAAU,EACVG,MAAM,EACN5c,UAAU,EACVid,UAAU,EACVb,UAAU,EACVkB,OAAO,IAQX3vB,EAAGgd,OAASA,EAMU,oBAAX9c,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGgd,OAAOI,cAAa,KACzCha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGgd,OAAOI,gBACnD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGgd,OAAOrZ,EAAKpD,GAI9B,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,IG14HA,IAAI,EAAMgE,KAAKoY,IACX,EAAMpY,KAAKuX,IACXkR,EAAQzoB,KAAKyoB,MCAT,SAASlpB,EAAsB2G,EAASwiB,QAChC,IAAjBA,IACFA,GAAe,GAGjB,IAAIppB,EAAO4G,EAAQ3G,wBACfopB,EAAS,EACTC,EAAS,EAEb,GAAIb,EAAc7hB,IAAYwiB,EAAc,CAC1C,IAAI9kB,EAAesC,EAAQtC,aACvBD,EAAcuC,EAAQvC,YAGtBA,EAAc,IAChBglB,EAASF,EAAMnpB,EAAK6E,OAASR,GAAe,GAG1CC,EAAe,IACjBglB,EAASH,EAAMnpB,EAAK+J,QAAUzF,GAAgB,EAElD,CAEA,MAAO,CACLO,MAAO7E,EAAK6E,MAAQwkB,EACpBtf,OAAQ/J,EAAK+J,OAASuf,EACtBnpB,IAAKH,EAAKG,IAAMmpB,EAChBC,MAAOvpB,EAAKupB,MAAQF,EACpBG,OAAQxpB,EAAKwpB,OAASF,EACtBppB,KAAMF,EAAKE,KAAOmpB,EAClBhtB,EAAG2D,EAAKE,KAAOmpB,EACf/oB,EAAGN,EAAKG,IAAMmpB,EAElB,CClCe,SAASG,EAAgB1nB,GACtC,IAAI2nB,EAAMpB,EAAUvmB,GAGpB,MAAO,CACL4nB,WAHeD,EAAIE,YAInBC,UAHcH,EAAII,YAKtB,CCTe,SAASC,EAAYnjB,GAClC,OAAOA,GAAWA,EAAQhF,UAAY,IAAI2P,cAAgB,IAC5D,CCDe,SAASyY,EAAmBpjB,GAEzC,QAAS4hB,EAAU5hB,GAAWA,EAAQC,cACtCD,EAAQtN,WAAaxB,OAAOwB,UAAUoB,eACxC,CCFe,SAASuvB,EAAoBrjB,GAQ1C,OAAO3G,EAAsB+pB,EAAmBpjB,IAAU1G,KAAOupB,EAAgB7iB,GAAS+iB,UAC5F,CCXe,SAAS,EAAiB/iB,GACvC,OAAO0hB,EAAU1hB,GAAS5F,iBAAiB4F,EAC7C,CCFe,SAASsjB,EAAetjB,GAErC,IAAIujB,EAAoB,EAAiBvjB,GACrC7B,EAAWolB,EAAkBplB,SAC7BqlB,EAAYD,EAAkBC,UAC9BC,EAAYF,EAAkBE,UAElC,MAAO,6BAA6BhiB,KAAKtD,EAAWslB,EAAYD,EAClE,CCSe,SAASE,EAAiBC,EAAyBC,EAAcC,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICnBoC1oB,ECJO6E,EFuBvC8jB,EAA0BjC,EAAc+B,GACxCG,EAAuBlC,EAAc+B,IAf3C,SAAyB5jB,GACvB,IAAI5G,EAAO4G,EAAQ3G,wBACfopB,EAASF,EAAMnpB,EAAK6E,OAAS+B,EAAQvC,aAAe,EACpDilB,EAASH,EAAMnpB,EAAK+J,QAAUnD,EAAQtC,cAAgB,EAC1D,OAAkB,IAAX+kB,GAA2B,IAAXC,CACzB,CAU4DsB,CAAgBJ,GACtE9vB,EAAkBsvB,EAAmBQ,GACrCxqB,EAAOC,EAAsBsqB,EAAyBI,GACtDE,EAAS,CACXlB,WAAY,EACZE,UAAW,GAETiB,EAAU,CACZzuB,EAAG,EACHiE,EAAG,GAkBL,OAfIoqB,IAA4BA,IAA4BD,MACxB,SAA9BV,EAAYS,IAChBN,EAAexvB,MACbmwB,GCnCgC9oB,EDmCTyoB,KClCdlC,EAAUvmB,IAAU0mB,EAAc1mB,GCJxC,CACL4nB,YAFyC/iB,EDQb7E,GCNR4nB,WACpBE,UAAWjjB,EAAQijB,WDGZJ,EAAgB1nB,IDoCnB0mB,EAAc+B,KAChBM,EAAU7qB,EAAsBuqB,GAAc,IACtCnuB,GAAKmuB,EAAaO,WAC1BD,EAAQxqB,GAAKkqB,EAAaQ,WACjBtwB,IACTowB,EAAQzuB,EAAI4tB,EAAoBvvB,KAI7B,CACL2B,EAAG2D,EAAKE,KAAO2qB,EAAOlB,WAAamB,EAAQzuB,EAC3CiE,EAAGN,EAAKG,IAAM0qB,EAAOhB,UAAYiB,EAAQxqB,EACzCuE,MAAO7E,EAAK6E,MACZkF,OAAQ/J,EAAK+J,OAEjB,CGtDe,SAASkhB,EAAcrkB,GACpC,IAAIskB,EAAajrB,EAAsB2G,GAGnC/B,EAAQ+B,EAAQvC,YAChB0F,EAASnD,EAAQtC,aAUrB,OARI5D,KAAKC,IAAIuqB,EAAWrmB,MAAQA,IAAU,IACxCA,EAAQqmB,EAAWrmB,OAGjBnE,KAAKC,IAAIuqB,EAAWnhB,OAASA,IAAW,IAC1CA,EAASmhB,EAAWnhB,QAGf,CACL1N,EAAGuK,EAAQukB,WACX7qB,EAAGsG,EAAQwkB,UACXvmB,MAAOA,EACPkF,OAAQA,EAEZ,CCrBe,SAASshB,GAAczkB,GACpC,MAA6B,SAAzBmjB,EAAYnjB,GACPA,EAMPA,EAAQ6D,cACR7D,EAAQmE,aACR2d,EAAa9hB,GAAWA,EAAQ8D,KAAO,OAEvCsf,EAAmBpjB,EAGvB,CCde,SAAS0kB,GAAgBvpB,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAa6L,QAAQmc,EAAYhoB,KAAU,EAEvDA,EAAK8E,cAAc5D,KAGxBwlB,EAAc1mB,IAASmoB,EAAenoB,GACjCA,EAGFupB,GAAgBD,GAActpB,GACvC,CCJe,SAASwpB,GAAkB3kB,EAAS4kB,GACjD,IAAIC,OAES,IAATD,IACFA,EAAO,IAGT,IAAIE,EAAeJ,GAAgB1kB,GAC/B+kB,EAASD,KAAqE,OAAlDD,EAAwB7kB,EAAQC,oBAAyB,EAAS4kB,EAAsBxoB,MACpHymB,EAAMpB,EAAUoD,GAChB9e,EAAS+e,EAAS,CAACjC,GAAK9d,OAAO8d,EAAIkC,gBAAkB,GAAI1B,EAAewB,GAAgBA,EAAe,IAAMA,EAC7GG,EAAcL,EAAK5f,OAAOgB,GAC9B,OAAO+e,EAASE,EAChBA,EAAYjgB,OAAO2f,GAAkBF,GAAcze,IACrD,CCxBe,SAASkf,GAAellB,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMgH,QAAQmc,EAAYnjB,KAAa,CAChE,CCIA,SAASmlB,GAAoBnlB,GAC3B,OAAK6hB,EAAc7hB,IACoB,UAAvC,EAAiBA,GAASolB,SAInBplB,EAAQ4jB,aAHN,IAIX,CAwCe,SAASyB,GAAgBrlB,GAItC,IAHA,IAAI9O,EAASwwB,EAAU1hB,GACnB4jB,EAAeuB,GAAoBnlB,GAEhC4jB,GAAgBsB,GAAetB,IAA6D,WAA5C,EAAiBA,GAAcwB,UACpFxB,EAAeuB,GAAoBvB,GAGrC,OAAIA,IAA+C,SAA9BT,EAAYS,IAA0D,SAA9BT,EAAYS,IAAwE,WAA5C,EAAiBA,GAAcwB,UAC3Hl0B,EAGF0yB,GAhDT,SAA4B5jB,GAC1B,IAAIslB,GAAsE,IAA1DC,UAAUC,UAAU7a,cAAc3D,QAAQ,WAG1D,IAFuD,IAA5Cue,UAAUC,UAAUxe,QAAQ,YAE3B6a,EAAc7hB,IAII,UAFX,EAAiBA,GAEnBolB,SACb,OAAO,KAIX,IAAIK,EAAchB,GAAczkB,GAMhC,IAJI8hB,EAAa2D,KACfA,EAAcA,EAAY3hB,MAGrB+d,EAAc4D,IAAgB,CAAC,OAAQ,QAAQze,QAAQmc,EAAYsC,IAAgB,GAAG,CAC3F,IAAIC,EAAM,EAAiBD,GAI3B,GAAsB,SAAlBC,EAAI5sB,WAA4C,SAApB4sB,EAAIC,aAA0C,UAAhBD,EAAIE,UAAiF,IAA1D,CAAC,YAAa,eAAe5e,QAAQ0e,EAAIG,aAAsBP,GAAgC,WAAnBI,EAAIG,YAA2BP,GAAaI,EAAIlwB,QAAyB,SAAfkwB,EAAIlwB,OACjO,OAAOiwB,EAEPA,EAAcA,EAAYthB,UAE9B,CAEA,OAAO,IACT,CAgByB2hB,CAAmB9lB,IAAY9O,CACxD,CCnEO,IAAI,GAAM,MACN0xB,GAAS,SACTD,GAAQ,QACRrpB,GAAO,OACPia,GAAO,OACPwS,GAAiB,CAAC,GAAKnD,GAAQD,GAAOrpB,IACtCjC,GAAQ,QACR2uB,GAAM,MAENC,GAAW,WACXC,GAAS,SAETC,GAAmCJ,GAAelhB,QAAO,SAAUC,EAAKshB,GACjF,OAAOthB,EAAIE,OAAO,CAACohB,EAAY,IAAM/uB,GAAO+uB,EAAY,IAAMJ,IAChE,GAAG,IACQ,GAA0B,GAAGhhB,OAAO+gB,GAAgB,CAACxS,KAAO1O,QAAO,SAAUC,EAAKshB,GAC3F,OAAOthB,EAAIE,OAAO,CAACohB,EAAWA,EAAY,IAAM/uB,GAAO+uB,EAAY,IAAMJ,IAC3E,GAAG,IAaQK,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAASC,GAAMC,GACb,IAAIzc,EAAM,IAAI9R,IACVwuB,EAAU,IAAIC,IACdC,EAAS,GAKb,SAAS9hB,EAAK+hB,GACZH,EAAQ7tB,IAAIguB,EAAS/wB,MACN,GAAGoP,OAAO2hB,EAASC,UAAY,GAAID,EAASE,kBAAoB,IACtEniB,SAAQ,SAAUoiB,GACzB,IAAKN,EAAQvuB,IAAI6uB,GAAM,CACrB,IAAIC,EAAcjd,EAAI7T,IAAI6wB,GAEtBC,GACFniB,EAAKmiB,EAET,CACF,IACAL,EAAOpyB,KAAKqyB,EACd,CAQA,OAzBAJ,EAAU7hB,SAAQ,SAAUiiB,GAC1B7c,EAAI9T,IAAI2wB,EAAS/wB,KAAM+wB,EACzB,IAiBAJ,EAAU7hB,SAAQ,SAAUiiB,GACrBH,EAAQvuB,IAAI0uB,EAAS/wB,OAExBgP,EAAK+hB,EAET,IACOD,CACT,CClBA,IAEIM,GAAkB,CACpBZ,UAAW,SACXG,UAAW,GACXU,SAAU,YAGZ,SAASC,KACP,IAAK,IAAIxf,EAAOzB,UAAUpR,OAAQsyB,EAAO,IAAIrsB,MAAM4M,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/Euf,EAAKvf,GAAQ3B,UAAU2B,GAGzB,OAAQuf,EAAKnjB,MAAK,SAAUhE,GAC1B,QAASA,GAAoD,mBAAlCA,EAAQ3G,sBACrC,GACF,CAEO,SAAS+tB,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCT,GAAkBS,EAC3E,OAAO,SAAsBE,EAAWzB,EAAQ30B,QAC9B,IAAZA,IACFA,EAAUm2B,GAGZ,IC/C6BrgB,EAC3BugB,ED8CEv1B,EAAQ,CACV+zB,UAAW,SACXyB,iBAAkB,GAClBt2B,QAASmF,OAAOoxB,OAAO,CAAC,EAAGd,GAAiBU,GAC5CK,cAAe,CAAC,EAChBtnB,SAAU,CACRknB,UAAWA,EACXzB,OAAQA,GAEVlyB,WAAY,CAAC,EACbg0B,OAAQ,CAAC,GAEPC,EAAmB,GACnBC,GAAc,EACdC,EAAW,CACb91B,MAAOA,EACP+1B,WAAY,SAAoBC,GAC9B,IAAI92B,EAAsC,mBAArB82B,EAAkCA,EAAiBh2B,EAAMd,SAAW82B,EACzFC,IACAj2B,EAAMd,QAAUmF,OAAOoxB,OAAO,CAAC,EAAGJ,EAAgBr1B,EAAMd,QAASA,GACjEc,EAAMk2B,cAAgB,CACpBZ,UAAW/F,EAAU+F,GAAahD,GAAkBgD,GAAaA,EAAUa,eAAiB7D,GAAkBgD,EAAUa,gBAAkB,GAC1ItC,OAAQvB,GAAkBuB,IAI5B,IAAI2B,EDvCG,SAAwBtB,GAErC,IAAIsB,EAAmBvB,GAAMC,GAE7B,OAAOF,GAAexhB,QAAO,SAAUC,EAAK2jB,GAC1C,OAAO3jB,EAAIE,OAAO6iB,EAAiBryB,QAAO,SAAUmxB,GAClD,OAAOA,EAAS8B,QAAUA,CAC5B,IACF,GAAG,GACL,CC8B+BC,CEzEhB,SAAqBnC,GAClC,IAAIoC,EAASpC,EAAU1hB,QAAO,SAAU8jB,EAAQ5R,GAC9C,IAAI6R,EAAWD,EAAO5R,EAAQnhB,MAK9B,OAJA+yB,EAAO5R,EAAQnhB,MAAQgzB,EAAWlyB,OAAOoxB,OAAO,CAAC,EAAGc,EAAU7R,EAAS,CACrExlB,QAASmF,OAAOoxB,OAAO,CAAC,EAAGc,EAASr3B,QAASwlB,EAAQxlB,SACrDs3B,KAAMnyB,OAAOoxB,OAAO,CAAC,EAAGc,EAASC,KAAM9R,EAAQ8R,QAC5C9R,EACE4R,CACT,GAAG,CAAC,GAEJ,OAAOjyB,OAAO+O,KAAKkjB,GAAQ7e,KAAI,SAAUnT,GACvC,OAAOgyB,EAAOhyB,EAChB,GACF,CF4D8CmyB,CAAY,GAAG9jB,OAAOwiB,EAAkBn1B,EAAMd,QAAQg1B,aAyC5F,OAvCAl0B,EAAMw1B,iBAAmBA,EAAiBryB,QAAO,SAAUuzB,GACzD,OAAOA,EAAEC,OACX,IAoJF32B,EAAMw1B,iBAAiBnjB,SAAQ,SAAU4H,GACvC,IAAI1W,EAAO0W,EAAM1W,KACbqzB,EAAgB3c,EAAM/a,QACtBA,OAA4B,IAAlB03B,EAA2B,CAAC,EAAIA,EAC1CC,EAAS5c,EAAM4c,OAEnB,GAAsB,mBAAXA,EAAuB,CAChC,IAAIC,EAAYD,EAAO,CACrB72B,MAAOA,EACPuD,KAAMA,EACNuyB,SAAUA,EACV52B,QAASA,IAGP63B,EAAS,WAAmB,EAEhCnB,EAAiB3zB,KAAK60B,GAAaC,EACrC,CACF,IAjISjB,EAASkB,QAClB,EAMAC,YAAa,WACX,IAAIpB,EAAJ,CAIA,IAAIqB,EAAkBl3B,EAAMoO,SACxBknB,EAAY4B,EAAgB5B,UAC5BzB,EAASqD,EAAgBrD,OAG7B,GAAKgB,GAAiBS,EAAWzB,GAAjC,CASA7zB,EAAMm3B,MAAQ,CACZ7B,UAAWjE,EAAiBiE,EAAWtC,GAAgBa,GAAoC,UAA3B7zB,EAAMd,QAAQ01B,UAC9Ef,OAAQ7B,EAAc6B,IAOxB7zB,EAAMiF,OAAQ,EACdjF,EAAM+zB,UAAY/zB,EAAMd,QAAQ60B,UAKhC/zB,EAAMw1B,iBAAiBnjB,SAAQ,SAAUiiB,GACvC,OAAOt0B,EAAM01B,cAAcpB,EAAS/wB,MAAQc,OAAOoxB,OAAO,CAAC,EAAGnB,EAASkC,KACzE,IAGA,IAFA,IAES/zB,EAAQ,EAAGA,EAAQzC,EAAMw1B,iBAAiBhzB,OAAQC,IAUzD,IAAoB,IAAhBzC,EAAMiF,MAAV,CAMA,IAAImyB,EAAwBp3B,EAAMw1B,iBAAiB/yB,GAC/CuS,EAAKoiB,EAAsBpiB,GAC3BqiB,EAAyBD,EAAsBl4B,QAC/Co4B,OAAsC,IAA3BD,EAAoC,CAAC,EAAIA,EACpD9zB,EAAO6zB,EAAsB7zB,KAEf,mBAAPyR,IACThV,EAAQgV,EAAG,CACThV,MAAOA,EACPd,QAASo4B,EACT/zB,KAAMA,EACNuyB,SAAUA,KACN91B,EAdR,MAHEA,EAAMiF,OAAQ,EACdxC,GAAS,CAnCb,CAbA,CAmEF,EAGAu0B,QClM2BhiB,EDkMV,WACf,OAAO,IAAIuiB,SAAQ,SAAUC,GAC3B1B,EAASmB,cACTO,EAAQx3B,EACV,GACF,ECrMG,WAUL,OATKu1B,IACHA,EAAU,IAAIgC,SAAQ,SAAUC,GAC9BD,QAAQC,UAAUzc,MAAK,WACrBwa,OAAUtxB,EACVuzB,EAAQxiB,IACV,GACF,KAGKugB,CACT,GD2LIpG,QAAS,WACP8G,IACAJ,GAAc,CAChB,GAGF,IAAKhB,GAAiBS,EAAWzB,GAK/B,OAAOiC,EAmCT,SAASG,IACPL,EAAiBvjB,SAAQ,SAAU2C,GACjC,OAAOA,GACT,IACA4gB,EAAmB,EACrB,CAEA,OAvCAE,EAASC,WAAW72B,GAAS6b,MAAK,SAAU/a,IACrC61B,GAAe32B,EAAQu4B,eAC1Bv4B,EAAQu4B,cAAcz3B,EAE1B,IAmCO81B,CACT,CACF,CACO,IG9PHvb,GAAU,CACZA,SAAS,GCFI,SAASmd,GAAiB3D,GACvC,OAAOA,EAAU5zB,MAAM,KAAK,EAC9B,CCHe,SAASw3B,GAAa5D,GACnC,OAAOA,EAAU5zB,MAAM,KAAK,EAC9B,CCFe,SAASy3B,GAAyB7D,GAC/C,MAAO,CAAC,MAAO,UAAUpf,QAAQof,IAAc,EAAI,IAAM,GAC3D,CCEe,SAAS8D,GAAe3mB,GACrC,IAOI2gB,EAPAyD,EAAYpkB,EAAKokB,UACjB3nB,EAAUuD,EAAKvD,QACfomB,EAAY7iB,EAAK6iB,UACjB+D,EAAgB/D,EAAY2D,GAAiB3D,GAAa,KAC1DgE,EAAYhE,EAAY4D,GAAa5D,GAAa,KAClDiE,EAAU1C,EAAUlyB,EAAIkyB,EAAU1pB,MAAQ,EAAI+B,EAAQ/B,MAAQ,EAC9DqsB,EAAU3C,EAAUjuB,EAAIiuB,EAAUxkB,OAAS,EAAInD,EAAQmD,OAAS,EAGpE,OAAQgnB,GACN,KAAK,GACHjG,EAAU,CACRzuB,EAAG40B,EACH3wB,EAAGiuB,EAAUjuB,EAAIsG,EAAQmD,QAE3B,MAEF,KAAKyf,GACHsB,EAAU,CACRzuB,EAAG40B,EACH3wB,EAAGiuB,EAAUjuB,EAAIiuB,EAAUxkB,QAE7B,MAEF,KAAKwf,GACHuB,EAAU,CACRzuB,EAAGkyB,EAAUlyB,EAAIkyB,EAAU1pB,MAC3BvE,EAAG4wB,GAEL,MAEF,KAAKhxB,GACH4qB,EAAU,CACRzuB,EAAGkyB,EAAUlyB,EAAIuK,EAAQ/B,MACzBvE,EAAG4wB,GAEL,MAEF,QACEpG,EAAU,CACRzuB,EAAGkyB,EAAUlyB,EACbiE,EAAGiuB,EAAUjuB,GAInB,IAAI6wB,EAAWJ,EAAgBF,GAAyBE,GAAiB,KAEzE,GAAgB,MAAZI,EAAkB,CACpB,IAAIC,EAAmB,MAAbD,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAK/yB,GACH6sB,EAAQqG,GAAYrG,EAAQqG,IAAa5C,EAAU6C,GAAO,EAAIxqB,EAAQwqB,GAAO,GAC7E,MAEF,KAAKxE,GACH9B,EAAQqG,GAAYrG,EAAQqG,IAAa5C,EAAU6C,GAAO,EAAIxqB,EAAQwqB,GAAO,GAKnF,CAEA,OAAOtG,CACT,CC5DA,IAAIuG,GAAa,CACflxB,IAAK,OACLopB,MAAO,OACPC,OAAQ,OACRtpB,KAAM,QAgBD,SAASoxB,GAAYve,GAC1B,IAAIwe,EAEAzE,EAAS/Z,EAAM+Z,OACf0E,EAAaze,EAAMye,WACnBxE,EAAYja,EAAMia,UAClBgE,EAAYje,EAAMie,UAClBlG,EAAU/X,EAAM+X,QAChBkB,EAAWjZ,EAAMiZ,SACjByF,EAAkB1e,EAAM0e,gBACxBC,EAAW3e,EAAM2e,SACjBC,EAAe5e,EAAM4e,aACrBlH,EAAU1X,EAAM0X,QAChBmH,EAAa9G,EAAQzuB,EACrBA,OAAmB,IAAfu1B,EAAwB,EAAIA,EAChCC,EAAa/G,EAAQxqB,EACrBA,OAAmB,IAAfuxB,EAAwB,EAAIA,EAEhC3e,EAAgC,mBAAjBye,EAA8BA,EAAa,CAC5Dt1B,EAAGA,EACHiE,EAAGA,IACA,CACHjE,EAAGA,EACHiE,EAAGA,GAGLjE,EAAI6W,EAAM7W,EACViE,EAAI4S,EAAM5S,EACV,IAAIwxB,EAAOhH,EAAQiH,eAAe,KAC9BC,EAAOlH,EAAQiH,eAAe,KAC9BE,EAAQ/xB,GACRgyB,EAAQ,GACRxI,EAAM5xB,OAEV,GAAI45B,EAAU,CACZ,IAAIlH,EAAeyB,GAAgBa,GAC/BqF,EAAa,eACbC,EAAY,cAchB,GAZI5H,IAAiBlC,EAAUwE,IAGmB,WAA5C,EAFJtC,EAAeR,EAAmB8C,IAECd,UAAsC,aAAbA,IAC1DmG,EAAa,eACbC,EAAY,eAOZpF,IAAc,KAAQA,IAAc9sB,IAAQ8sB,IAAczD,KAAUyH,IAAcpE,GACpFsF,EAAQ1I,GAGRlpB,IAFcmqB,GAAWD,IAAiBd,GAAOA,EAAIkC,eAAiBlC,EAAIkC,eAAe7hB,OACzFygB,EAAa2H,IACEX,EAAWznB,OAC1BzJ,GAAKmxB,EAAkB,GAAK,EAG9B,GAAIzE,IAAc9sB,KAAS8sB,IAAc,IAAOA,IAAcxD,KAAWwH,IAAcpE,GACrFqF,EAAQ1I,GAGRltB,IAFcouB,GAAWD,IAAiBd,GAAOA,EAAIkC,eAAiBlC,EAAIkC,eAAe/mB,MACzF2lB,EAAa4H,IACEZ,EAAW3sB,MAC1BxI,GAAKo1B,EAAkB,GAAK,CAEhC,CAEA,IAgBMY,EAhBFC,EAAeh1B,OAAOoxB,OAAO,CAC/B1C,SAAUA,GACT0F,GAAYL,IAEXkB,GAAyB,IAAjBZ,EAnFd,SAA2BxnB,GACzB,IAAI9N,EAAI8N,EAAK9N,EACTiE,EAAI6J,EAAK7J,EAETkyB,EADM16B,OACI26B,kBAAoB,EAClC,MAAO,CACLp2B,EAAG8sB,EAAM9sB,EAAIm2B,GAAOA,GAAO,EAC3BlyB,EAAG6oB,EAAM7oB,EAAIkyB,GAAOA,GAAO,EAE/B,CA0EsCE,CAAkB,CACpDr2B,EAAGA,EACHiE,EAAGA,IACA,CACHjE,EAAGA,EACHiE,EAAGA,GAML,OAHAjE,EAAIk2B,EAAMl2B,EACViE,EAAIiyB,EAAMjyB,EAENmxB,EAGKn0B,OAAOoxB,OAAO,CAAC,EAAG4D,IAAeD,EAAiB,CAAC,GAAkBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASH,EAAO,IAAM,GAAIO,EAAe3yB,WAAagqB,EAAI+I,kBAAoB,IAAM,EAAI,aAAep2B,EAAI,OAASiE,EAAI,MAAQ,eAAiBjE,EAAI,OAASiE,EAAI,SAAU+xB,IAG5R/0B,OAAOoxB,OAAO,CAAC,EAAG4D,IAAef,EAAkB,CAAC,GAAmBW,GAASF,EAAO1xB,EAAI,KAAO,GAAIixB,EAAgBU,GAASH,EAAOz1B,EAAI,KAAO,GAAIk1B,EAAgB7xB,UAAY,GAAI6xB,GAC9L,CCxEA,UACE/0B,KAAM,SACNozB,SAAS,EACTP,MAAO,OACP7B,SAAU,CAAC,iBACXvf,GA5BF,SAAgB8E,GACd,IAAI9Z,EAAQ8Z,EAAM9Z,MACdd,EAAU4a,EAAM5a,QAChBqE,EAAOuW,EAAMvW,KACbm2B,EAAkBx6B,EAAQy6B,OAC1BA,OAA6B,IAApBD,EAA6B,CAAC,EAAG,GAAKA,EAC/ClD,EAAO,WAAkB,SAAU/jB,EAAKshB,GAE1C,OADAthB,EAAIshB,GA5BD,SAAiCA,EAAWoD,EAAOwC,GACxD,IAAI7B,EAAgBJ,GAAiB3D,GACjC6F,EAAiB,CAAC3yB,GAAM,IAAK0N,QAAQmjB,IAAkB,GAAK,EAAI,EAEhE5mB,EAAyB,mBAAXyoB,EAAwBA,EAAOt1B,OAAOoxB,OAAO,CAAC,EAAG0B,EAAO,CACxEpD,UAAWA,KACP4F,EACFE,EAAW3oB,EAAK,GAChB4oB,EAAW5oB,EAAK,GAIpB,OAFA2oB,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAAC3yB,GAAMqpB,IAAO3b,QAAQmjB,IAAkB,EAAI,CACjD10B,EAAG02B,EACHzyB,EAAGwyB,GACD,CACFz2B,EAAGy2B,EACHxyB,EAAGyyB,EAEP,CASqBC,CAAwBhG,EAAW/zB,EAAMm3B,MAAOwC,GAC1DlnB,CACT,GAAG,CAAC,GACAunB,EAAwBxD,EAAKx2B,EAAM+zB,WACnC3wB,EAAI42B,EAAsB52B,EAC1BiE,EAAI2yB,EAAsB3yB,EAEW,MAArCrH,EAAM01B,cAAcuE,gBACtBj6B,EAAM01B,cAAcuE,cAAc72B,GAAKA,EACvCpD,EAAM01B,cAAcuE,cAAc5yB,GAAKA,GAGzCrH,EAAM01B,cAAcnyB,GAAQizB,CAC9B,GC5CA,IAAI1U,GAAO,CACT7a,KAAM,QACNqpB,MAAO,OACPC,OAAQ,MACRrpB,IAAK,UAEQ,SAASgzB,GAAqBnG,GAC3C,OAAOA,EAAU9X,QAAQ,0BAA0B,SAAUke,GAC3D,OAAOrY,GAAKqY,EACd,GACF,CCVA,IAAI,GAAO,CACTn1B,MAAO,MACP2uB,IAAK,SAEQ,SAASyG,GAA8BrG,GACpD,OAAOA,EAAU9X,QAAQ,cAAc,SAAUke,GAC/C,OAAO,GAAKA,EACd,GACF,CCPe,SAASv3B,GAASy3B,EAAQzoB,GACvC,IAAIL,EAAWK,EAAMlE,aAAekE,EAAMlE,cAE1C,GAAI2sB,EAAOz3B,SAASgP,GAClB,OAAO,EAEJ,GAAIL,GAAYke,EAAale,GAAW,CACzC,IAAI+oB,EAAO1oB,EAEX,EAAG,CACD,GAAI0oB,GAAQD,EAAOE,WAAWD,GAC5B,OAAO,EAITA,EAAOA,EAAKxoB,YAAcwoB,EAAK7oB,IACjC,OAAS6oB,EACX,CAGF,OAAO,CACT,CCtBe,SAASE,GAAiBzzB,GACvC,OAAO1C,OAAOoxB,OAAO,CAAC,EAAG1uB,EAAM,CAC7BE,KAAMF,EAAK3D,EACX8D,IAAKH,EAAKM,EACVipB,MAAOvpB,EAAK3D,EAAI2D,EAAK6E,MACrB2kB,OAAQxpB,EAAKM,EAAIN,EAAK+J,QAE1B,CCqBA,SAAS2pB,GAA2B9sB,EAAS+sB,GAC3C,OAAOA,IAAmB9G,GAAW4G,GC1BxB,SAAyB7sB,GACtC,IAAI8iB,EAAMpB,EAAU1hB,GAChBgtB,EAAO5J,EAAmBpjB,GAC1BglB,EAAiBlC,EAAIkC,eACrB/mB,EAAQ+uB,EAAKC,YACb9pB,EAAS6pB,EAAKE,aACdz3B,EAAI,EACJiE,EAAI,EAuBR,OAjBIsrB,IACF/mB,EAAQ+mB,EAAe/mB,MACvBkF,EAAS6hB,EAAe7hB,OASnB,iCAAiC1B,KAAK8jB,UAAUC,aACnD/vB,EAAIuvB,EAAeT,WACnB7qB,EAAIsrB,EAAeR,YAIhB,CACLvmB,MAAOA,EACPkF,OAAQA,EACR1N,EAAGA,EAAI4tB,EAAoBrjB,GAC3BtG,EAAGA,EAEP,CDVwDyzB,CAAgBntB,IAAY4hB,EAAUmL,GAd9F,SAAoC/sB,GAClC,IAAI5G,EAAOC,EAAsB2G,GASjC,OARA5G,EAAKG,IAAMH,EAAKG,IAAMyG,EAAQokB,UAC9BhrB,EAAKE,KAAOF,EAAKE,KAAO0G,EAAQmkB,WAChC/qB,EAAKwpB,OAASxpB,EAAKG,IAAMyG,EAAQktB,aACjC9zB,EAAKupB,MAAQvpB,EAAKE,KAAO0G,EAAQitB,YACjC7zB,EAAK6E,MAAQ+B,EAAQitB,YACrB7zB,EAAK+J,OAASnD,EAAQktB,aACtB9zB,EAAK3D,EAAI2D,EAAKE,KACdF,EAAKM,EAAIN,EAAKG,IACPH,CACT,CAGgHg0B,CAA2BL,GAAkBF,GEtB9I,SAAyB7sB,GACtC,IAAI6kB,EAEAmI,EAAO5J,EAAmBpjB,GAC1BqtB,EAAYxK,EAAgB7iB,GAC5B3D,EAA0D,OAAlDwoB,EAAwB7kB,EAAQC,oBAAyB,EAAS4kB,EAAsBxoB,KAChG4B,EAAQ,EAAI+uB,EAAKM,YAAaN,EAAKC,YAAa5wB,EAAOA,EAAKixB,YAAc,EAAGjxB,EAAOA,EAAK4wB,YAAc,GACvG9pB,EAAS,EAAI6pB,EAAKO,aAAcP,EAAKE,aAAc7wB,EAAOA,EAAKkxB,aAAe,EAAGlxB,EAAOA,EAAK6wB,aAAe,GAC5Gz3B,GAAK43B,EAAUtK,WAAaM,EAAoBrjB,GAChDtG,GAAK2zB,EAAUpK,UAMnB,MAJiD,QAA7C,EAAiB5mB,GAAQ2wB,GAAMlU,YACjCrjB,GAAK,EAAIu3B,EAAKC,YAAa5wB,EAAOA,EAAK4wB,YAAc,GAAKhvB,GAGrD,CACLA,MAAOA,EACPkF,OAAQA,EACR1N,EAAGA,EACHiE,EAAGA,EAEP,CFC8K8zB,CAAgBpK,EAAmBpjB,IACjN,CAsBe,SAASytB,GAAgBztB,EAAS0tB,EAAUC,GACzD,IAAIC,EAAmC,oBAAbF,EAlB5B,SAA4B1tB,GAC1B,IAAI6tB,EAAkBlJ,GAAkBF,GAAczkB,IAElD8tB,EADoB,CAAC,WAAY,SAAS9mB,QAAQ,EAAiBhH,GAASolB,WAAa,GACnDvD,EAAc7hB,GAAWqlB,GAAgBrlB,GAAWA,EAE9F,OAAK4hB,EAAUkM,GAKRD,EAAgBr4B,QAAO,SAAUu3B,GACtC,OAAOnL,EAAUmL,IAAmB93B,GAAS83B,EAAgBe,IAAmD,SAAhC3K,EAAY4J,EAC9F,IANS,EAOX,CAK6DgB,CAAmB/tB,GAAW,GAAGgF,OAAO0oB,GAC/FG,EAAkB,GAAG7oB,OAAO4oB,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgBhpB,QAAO,SAAUqpB,EAASnB,GAC3D,IAAI3zB,EAAO0zB,GAA2B9sB,EAAS+sB,GAK/C,OAJAmB,EAAQ30B,IAAM,EAAIH,EAAKG,IAAK20B,EAAQ30B,KACpC20B,EAAQvL,MAAQ,EAAIvpB,EAAKupB,MAAOuL,EAAQvL,OACxCuL,EAAQtL,OAAS,EAAIxpB,EAAKwpB,OAAQsL,EAAQtL,QAC1CsL,EAAQ50B,KAAO,EAAIF,EAAKE,KAAM40B,EAAQ50B,MAC/B40B,CACT,GAAGpB,GAA2B9sB,EAASguB,IAKvC,OAJAC,EAAahwB,MAAQgwB,EAAatL,MAAQsL,EAAa30B,KACvD20B,EAAa9qB,OAAS8qB,EAAarL,OAASqL,EAAa10B,IACzD00B,EAAax4B,EAAIw4B,EAAa30B,KAC9B20B,EAAav0B,EAAIu0B,EAAa10B,IACvB00B,CACT,CGpEe,SAASE,GAAmBC,GACzC,OAAO13B,OAAOoxB,OAAO,CAAC,ECDf,CACLvuB,IAAK,EACLopB,MAAO,EACPC,OAAQ,EACRtpB,KAAM,GDHuC80B,EACjD,CEHe,SAASC,GAAgBz3B,EAAO6O,GAC7C,OAAOA,EAAKZ,QAAO,SAAUypB,EAAS33B,GAEpC,OADA23B,EAAQ33B,GAAOC,EACR03B,CACT,GAAG,CAAC,EACN,CCKe,SAASC,GAAel8B,EAAOd,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIo4B,EAAWp4B,EACXi9B,EAAqB7E,EAASvD,UAC9BA,OAAmC,IAAvBoI,EAAgCn8B,EAAM+zB,UAAYoI,EAC9DC,EAAoB9E,EAAS+D,SAC7BA,OAAiC,IAAtBe,EtBXY,kBsBWqCA,EAC5DC,EAAwB/E,EAASgE,aACjCA,OAAyC,IAA1Be,EAAmCzI,GAAWyI,EAC7DC,EAAwBhF,EAASiF,eACjCA,OAA2C,IAA1BD,EAAmCzI,GAASyI,EAC7DE,EAAuBlF,EAASmF,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBpF,EAASqF,QAC5BA,OAA+B,IAArBD,EAA8B,EAAIA,EAC5CX,EAAgBD,GAAsC,iBAAZa,EAAuBA,EAAUX,GAAgBW,EAASjJ,KACpGkJ,EAAaL,IAAmB1I,GtBlBf,YsBkBoCA,GACrD0E,EAAav4B,EAAMm3B,MAAMtD,OACzBlmB,EAAU3N,EAAMoO,SAASquB,EAAcG,EAAaL,GACpDM,EAAqBzB,GAAgB7L,EAAU5hB,GAAWA,EAAUA,EAAQwoB,gBAAkBpF,EAAmB/wB,EAAMoO,SAASylB,QAASwH,EAAUC,GACnJwB,EAAsB91B,EAAsBhH,EAAMoO,SAASknB,WAC3D2E,EAAgBpC,GAAe,CACjCvC,UAAWwH,EACXnvB,QAAS4qB,EACT3D,SAAU,WACVb,UAAWA,IAETgJ,EAAmBvC,GAAiBn2B,OAAOoxB,OAAO,CAAC,EAAG8C,EAAY0B,IAClE+C,EAAoBT,IAAmB1I,GAASkJ,EAAmBD,EAGnEG,EAAkB,CACpB/1B,IAAK21B,EAAmB31B,IAAM81B,EAAkB91B,IAAM60B,EAAc70B,IACpEqpB,OAAQyM,EAAkBzM,OAASsM,EAAmBtM,OAASwL,EAAcxL,OAC7EtpB,KAAM41B,EAAmB51B,KAAO+1B,EAAkB/1B,KAAO80B,EAAc90B,KACvEqpB,MAAO0M,EAAkB1M,MAAQuM,EAAmBvM,MAAQyL,EAAczL,OAExE4M,EAAal9B,EAAM01B,cAAciE,OAErC,GAAI4C,IAAmB1I,IAAUqJ,EAAY,CAC3C,IAAIvD,EAASuD,EAAWnJ,GACxB1vB,OAAO+O,KAAK6pB,GAAiB5qB,SAAQ,SAAU/N,GAC7C,IAAI64B,EAAW,CAAC7M,GAAOC,IAAQ5b,QAAQrQ,IAAQ,EAAI,GAAK,EACpD84B,EAAO,CAAC,GAAK7M,IAAQ5b,QAAQrQ,IAAQ,EAAI,IAAM,IACnD24B,EAAgB34B,IAAQq1B,EAAOyD,GAAQD,CACzC,GACF,CAEA,OAAOF,CACT,CC7DO,SAASI,GAAOre,EAAKza,EAAOsb,GACjC,OAAO,EAAQb,EAAK,EAAQza,EAAOsb,GACrC,CCoIA,UACEtc,KAAM,kBACNozB,SAAS,EACTP,MAAO,OACPphB,GA/HF,SAAyB9D,GACvB,IAAIlR,EAAQkR,EAAKlR,MACbd,EAAUgS,EAAKhS,QACfqE,EAAO2N,EAAK3N,KACZ+5B,EAAoBp+B,EAAQg5B,SAC5BqF,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt+B,EAAQu+B,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDnC,EAAWn8B,EAAQm8B,SACnBC,EAAep8B,EAAQo8B,aACvBmB,EAAcv9B,EAAQu9B,YACtBE,EAAUz9B,EAAQy9B,QAClBgB,EAAkBz+B,EAAQ0+B,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwB3+B,EAAQ4+B,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtD/xB,EAAWowB,GAAel8B,EAAO,CACnCq7B,SAAUA,EACVC,aAAcA,EACdqB,QAASA,EACTF,YAAaA,IAEX3E,EAAgBJ,GAAiB13B,EAAM+zB,WACvCgE,EAAYJ,GAAa33B,EAAM+zB,WAC/BgK,GAAmBhG,EACnBG,EAAWN,GAAyBE,GACpC2F,ECrCY,MDqCSvF,ECrCH,IAAM,IDsCxB+B,EAAgBj6B,EAAM01B,cAAcuE,cACpC+D,EAAgBh+B,EAAMm3B,MAAM7B,UAC5BiD,EAAav4B,EAAMm3B,MAAMtD,OACzBoK,EAA4C,mBAAjBH,EAA8BA,EAAaz5B,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAMm3B,MAAO,CACvGpD,UAAW/zB,EAAM+zB,aACb+J,EACFI,EAA2D,iBAAtBD,EAAiC,CACxE/F,SAAU+F,EACVR,QAASQ,GACP55B,OAAOoxB,OAAO,CAChByC,SAAU,EACVuF,QAAS,GACRQ,GACCE,EAAsBn+B,EAAM01B,cAAciE,OAAS35B,EAAM01B,cAAciE,OAAO35B,EAAM+zB,WAAa,KACjGyC,EAAO,CACTpzB,EAAG,EACHiE,EAAG,GAGL,GAAK4yB,EAAL,CAIA,GAAIsD,EAAe,CACjB,IAAIa,EAEAC,EAAwB,MAAbnG,EAAmB,GAAMjxB,GACpCq3B,EAAuB,MAAbpG,EAAmB3H,GAASD,GACtC6H,EAAmB,MAAbD,EAAmB,SAAW,QACpCyB,EAASM,EAAc/B,GACvBlZ,EAAM2a,EAAS7tB,EAASuyB,GACxBxe,EAAM8Z,EAAS7tB,EAASwyB,GACxBC,EAAWX,GAAUrF,EAAWJ,GAAO,EAAI,EAC3CqG,EAASzG,IAAc/yB,GAAQg5B,EAAc7F,GAAOI,EAAWJ,GAC/DsG,EAAS1G,IAAc/yB,IAASuzB,EAAWJ,IAAQ6F,EAAc7F,GAGjEuG,EAAe1+B,EAAMoO,SAASuwB,MAC9BC,EAAYhB,GAAUc,EAAe1M,EAAc0M,GAAgB,CACrE9yB,MAAO,EACPkF,OAAQ,GAEN+tB,EAAqB7+B,EAAM01B,cAAc,oBAAsB11B,EAAM01B,cAAc,oBAAoBiH,QJhFtG,CACLz1B,IAAK,EACLopB,MAAO,EACPC,OAAQ,EACRtpB,KAAM,GI6EF63B,EAAkBD,EAAmBR,GACrCU,EAAkBF,EAAmBP,GAMrCU,EAAW3B,GAAO,EAAGW,EAAc7F,GAAMyG,EAAUzG,IACnD8G,EAAYlB,EAAkBC,EAAc7F,GAAO,EAAIoG,EAAWS,EAAWF,EAAkBZ,EAA4BhG,SAAWsG,EAASQ,EAAWF,EAAkBZ,EAA4BhG,SACxMgH,EAAYnB,GAAmBC,EAAc7F,GAAO,EAAIoG,EAAWS,EAAWD,EAAkBb,EAA4BhG,SAAWuG,EAASO,EAAWD,EAAkBb,EAA4BhG,SACzMiH,EAAoBn/B,EAAMoO,SAASuwB,OAAS3L,GAAgBhzB,EAAMoO,SAASuwB,OAC3ES,EAAeD,EAAiC,MAAbjH,EAAmBiH,EAAkBpN,WAAa,EAAIoN,EAAkBrN,YAAc,EAAI,EAC7HuN,EAAwH,OAAjGjB,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBjG,IAAqBkG,EAAwB,EAEvJkB,EAAY3F,EAASuF,EAAYG,EACjCE,GAAkBlC,GAAOO,EAAS,EAAQ5e,EAF9B2a,EAASsF,EAAYI,EAAsBD,GAEKpgB,EAAK2a,EAAQiE,EAAS,EAAQ/d,EAAKyf,GAAazf,GAChHoa,EAAc/B,GAAYqH,GAC1B/I,EAAK0B,GAAYqH,GAAkB5F,CACrC,CAEA,GAAI+D,EAAc,CAChB,IAAI8B,GAEAC,GAAyB,MAAbvH,EAAmB,GAAMjxB,GAErCy4B,GAAwB,MAAbxH,EAAmB3H,GAASD,GAEvCqP,GAAU1F,EAAcwD,GAExBpoB,GAAmB,MAAZooB,EAAkB,SAAW,QAEpCmC,GAAOD,GAAU7zB,EAAS2zB,IAE1BI,GAAOF,GAAU7zB,EAAS4zB,IAE1BI,IAAuD,IAAxC,CAAC,GAAK74B,IAAM0N,QAAQmjB,GAEnCiI,GAAyH,OAAjGP,GAAgD,MAAvBrB,OAA8B,EAASA,EAAoBV,IAAoB+B,GAAyB,EAEzJQ,GAAaF,GAAeF,GAAOD,GAAU3B,EAAc3oB,IAAQkjB,EAAWljB,IAAQ0qB,GAAuB7B,EAA4BT,QAEzIwC,GAAaH,GAAeH,GAAU3B,EAAc3oB,IAAQkjB,EAAWljB,IAAQ0qB,GAAuB7B,EAA4BT,QAAUoC,GAE5IK,GAAmBtC,GAAUkC,GDzH9B,SAAwB9gB,EAAKza,EAAOsb,GACzC,IAAIsgB,EAAI9C,GAAOre,EAAKza,EAAOsb,GAC3B,OAAOsgB,EAAItgB,EAAMA,EAAMsgB,CACzB,CCsHoDC,CAAeJ,GAAYL,GAASM,IAAc5C,GAAOO,EAASoC,GAAaJ,GAAMD,GAAS/B,EAASqC,GAAaJ,IAEpK5F,EAAcwD,GAAWyC,GACzB1J,EAAKiH,GAAWyC,GAAmBP,EACrC,CAEA3/B,EAAM01B,cAAcnyB,GAAQizB,CAvE5B,CAwEF,EAQEhC,iBAAkB,CAAC,WEhDrB,UACEjxB,KAAM,QACNozB,SAAS,EACTP,MAAO,OACPphB,GA9EF,SAAe9D,GACb,IAAImvB,EAEArgC,EAAQkR,EAAKlR,MACbuD,EAAO2N,EAAK3N,KACZrE,EAAUgS,EAAKhS,QACfw/B,EAAe1+B,EAAMoO,SAASuwB,MAC9B1E,EAAgBj6B,EAAM01B,cAAcuE,cACpCnC,EAAgBJ,GAAiB13B,EAAM+zB,WACvCqJ,EAAOxF,GAAyBE,GAEhCK,EADa,CAAClxB,GAAMqpB,IAAO3b,QAAQmjB,IAAkB,EAClC,SAAW,QAElC,GAAK4G,GAAiBzE,EAAtB,CAIA,IAAI8B,EAxBgB,SAAyBY,EAAS38B,GAItD,OAAO87B,GAAsC,iBAH7Ca,EAA6B,mBAAZA,EAAyBA,EAAQt4B,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAMm3B,MAAO,CAC/EpD,UAAW/zB,EAAM+zB,aACb4I,GACkDA,EAAUX,GAAgBW,EAASjJ,IAC7F,CAmBsB4M,CAAgBphC,EAAQy9B,QAAS38B,GACjD4+B,EAAY5M,EAAc0M,GAC1B6B,EAAmB,MAATnD,EAAe,GAAMn2B,GAC/Bu5B,EAAmB,MAATpD,EAAe7M,GAASD,GAClCmQ,EAAUzgC,EAAMm3B,MAAM7B,UAAU6C,GAAOn4B,EAAMm3B,MAAM7B,UAAU8H,GAAQnD,EAAcmD,GAAQp9B,EAAMm3B,MAAMtD,OAAOsE,GAC9GuI,EAAYzG,EAAcmD,GAAQp9B,EAAMm3B,MAAM7B,UAAU8H,GACxD+B,EAAoBnM,GAAgB0L,GACpCiC,EAAaxB,EAA6B,MAAT/B,EAAe+B,EAAkBtE,cAAgB,EAAIsE,EAAkBvE,aAAe,EAAI,EAC3HgG,EAAoBH,EAAU,EAAIC,EAAY,EAG9C1hB,EAAM+c,EAAcwE,GACpB1gB,EAAM8gB,EAAa/B,EAAUzG,GAAO4D,EAAcyE,GAClDK,EAASF,EAAa,EAAI/B,EAAUzG,GAAO,EAAIyI,EAC/CjH,EAAS0D,GAAOre,EAAK6hB,EAAQhhB,GAE7BihB,EAAW1D,EACfp9B,EAAM01B,cAAcnyB,KAAS88B,EAAwB,CAAC,GAAyBS,GAAYnH,EAAQ0G,EAAsBU,aAAepH,EAASkH,EAAQR,EAnBzJ,CAoBF,EA4CExJ,OA1CF,SAAgB/c,GACd,IAAI9Z,EAAQ8Z,EAAM9Z,MAEdghC,EADUlnB,EAAM5a,QACWyO,QAC3B+wB,OAAoC,IAArBsC,EAA8B,sBAAwBA,EAErD,MAAhBtC,IAKwB,iBAAjBA,IACTA,EAAe1+B,EAAMoO,SAASylB,OAAOjqB,cAAc80B,MAahD97B,GAAS5C,EAAMoO,SAASylB,OAAQ6K,KAQrC1+B,EAAMoO,SAASuwB,MAAQD,EACzB,EASEnK,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBChGrB,SAASyM,GAAen1B,EAAU/E,EAAMm6B,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjB99B,EAAG,EACHiE,EAAG,IAIA,CACLH,IAAK4E,EAAS5E,IAAMH,EAAK+J,OAASowB,EAAiB75B,EACnDipB,MAAOxkB,EAASwkB,MAAQvpB,EAAK6E,MAAQs1B,EAAiB99B,EACtDmtB,OAAQzkB,EAASykB,OAASxpB,EAAK+J,OAASowB,EAAiB75B,EACzDJ,KAAM6E,EAAS7E,KAAOF,EAAK6E,MAAQs1B,EAAiB99B,EAExD,CAEA,SAAS+9B,GAAsBr1B,GAC7B,MAAO,CAAC,GAAKwkB,GAAOC,GAAQtpB,IAAM0K,MAAK,SAAUyvB,GAC/C,OAAOt1B,EAASs1B,IAAS,CAC3B,GACF,CCbA,IACI,GAA4BrM,GAAgB,CAC9CI,iBAFqB,CvB+BvB,CACE5xB,KAAM,iBACNozB,SAAS,EACTP,MAAO,QACPphB,GAAI,WAAe,EACnB6hB,OAxCF,SAAgB3lB,GACd,IAAIlR,EAAQkR,EAAKlR,MACb81B,EAAW5kB,EAAK4kB,SAChB52B,EAAUgS,EAAKhS,QACfmiC,EAAkBniC,EAAQ0yB,OAC1BA,OAA6B,IAApByP,GAAoCA,EAC7CC,EAAkBpiC,EAAQ+N,OAC1BA,OAA6B,IAApBq0B,GAAoCA,EAC7CziC,EAASwwB,EAAUrvB,EAAMoO,SAASylB,QAClCqC,EAAgB,GAAGvjB,OAAO3S,EAAMk2B,cAAcZ,UAAWt1B,EAAMk2B,cAAcrC,QAYjF,OAVIjC,GACFsE,EAAc7jB,SAAQ,SAAUogB,GAC9BA,EAAa/xB,iBAAiB,SAAUo1B,EAASkB,OAAQzc,GAC3D,IAGEtN,GACFpO,EAAO6B,iBAAiB,SAAUo1B,EAASkB,OAAQzc,IAG9C,WACDqX,GACFsE,EAAc7jB,SAAQ,SAAUogB,GAC9BA,EAAahyB,oBAAoB,SAAUq1B,EAASkB,OAAQzc,GAC9D,IAGEtN,GACFpO,EAAO4B,oBAAoB,SAAUq1B,EAASkB,OAAQzc,GAE1D,CACF,EASEic,KAAM,CAAC,GwB7BT,CACEjzB,KAAM,gBACNozB,SAAS,EACTP,MAAO,OACPphB,GApBF,SAAuB9D,GACrB,IAAIlR,EAAQkR,EAAKlR,MACbuD,EAAO2N,EAAK3N,KAKhBvD,EAAM01B,cAAcnyB,GAAQs0B,GAAe,CACzCvC,UAAWt1B,EAAMm3B,MAAM7B,UACvB3nB,QAAS3N,EAAMm3B,MAAMtD,OACrBe,SAAU,WACVb,UAAW/zB,EAAM+zB,WAErB,EAQEyC,KAAM,CAAC,GnBuJT,CACEjzB,KAAM,gBACNozB,SAAS,EACTP,MAAO,cACPphB,GAzDF,SAAuBusB,GACrB,IAAIvhC,EAAQuhC,EAAMvhC,MACdd,EAAUqiC,EAAMriC,QAChBsiC,EAAwBtiC,EAAQs5B,gBAChCA,OAA4C,IAA1BgJ,GAA0CA,EAC5DC,EAAoBviC,EAAQu5B,SAC5BA,OAAiC,IAAtBgJ,GAAsCA,EACjDC,EAAwBxiC,EAAQw5B,aAChCA,OAAyC,IAA1BgJ,GAA0CA,EAYzDrI,EAAe,CACjBtF,UAAW2D,GAAiB13B,EAAM+zB,WAClCgE,UAAWJ,GAAa33B,EAAM+zB,WAC9BF,OAAQ7zB,EAAMoO,SAASylB,OACvB0E,WAAYv4B,EAAMm3B,MAAMtD,OACxB2E,gBAAiBA,EACjBhH,QAAoC,UAA3BxxB,EAAMd,QAAQ01B,UAGgB,MAArC50B,EAAM01B,cAAcuE,gBACtBj6B,EAAM21B,OAAO9B,OAASxvB,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAM21B,OAAO9B,OAAQwE,GAAYh0B,OAAOoxB,OAAO,CAAC,EAAG4D,EAAc,CACvGxH,QAAS7xB,EAAM01B,cAAcuE,cAC7BlH,SAAU/yB,EAAMd,QAAQ01B,SACxB6D,SAAUA,EACVC,aAAcA,OAIe,MAA7B14B,EAAM01B,cAAciJ,QACtB3+B,EAAM21B,OAAOgJ,MAAQt6B,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAM21B,OAAOgJ,MAAOtG,GAAYh0B,OAAOoxB,OAAO,CAAC,EAAG4D,EAAc,CACrGxH,QAAS7xB,EAAM01B,cAAciJ,MAC7B5L,SAAU,WACV0F,UAAU,EACVC,aAAcA,OAIlB14B,EAAM2B,WAAWkyB,OAASxvB,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAM2B,WAAWkyB,OAAQ,CACnE,wBAAyB7zB,EAAM+zB,WAEnC,EAQEyC,KAAM,CAAC,GoBvGT,CACEjzB,KAAM,cACNozB,SAAS,EACTP,MAAO,QACPphB,GA5EF,SAAqB9D,GACnB,IAAIlR,EAAQkR,EAAKlR,MACjBqE,OAAO+O,KAAKpT,EAAMoO,UAAUiE,SAAQ,SAAU9O,GAC5C,IAAIqE,EAAQ5H,EAAM21B,OAAOpyB,IAAS,CAAC,EAC/B5B,EAAa3B,EAAM2B,WAAW4B,IAAS,CAAC,EACxCoK,EAAU3N,EAAMoO,SAAS7K,GAExBisB,EAAc7hB,IAAamjB,EAAYnjB,KAO5CtJ,OAAOoxB,OAAO9nB,EAAQ/F,MAAOA,GAC7BvD,OAAO+O,KAAKzR,GAAY0Q,SAAQ,SAAU9O,GACxC,IAAIgB,EAAQ5C,EAAW4B,IAET,IAAVgB,EACFoJ,EAAQme,gBAAgBvoB,GAExBoK,EAAQ0R,aAAa9b,GAAgB,IAAVgB,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDEsyB,OAlDF,SAAgB/c,GACd,IAAI9Z,EAAQ8Z,EAAM9Z,MACd2hC,EAAgB,CAClB9N,OAAQ,CACNd,SAAU/yB,EAAMd,QAAQ01B,SACxB3tB,KAAM,IACNC,IAAK,IACL06B,OAAQ,KAEVjD,MAAO,CACL5L,SAAU,YAEZuC,UAAW,CAAC,GASd,OAPAjxB,OAAOoxB,OAAOz1B,EAAMoO,SAASylB,OAAOjsB,MAAO+5B,EAAc9N,QACzD7zB,EAAM21B,OAASgM,EAEX3hC,EAAMoO,SAASuwB,OACjBt6B,OAAOoxB,OAAOz1B,EAAMoO,SAASuwB,MAAM/2B,MAAO+5B,EAAchD,OAGnD,WACLt6B,OAAO+O,KAAKpT,EAAMoO,UAAUiE,SAAQ,SAAU9O,GAC5C,IAAIoK,EAAU3N,EAAMoO,SAAS7K,GACzB5B,EAAa3B,EAAM2B,WAAW4B,IAAS,CAAC,EAGxCqE,EAFkBvD,OAAO+O,KAAKpT,EAAM21B,OAAOmD,eAAev1B,GAAQvD,EAAM21B,OAAOpyB,GAAQo+B,EAAcp+B,IAE7EiP,QAAO,SAAU5K,EAAOi6B,GAElD,OADAj6B,EAAMi6B,GAAY,GACXj6B,CACT,GAAG,CAAC,GAEC4nB,EAAc7hB,IAAamjB,EAAYnjB,KAI5CtJ,OAAOoxB,OAAO9nB,EAAQ/F,MAAOA,GAC7BvD,OAAO+O,KAAKzR,GAAY0Q,SAAQ,SAAUyvB,GACxCn0B,EAAQme,gBAAgBgW,EAC1B,IACF,GACF,CACF,EASEvN,SAAU,CAAC,kBFxEsE,GG+HnF,CACEhxB,KAAM,OACNozB,SAAS,EACTP,MAAO,OACPphB,GA5HF,SAAc9D,GACZ,IAAIlR,EAAQkR,EAAKlR,MACbd,EAAUgS,EAAKhS,QACfqE,EAAO2N,EAAK3N,KAEhB,IAAIvD,EAAM01B,cAAcnyB,GAAMw+B,MAA9B,CAoCA,IAhCA,IAAIzE,EAAoBp+B,EAAQg5B,SAC5BqF,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt+B,EAAQu+B,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDwE,EAA8B9iC,EAAQ+iC,mBACtCtF,EAAUz9B,EAAQy9B,QAClBtB,EAAWn8B,EAAQm8B,SACnBC,EAAep8B,EAAQo8B,aACvBmB,EAAcv9B,EAAQu9B,YACtByF,EAAwBhjC,EAAQijC,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwBljC,EAAQkjC,sBAChCC,EAAqBriC,EAAMd,QAAQ60B,UACnC+D,EAAgBJ,GAAiB2K,GAEjCJ,EAAqBD,IADHlK,IAAkBuK,IACqCF,EAAiB,CAACjI,GAAqBmI,IAjCtH,SAAuCtO,GACrC,GAAI2D,GAAiB3D,KAAe7S,GAClC,MAAO,GAGT,IAAIohB,EAAoBpI,GAAqBnG,GAC7C,MAAO,CAACqG,GAA8BrG,GAAYuO,EAAmBlI,GAA8BkI,GACrG,CA0B6IC,CAA8BF,IACrKG,EAAa,CAACH,GAAoB1vB,OAAOsvB,GAAoBzvB,QAAO,SAAUC,EAAKshB,GACrF,OAAOthB,EAAIE,OAAO+kB,GAAiB3D,KAAe7S,GCvCvC,SAA8BlhB,EAAOd,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIo4B,EAAWp4B,EACX60B,EAAYuD,EAASvD,UACrBsH,EAAW/D,EAAS+D,SACpBC,EAAehE,EAASgE,aACxBqB,EAAUrF,EAASqF,QACnBwF,EAAiB7K,EAAS6K,eAC1BM,EAAwBnL,EAAS8K,sBACjCA,OAAkD,IAA1BK,EAAmC,GAAgBA,EAC3E1K,EAAYJ,GAAa5D,GACzByO,EAAazK,EAAYoK,EAAiBrO,GAAsBA,GAAoB3wB,QAAO,SAAU4wB,GACvG,OAAO4D,GAAa5D,KAAegE,CACrC,IAAKrE,GACDgP,EAAoBF,EAAWr/B,QAAO,SAAU4wB,GAClD,OAAOqO,EAAsBztB,QAAQof,IAAc,CACrD,IAEiC,IAA7B2O,EAAkBlgC,SACpBkgC,EAAoBF,GAQtB,IAAIG,EAAYD,EAAkBlwB,QAAO,SAAUC,EAAKshB,GAOtD,OANAthB,EAAIshB,GAAamI,GAAel8B,EAAO,CACrC+zB,UAAWA,EACXsH,SAAUA,EACVC,aAAcA,EACdqB,QAASA,IACRjF,GAAiB3D,IACbthB,CACT,GAAG,CAAC,GACJ,OAAOpO,OAAO+O,KAAKuvB,GAAWpwB,MAAK,SAAU/C,EAAGC,GAC9C,OAAOkzB,EAAUnzB,GAAKmzB,EAAUlzB,EAClC,GACF,CDH6DmzB,CAAqB5iC,EAAO,CACnF+zB,UAAWA,EACXsH,SAAUA,EACVC,aAAcA,EACdqB,QAASA,EACTwF,eAAgBA,EAChBC,sBAAuBA,IACpBrO,EACP,GAAG,IACCiK,EAAgBh+B,EAAMm3B,MAAM7B,UAC5BiD,EAAav4B,EAAMm3B,MAAMtD,OACzBgP,EAAY,IAAIl9B,IAChBm9B,GAAqB,EACrBC,EAAwBP,EAAW,GAE9B/xB,EAAI,EAAGA,EAAI+xB,EAAWhgC,OAAQiO,IAAK,CAC1C,IAAIsjB,EAAYyO,EAAW/xB,GAEvBuyB,EAAiBtL,GAAiB3D,GAElCkP,EAAmBtL,GAAa5D,KAAe/uB,GAC/Ck+B,EAAa,CAAC,GAAK3S,IAAQ5b,QAAQquB,IAAmB,EACtD7K,EAAM+K,EAAa,QAAU,SAC7Bp3B,EAAWowB,GAAel8B,EAAO,CACnC+zB,UAAWA,EACXsH,SAAUA,EACVC,aAAcA,EACdmB,YAAaA,EACbE,QAASA,IAEPwG,EAAoBD,EAAaD,EAAmB3S,GAAQrpB,GAAOg8B,EAAmB1S,GAAS,GAE/FyN,EAAc7F,GAAOI,EAAWJ,KAClCgL,EAAoBjJ,GAAqBiJ,IAG3C,IAAIC,EAAmBlJ,GAAqBiJ,GACxCE,EAAS,GAUb,GARI9F,GACF8F,EAAOphC,KAAK6J,EAASk3B,IAAmB,GAGtCtF,GACF2F,EAAOphC,KAAK6J,EAASq3B,IAAsB,EAAGr3B,EAASs3B,IAAqB,GAG1EC,EAAOluB,OAAM,SAAUjQ,GACzB,OAAOA,CACT,IAAI,CACF69B,EAAwBhP,EACxB+O,GAAqB,EACrB,KACF,CAEAD,EAAUl/B,IAAIowB,EAAWsP,EAC3B,CAEA,GAAIP,EAqBF,IAnBA,IAEIQ,EAAQ,SAAeC,GACzB,IAAIC,EAAmBhB,EAAWzrB,MAAK,SAAUgd,GAC/C,IAAIsP,EAASR,EAAUj/B,IAAImwB,GAE3B,GAAIsP,EACF,OAAOA,EAAOr1B,MAAM,EAAGu1B,GAAIpuB,OAAM,SAAUjQ,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAIs+B,EAEF,OADAT,EAAwBS,EACjB,OAEX,EAESD,EAnBYpB,EAAiB,EAAI,EAmBZoB,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFD,EAAMC,GAEK,KACxB,CAGEvjC,EAAM+zB,YAAcgP,IACtB/iC,EAAM01B,cAAcnyB,GAAMw+B,OAAQ,EAClC/hC,EAAM+zB,UAAYgP,EAClB/iC,EAAMiF,OAAQ,EA5GhB,CA8GF,EAQEuvB,iBAAkB,CAAC,UACnBgC,KAAM,CACJuL,OAAO,IHtIsF,GAAiB,GD4ClH,CACEx+B,KAAM,OACNozB,SAAS,EACTP,MAAO,OACP5B,iBAAkB,CAAC,mBACnBxf,GAlCF,SAAc9D,GACZ,IAAIlR,EAAQkR,EAAKlR,MACbuD,EAAO2N,EAAK3N,KACZy6B,EAAgBh+B,EAAMm3B,MAAM7B,UAC5BiD,EAAav4B,EAAMm3B,MAAMtD,OACzBqN,EAAmBlhC,EAAM01B,cAAc+N,gBACvCC,EAAoBxH,GAAel8B,EAAO,CAC5Cu8B,eAAgB,cAEdoH,EAAoBzH,GAAel8B,EAAO,CAC5Cy8B,aAAa,IAEXmH,EAA2B3C,GAAeyC,EAAmB1F,GAC7D6F,EAAsB5C,GAAe0C,EAAmBpL,EAAY2I,GACpE4C,EAAoB3C,GAAsByC,GAC1CG,EAAmB5C,GAAsB0C,GAC7C7jC,EAAM01B,cAAcnyB,GAAQ,CAC1BqgC,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpB/jC,EAAM2B,WAAWkyB,OAASxvB,OAAOoxB,OAAO,CAAC,EAAGz1B,EAAM2B,WAAWkyB,OAAQ,CACnE,+BAAgCiQ,EAChC,sBAAuBC,GAE3B,MMzCAplC,EAAG8c,MAAQA,EACX9c,EAAGqlC,aAAeA,GAKlB,MAAMC,WAAatlC,EAAGgd,OAOpBC,YAAY1I,GACVgxB,MAAMhxB,EAD4B,UAAH,6CAAG,CAAC,EAErC,CAYAyT,YAA6B,IAAnB,GAAEnjB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACxBmjC,MAAMvd,UAAU,CAAEnjB,KAAIzC,SACtB,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQilC,UACG,YAATpjC,EAAoB,OAEtByC,EAAGoE,MAAMw8B,WAAa,OACtB7jC,uBAAsB,KACpBiD,EAAGoE,MAAMw8B,WAAa,EAAE,IAG1B,MAAMz2B,EAAUlK,EAAKsc,YAAY,CAAEvc,OAAM,GACnC6gC,EAAWnlC,EAAQolC,eAA4D,QAA/C,EAAG32B,EAAQ/D,cAAc1K,EAAQolC,sBAAc,QAAc32B,EAEnG,GAAIhP,EAAG+H,QAAQ,CAAElD,GAAI6gC,KAAe1lC,EAAG+H,QAAQ,CAAElD,OAAO,CACtD,MAAMm7B,EAAQn7B,EAAGoG,cAAc,sBACzB26B,EAAuB,CAC3BxQ,UAAWvwB,EAAGsH,aAAa,qBAAuB5L,EAAQ6zB,SAC1D6B,SAAU11B,EAAQ01B,SAClB3nB,QAAQ,EACRinB,UAAW,CACT,CACE3wB,KAAM,gBACNrE,QAAS,CACPs5B,iBAAiB,IAGrB,CACEj1B,KAAM,kBACNrE,QAAS,CACPy9B,QAASz9B,EAAQslC,gBAGrB,CACEjhC,KAAM,OACNrE,QAAS,CACPy9B,QAASz9B,EAAQulC,cAezB,GAVI9F,GACF4F,EAAqBrQ,UAAUjyB,KAAK,CAClCsB,KAAM,QACNrE,QAAS,CACPyO,QAASgxB,EACThC,SAAgC,IAAvBz9B,EAAQwlC,WAAuB/F,EAAM33B,wBAAwB8J,OAAS,EAAI5R,EAAQwlC,cAK7FxlC,EAAQylC,MAAO,CACjB,MAAMA,EAAQ,CACZphC,KAAM,SACNrE,QAAS,CACPy6B,OAAQ,IAA2B,IAA1B,UAAE5F,EAAS,OAAEF,GAAQ,EAC5B,OAAkC,IAA9BE,EAAU6Q,OAAO,UAAiD,IAA/B7Q,EAAU6Q,OAAO,SAC/C,CAAC,GAAI/Q,EAAOjoB,QAEY,IAA7BmoB,EAAU6Q,OAAO,SAAiD,IAAhC7Q,EAAU6Q,OAAO,UAC9C,CAAC,GAAI/Q,EAAO/iB,QAEd,EAAE,IAIfyzB,EAAqBrQ,UAAUjyB,KAAK0iC,GACpCnhC,EAAG6b,aAAa,oBAAqB,OACvC,MACE7b,EAAGsoB,gBAAgB,oBAAqB,QAE1C,MAAM+Y,EAAgBlmC,EAAGmG,MAAM,CAACy/B,EAAsBrlC,EAAQilC,WAE9D,IAAIW,EAAiBnmC,EAAG+E,YAAYE,IAAIJ,EAAI,kBACxCshC,EACFA,EAAe/O,WAAW8O,IAE1BC,EAAiBd,GAAaK,EAAU7gC,EAAIqhC,GAC5ClmC,EAAG+E,YAAYC,IAAIH,EAAI,iBAAkBshC,IAG3CvkC,uBAAsB,KACpBukC,EAAe9N,QAAQ,GAE3B,CACF,CAEJ,EASFiN,GAAKloB,cAAgB,UACrBkoB,GAAK1nB,eAAiB,CAEpBnO,SAAU,yBACV8P,QAAS,wBAETc,IAAK,EACLa,IAAK,EAELzV,GAAI,QACJK,IAAK,QACLkb,aAAa,EACb7B,WAAY,4BACZtB,WAAW,EACXG,UAAU,EACV6I,UAAW,cACXT,YAAa,eACbI,aAAc,OACdrK,cAAc,EAEd4G,MAAO,CACLtZ,UAAU,EACV8P,SAAS,EACTS,eAAe,EACfC,cAAc,GAGhB4N,mBAAmB,EACnBuG,SAAU,eACV4R,OAAO,EACPL,eAAe,EACf1P,SAAU,WACV4P,cAAe,GACfC,UAAW,GACXC,YAAY,EACZP,UAAU,EACVla,OAAQ,CACN/L,QAAS,CACPlZ,MAAO,IACPklB,QAAS,IAGbuC,KAAM,CACJS,KAAM,QACNG,eAAe,EACfE,cAAc,EACdD,UAAU,EACVE,UAAU,EACVC,UAAU,EACVG,MAAM,EACN5c,UAAU,EACVid,UAAU,EACVb,UAAU,EACVkB,MAAO,cAQX3vB,EAAGslC,KAAOA,GAMY,oBAAXplC,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGslC,KAAKloB,cAAa,KACvCha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGslC,KAAKloB,gBACjD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGslC,KAAK3hC,EAAKpD,GAI5B,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,ICpNe,oBAAX5E,SAKTF,EAAGoD,MAAM,CACPxC,QAAS,0DACTwC,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAMiB,EAAOjB,EAAIwI,aAAa,QACxBkF,EAAO1N,EAAI0N,KACX+0B,EAAS1kC,SAASkC,iBAAiB,UAAD,OAAWgB,EAAI,OAIjDyhC,EAASC,IACb,MAAMC,EAAQD,EAAM9iC,QAAQ,SACxB8iC,EAAMz0B,QACR7R,EAAGyL,GAAG,CAAE5G,GAAI0hC,IAEZvmC,EAAG8L,IAAI,CAAEjH,GAAI0hC,GACf,EAGIC,EAAS,KAEb5kC,uBAAsB,KACpB,IAAK,MAAM0kC,KAASF,EAClBC,EAAOC,EACT,GACA,EAGJ3iC,EAAI5B,iBAAiB,SAAUykC,GAC3Bn1B,GACFA,EAAKtP,iBAAiB,QAASykC,GAG7B7iC,EAAIkO,SACN20B,GACF,IAQJxmC,EAAGoD,MAAM,CACPxC,QAAS,yBACTwC,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAMgsB,EAAQhsB,EAAI8L,SAIZ+2B,EAAS5/B,IACb,MAAMwM,EAAOxM,EAAEoO,OACiB,SAA5B5B,EAAKqzB,QAAQC,aACftzB,EAAKxH,UAAUjE,IAAI,gBACnByL,EAAKxH,UAAUzG,OAAO,kBACtBiO,EAAK+Z,gBAAgB,gBACrB/Z,EAAKuzB,gBACP,EAGF,IAAK,MAAMvzB,KAAQuc,EACjBvc,EAAKrR,iBAAiB,QAASykC,GAC/BpzB,EAAKrR,iBAAiB,SAAUykC,GAKlC,MAAMvT,EAAS,KACb/yB,OAAO0mC,SAAS1mC,OAAO2mC,QAAS3mC,OAAO4mC,QAAU9mC,EAAG4N,YAAc5N,EAAGkB,uBAAuB,EAGxF6lC,EAAUngC,IACd,MAAMwM,EAAOxM,EAAEoO,OACf5B,EAAKxH,UAAUzG,OAAO,gBACtBiO,EAAKxH,UAAUjE,IAAI,kBACnByL,EAAKsN,aAAa,gBAAgB,GAClCtN,EAAKqzB,QAAQC,WAAa,OAEtB1mC,EAAGkB,wBACLa,iBAAiB,SAAUkxB,EAAQ,CAAE+T,MAAM,GAC7C,EAGIC,EAAS,KACb,IAAK,MAAM7zB,KAAQuc,SACVvc,EAAKqzB,QAAQC,UACtB,EAGF,IAAK,MAAMtzB,KAAQuc,EACjBvc,EAAKrR,iBAAiB,UAAWglC,GACjC3zB,EAAKrR,iBAAiB,SAAUklC,GAKlC,MAAO,KACLnlC,oBAAoB,SAAUmxB,EAAO,CACtC,qWCtGP,MAAMiU,GAyCJjqB,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,mWA1B3B,GAAK,wfA2Bd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EACfT,EAAKqiC,cAAgBriC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS23B,QACnEtiC,EAAKuiC,cAAgBviC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS43B,eACnEviC,EAAKwiC,eAAiBxiC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS63B,gBACpExiC,EAAKyiC,aAAeziC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS+3B,cAElE1iC,EAAK2iC,WAAa3iC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASqJ,KAChEhU,EAAKgU,IAAM,IAAI4uB,OAAOC,KAAK3gC,IAAIlC,EAAK2iC,WAAYlnC,EAAQuY,KACxDhU,EAAK8iC,YAAc9iC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASm4B,aACjE9iC,EAAKmhC,OAAS,IAAIyB,OAAOC,KAAKE,OAAOC,aAAahjC,EAAK8iC,YAAa9iC,EAAKvE,QAAQwnC,qBACjF,MAAMC,EAAgBhoC,EAAG+E,YAAYoC,IAAIrC,EAAK8iC,YAAa,YAAF,OAAc9iC,EAAK2B,IAAM3B,EAAKmjC,cAAcjiC,KAAKlB,IAC1GA,EAAK8iC,YAAY7lC,iBAAiB,WAAYimC,GAE9CljC,EAAKojC,UAAYpjC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASy4B,WAC/D,MAAMC,EAAgBnoC,EAAG+E,YAAYoC,IAAIrC,EAAKojC,UAAW,SAAF,OAAWpjC,EAAK2B,IAAM3B,EAAKsjC,aAAapiC,KAAKlB,IAepG,GAdAA,EAAKojC,UAAUnmC,iBAAiB,QAASomC,GAErC5nC,EAAQuY,IAAIuvB,SACdX,OAAOC,KAAK7wB,MAAM7Q,YAAYnB,EAAKgU,IAAK,gBAAgB,KACtD4uB,OAAOC,KAAK7wB,MAAM7Q,YAAYnB,EAAKgU,IAAK,kBAAkB,KACpDhU,EAAKgU,IAAIwvB,UAAY/nC,EAAQuY,IAAIuvB,SACnCvjC,EAAKgU,IAAIyvB,QAAQhoC,EAAQuY,IAAIuvB,QAC/B,GACA,IAINX,OAAOC,KAAK7wB,MAAM7Q,YAAYnB,EAAKmhC,OAAQ,gBAAiBnhC,EAAK0jC,cAAcxiC,KAAKlB,IAEhFvE,EAAQkP,SAASg5B,YACnB3jC,EAAK4jC,cAAgB5jC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASg5B,WAC/D3jC,EAAK4jC,eAAe,CACtB,MAAMC,EAAgB3oC,EAAG+E,YAAYoC,IAAIrC,EAAK4jC,cAAe,SAAF,OAAW5jC,EAAK2B,IAAM3B,EAAK8jC,eAAe5iC,KAAKlB,IAC1GA,EAAK4jC,cAAc3mC,iBAAiB,QAAS4mC,EAC/C,CAGF,GAAIpoC,EAAQkP,SAASo5B,YACnB/jC,EAAKgkC,cAAgBhkC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASo5B,WAC/D/jC,EAAKgkC,eACP,GAA0B,WAAtBnjB,SAASojB,SACX,GAAIxU,UAAUyU,YAAa,CACrBzoC,EAAQ0oC,eACVnkC,EAAKokC,QAAQ,CAAE3jC,SAAS,IAE1B,MAAM4jC,EAAgBnpC,EAAG+E,YAAYoC,IAAIrC,EAAKgkC,cAAe,SAAF,OAAWhkC,EAAK2B,IAAM3B,EAAKokC,QAAQljC,KAAKlB,IACnGA,EAAKgkC,cAAc/mC,iBAAiB,QAASonC,EAC/C,MACErkC,EAAKgkC,cAAc7/B,MAAMmgC,QAAU,YAGrCtkC,EAAKgkC,cAAc7/B,MAAMmgC,QAAU,OAKzCtkC,EAAKqa,aAGLnf,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAKAF,aACE,MAAMra,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBuE,EAAKuN,UAIL9R,EAAQ8oC,eACV3B,OAAOC,KAAK7wB,MAAMwyB,gBAAgBxkC,EAAKgU,IAAK,QAAQ,KAClDhU,EAAKgU,IAAIywB,UAAUhpC,EAAQuY,IAAIopB,QAC/Bp9B,EAAKgU,IAAIyvB,QAAQhoC,EAAQuY,IAAI0wB,MAC7B1kC,EAAK8jC,eAAe,CAAEa,OAAO,GAAO,GAG1C,CASAjB,gBACE,MAAM1jC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,IAAIq3B,EAAQ5kC,EAAKmhC,OAAO0D,WACxB,OAAID,GAASA,EAAM9kC,MAAuB,KAAf8kC,EAAM9kC,MAC3B8kC,EAAME,UAER9kC,EAAKsvB,SAAWsV,EAAME,SAASjkB,SAC/B7gB,EAAKmwB,SAAWyU,EAAME,SAAS3U,SAC/BnwB,EAAK+kC,OAAStpC,EAAQupC,kBACtBhlC,EAAKilC,WAKLjlC,EAAKklC,cAAgBllC,EAAKklC,aAAapkC,QAAUd,EAAK8iC,YAAYhiC,OACpEd,EAAKsvB,SAAWtvB,EAAKklC,aAAa5V,SAClCtvB,EAAKmwB,SAAW,KAChBnwB,EAAK+kC,OAAStpC,EAAQupC,kBACtBhlC,EAAKilC,WAIHjlC,EAAKmlC,kBAAoBnlC,EAAKmlC,iBAAiBrkC,QAAUd,EAAK8iC,YAAYhiC,OAC5Ed,EAAKsvB,SAAWtvB,EAAKmlC,iBAAiB7V,SACtCtvB,EAAKmwB,SAAWnwB,EAAKmlC,iBAAiBhV,SACtCnwB,EAAK+kC,OAAStpC,EAAQupC,kBACtBhlC,EAAKilC,gBAIP,IAAIrC,OAAOC,KAAKE,OAAOqC,qBAAsBC,sXAAoB,CAAD,CAC5D7D,MAAOxhC,EAAK8iC,YAAYhiC,OAAUd,EAAKvE,QAAQ6pC,6BACjDC,IACE,GAAIA,GAAWA,EAAQxmC,OAAQ,CAC7B,MAAMymC,EAAgB5oC,SAAS2I,cAAc,OAC7CigC,EAAc1+B,UAAUjE,IAAI,UAC5B,IAAI+/B,OAAOC,KAAKE,OAAO0C,cAAcD,GAAeE,WAClD,CAAE7T,UAAW0T,EAAQ,GAAG1T,YACxB0T,IACEX,EAAQW,EACRvlC,EAAK8iC,YAAYhiC,MAAQ8jC,EAAMe,kBAC/B3lC,EAAKsvB,SAAWsV,EAAME,SAASjkB,SAC/B7gB,EAAKmwB,SAAWyU,EAAME,SAAS3U,SAC/BnwB,EAAK+kC,OAAStpC,EAAQupC,aACtBhlC,EAAKmlC,iBAAmB,CACtBrkC,MAAOd,EAAK8iC,YAAYhiC,MACxBwuB,SAAUtvB,EAAKsvB,SACfa,SAAUnwB,EAAKmwB,UAEjBnwB,EAAKilC,UACLO,EAAcnlC,QAAQ,GAG5B,MACEL,EAAK4lC,UAAY,GACjB5lC,EAAK6lC,iBACL7lC,EAAKoB,UAAU0F,UAAUjE,IAAI,WAC7B7C,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,QAClC,GAGN,CAMA8iC,cAAcrhC,GACZ,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAIU,UADAzL,EAAEjB,MAGZiB,EAAEyT,iBAE6B,KAA3BvV,EAAK8iC,YAAYhiC,QACnBd,EAAKgU,IAAIywB,UAAUhpC,EAAQuY,IAAIopB,QAC/Bp9B,EAAKgU,IAAIyvB,QAAQhoC,EAAQuY,IAAI0wB,MAC7B1kC,EAAK8jC,eAAe,CAAEa,OAAO,KAGnC,CAMArB,aAAaxhC,GACX,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBuE,EAAKuN,WAITzL,EAAEyT,iBAE6B,KAA3BvV,EAAK8iC,YAAYhiC,OACnBd,EAAKgU,IAAIywB,UAAUhpC,EAAQuY,IAAIopB,QAC/Bp9B,EAAKgU,IAAIyvB,QAAQhoC,EAAQuY,IAAI0wB,MAC7B1kC,EAAK8jC,eAAe,CAAEa,OAAO,KAG7B/B,OAAOC,KAAK7wB,MAAM8zB,QAAQ9lC,EAAKmhC,OAAQ,iBAE3C,CAKA8D,UACE,MAAMjlC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,IAAKvN,EAAKgU,IAAI+xB,YAIZ,OAHAnD,OAAOC,KAAK7wB,MAAMwyB,gBAAgBxkC,EAAKgU,IAAK,kBAAkB,KAC5DhU,EAAKilC,SAAS,KAET,EAGTjlC,EAAKgmC,QAAUhmC,EAAKoB,UAAUtC,iBAAiBrD,EAAQkP,SAASjL,QAEhEM,EAAK4lC,UAAY,GACjB,IAAI5mC,EAAQ,EACZ,MAAMinC,EAAUxqC,EAAQwqC,QAClBC,EAAS,IAAItD,OAAOC,KAAKsD,aAC3B1qC,EAAQ2qC,aACVpmC,EAAKqmC,KAAO,IAAIzD,OAAOC,KAAKyD,WAAW7qC,EAAQ2qC,aAEjD,IAAK,MAAMG,KAAUN,EACnB,IAAKjmC,EAAKgmC,QAAQjnC,QAAUiB,EAAKwmC,cAAc,CAAED,WAAW,CAC1D,MAAME,EAAS,IAAI7D,OAAOC,KAAK6D,OAC7BjrC,EAAQkrC,WAAWC,IAAMnrC,EAAQkrC,WAAWC,IAAI5mC,EAAMumC,GAAUA,EAAOK,IACvEnrC,EAAQkrC,WAAWE,IAAMprC,EAAQkrC,WAAWE,IAAI7mC,EAAMumC,GAAUA,EAAOM,KAEnExQ,EAAWuM,OAAOC,KAAKiC,SAASgC,UAAUC,uBAAuB/mC,EAAKsvB,SAAUmX,GACtF,IACIzmC,EAAK+kC,SAAW/kC,EAAKmwB,UACtBnwB,EAAK+kC,QAAU1O,GAAYr2B,EAAK+kC,QAChC/kC,EAAKmwB,UAAYnwB,EAAKmwB,SAAShxB,SAASsnC,GACzC,CACA,MAAMO,EAAM,IAAIpE,OAAOC,KAAKoE,OAAO,CACjCjzB,IAAKhU,EAAKgU,IACVsb,SAAUmX,EACVS,MAAOX,EAAOzmC,KACdqnC,KAAMZ,EAAOY,MAAQ1rC,EAAQuY,IAAImzB,KACjCC,UAAWb,EAAOa,WAAa3rC,EAAQuY,IAAIozB,UAC3C/Q,SAAUA,EACVkQ,OAAQA,EACRvnC,MAAOA,IAETknC,EAAOmB,OAAOZ,GACdzmC,EAAK4lC,UAAUpnC,KAAKwoC,GACpBA,EAAI7lC,YAAY,SAAS,KACvBnB,EAAKsnC,cAAc,CAAEN,MAAK1pC,KAAM,UAAW,IAE7C0B,GACF,CACF,CAGF,IAAK,MAAOgO,EAAGg6B,KAAQhnC,EAAK4lC,UAAU3mC,UACpC+nC,EAAIhoC,MAAQgO,EAGdvR,EAAQkrC,WAAW73B,KAAK9O,GAExBA,EAAK6lC,iBAEDpqC,EAAQuY,IAAIuzB,UACVvnC,EAAKunC,SACPvnC,EAAKunC,QAAQC,eAEfxnC,EAAKunC,QAAU,IAAIE,gBAAgBznC,EAAKgU,IAAKhU,EAAK4lC,UAAWnqC,EAAQuY,IAAIuzB,UAGvEvnC,EAAK4lC,UAAU7mC,QACjBiB,EAAKoB,UAAU0F,UAAUzG,OAAO,WAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUjE,IAAI,SAC7B7C,EAAKoB,UAAU0F,UAAUzG,OAAO,SAC5BL,EAAKyiC,eACPziC,EAAKyiC,aAAaj9B,UAAYxF,EAAK4lC,UAAU7mC,QAG/CiB,EAAKgU,IAAI0zB,UAAUxB,GACnBlmC,EAAKgU,IAAI2zB,YAAYzB,KAErBlmC,EAAKoB,UAAU0F,UAAUzG,OAAO,WAChCL,EAAKoB,UAAU0F,UAAUjE,IAAI,SAC7B7C,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,UAE9B5E,EAAQqgB,OAEVlP,QAAQkP,MAAM,6BAA8B9b,EAAK4lC,WAGnD1qC,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,UACdrF,KAAM,KAEJ0D,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,eAAgB,GAGlF,CAKAstB,iBACE,MAAM7lC,EAAOJ,KAEPgoC,EAAU5nC,EAAKoB,UAAUtC,iBAAiB,2BAChD,IAAK,MAAMuB,KAAUunC,EACnBvnC,EAAOA,SAGT,IAAK,MAAM2mC,KAAOhnC,EAAK4lC,UACrB5lC,EAAK6nC,cAAc,CAAEb,OAEzB,CAOAR,gBAA+B,IAAjB,OAAED,GAAW,UAAH,6CAAG,CAAC,EAC1B,MAAMvmC,EAAOJ,KAGb,OAFgBI,EAAKvE,QAENkrC,WAAWjnC,OAAOM,EAAMumC,EAAQvmC,EAAKgmC,QACtD,CAOA6B,gBAA4B,IAAd,IAAEb,GAAQ,UAAH,6CAAG,CAAC,EACvB,MAAMhnC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIqsC,EAASlrC,SAAS2I,cAAc,OACpCuiC,EAAOtiC,UAAYtK,EAAGiK,SAASnF,EAAKuiC,cAAc/8B,WAClDsiC,EAASA,EAAO3hC,cAAc,cAC9B2hC,EAAOhhC,UAAUjE,IAAI,0BACrBilC,EAAOlsB,aAAa,gBAAiBorB,EAAIhoC,MAAM2b,YAE/C3a,EAAKwiC,eAAeh8B,OAAOshC,GAE3B,MAAMpjC,EAAMojC,EAAOhpC,iBAAiB,sBACpC,IAAK,MAAMiB,KAAM2E,EAAK,CACpB,MAAMpI,EAAOb,EAAQkrC,WAAW5mC,EAAGsH,aAAa,qBAC5C/K,GACFA,EAAK0D,EAAMgnC,EAAKjnC,EAEpB,CAEA+nC,EAAO7qC,iBAAiB,SAAS,KAC/B+C,EAAKsnC,cAAc,CAAEN,MAAK1pC,KAAM,UAAW,GAE/C,CAQAgqC,gBAAkC,IAApB,IAAEN,EAAG,KAAE1pC,GAAS,UAAH,6CAAG,CAAC,EAC7B,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBuE,EAAK+nC,gBACP/nC,EAAK+nC,cAAcC,aAAa,MAChChoC,EAAK+nC,cAAgB,MAGvB,MAAME,EACK,WAAT3qC,EACI7B,EAAQshB,OAAOmrB,mBACN,WAAT5qC,EACA7B,EAAQshB,OAAOorB,yBACf,KACFF,IACFjB,EAAIgB,aAAaC,GACjBjoC,EAAK+nC,cAAgBf,GAGvB,MAAM14B,EAAOtO,EAAKwiC,eAAer8B,cAAc,mBAAD,OAAoB6gC,EAAIhoC,MAAK,OACrEopC,EAAMpoC,EAAKwiC,eAAer8B,cAAc,sBAW9C,GAVIiiC,GACFltC,EAAG8L,IAAI,CAAEjH,GAAIqoC,IAEF,WAAT9qC,GACEgR,IACFA,EAAKqG,QACLzZ,EAAGyL,GAAG,CAAE5G,GAAIuO,KAIZ7S,EAAQ2qC,WAAY,CAOtB,GALW,WAAT9oC,EACI7B,EAAQshB,OAAOsrB,sBACN,WAAT/qC,EACA7B,EAAQshB,OAAOurB,4BACf,MAEJ,GAAIh6B,EAAM,CACR,MAAM5I,EAAUjK,EAAQkrC,WAAWN,KAAKrmC,EAAMgnC,EAAK14B,GAC/C5I,IACF1F,EAAKqmC,KAAKkC,WAAW7iC,GACrB1F,EAAKqmC,KAAKmC,KAAKxoC,EAAKgU,IAAKgzB,GAE7B,OAEAhnC,EAAKqmC,KAAKoC,MAAMzoC,EAAKgU,IAEzB,CACF,CAOA8vB,iBAAuC,IAAxB,MAAEa,GAAQ,GAAU,UAAH,6CAAG,CAAC,EAClC,MAAM3kC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAK8iC,YAAYhiC,MAAQ,GACzBd,EAAKsvB,SAAWtvB,EAAKgU,IAAI00B,YACzB1oC,EAAKmwB,SAAW,KACXwU,IAASlpC,EAAQktC,iBACpB3oC,EAAK+kC,OAASnC,OAAOC,KAAKiC,SAASgC,UAAUC,uBAC3C/mC,EAAKsvB,SACLtvB,EAAKgU,IAAI+xB,YAAY6C,iBAGzB5oC,EAAKilC,SACP,CAOAb,UAAkC,IAA1B,QAAE3jC,GAAU,GAAU,UAAH,6CAAG,CAAC,EAC7B,MAAMT,EAAOJ,KAETI,EAAKuN,WAIJ9M,GACHT,EAAK6oC,cAGPztC,OAAOq0B,UAAUyU,YAAY4E,mBAAmB9oC,EAAK+oC,eAAe7nC,KAAKlB,GAAOA,EAAKgpC,aAAa9nC,KAAKlB,IACzG,CAMA+oC,eAAeE,GACb,MAAMjpC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAKkpC,cAELlpC,EAAK8iC,YAAYhiC,MAAQrF,EAAQ0tC,WACjCnpC,EAAKsvB,SAAW,IAAIsT,OAAOC,KAAK6D,OAAOuC,EAAIG,OAAOC,SAAUJ,EAAIG,OAAOE,WACvEtpC,EAAKmwB,SAAW,KAChBnwB,EAAK+kC,OAAStpC,EAAQupC,aACtBhlC,EAAKklC,aAAe,CAClBpkC,MAAOd,EAAK8iC,YAAYhiC,MACxBwuB,SAAUtvB,EAAKsvB,UAEb7zB,EAAQqgB,OAEVlP,QAAQkP,MAAM,0BAA2BmtB,EAAKjpC,EAAKsvB,UAGrDtvB,EAAKgU,IAAIywB,UAAUzkC,EAAKsvB,UACxBtvB,EAAKilC,SACP,CAMA+D,aAAan8B,GACEjN,KAERspC,cAELt8B,QAAQC,MAAM,uCAAwCA,EACxD,CAKAg8B,cAEE3tC,EAAGyL,GAAG,CAAE5G,GADKH,KACIyiC,eACnB,CAKA6G,cAEEhuC,EAAG8L,IAAI,CAAEjH,GADIH,KACKyiC,eACpB,CASAroB,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEXub,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfynC,EAAgBhoC,EAAG+E,YAAYE,IAAIH,EAAK8iC,YAAa,YAAF,OAAc9iC,EAAK2B,KAC5E3B,EAAK8iC,YAAY9lC,oBAAoB,WAAYkmC,GACjD,MAAMG,EAAgBnoC,EAAG+E,YAAYE,IAAIH,EAAKojC,UAAW,SAAF,OAAWpjC,EAAK2B,KAEvE,GADA3B,EAAKojC,UAAUpmC,oBAAoB,QAASqmC,GACxCrjC,EAAKgkC,cAAe,CACtB,MAAMK,EAAgBnpC,EAAG+E,YAAYE,IAAIH,EAAKgkC,cAAe,SAAF,OAAWhkC,EAAK2B,KAC3E3B,EAAKgkC,cAAchnC,oBAAoB,QAASqnC,EAClD,CACA,GAAIrkC,EAAK4jC,cAAe,CACtB,MAAMC,EAAgB3oC,EAAG+E,YAAYE,IAAIH,EAAK4jC,cAAe,SAAF,OAAW5jC,EAAK2B,KAC3E3B,EAAK4jC,cAAc5mC,oBAAoB,QAAS6mC,EAClD,CAIA,GAFAjB,OAAOC,KAAK7wB,MAAMnQ,eAAe7B,EAAKmhC,OAAQ,gBAAiBnhC,EAAK0jC,cAAcxiC,KAAKlB,IAEnFvE,EAAQkP,SAASo5B,YACnB/jC,EAAKgkC,cAAgBhkC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAASo5B,WAC/D/jC,EAAKgkC,eACmB,WAAtBnjB,SAASojB,UACPxU,UAAUyU,aAAa,CACzB,MAAMG,EAAgBnpC,EAAG+E,YAAYoC,IAAIrC,EAAKgkC,cAAe,SAAF,OAAWhkC,EAAK2B,IAAM3B,EAAKokC,QAAQljC,KAAKlB,IACnGA,EAAKgkC,cAAchnC,oBAAoB,QAASqnC,EAClD,CAKNrkC,EAAKoB,UAAU0F,UAAUzG,OAAO,WAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,SAChCL,EAAKoB,UAAU0F,UAAUzG,OAAO,SAEhC,MAAMunC,EAAU5nC,EAAKoB,UAAUtC,iBAAiB,2BAChD,IAAK,MAAMuB,KAAUunC,EACnBvnC,EAAOA,SAGTL,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,2HAOF6pB,GAAc9pB,cAAgB,mBAC9B8pB,GAActpB,eAAiB,CAC7BgD,OAAO,EAEPqoB,eAAe,EACfI,eAAe,EACfoE,gBAAgB,EAChB3D,aAAc,KACdmE,WAAY,SAEZx+B,SAAU,CACR23B,OAAQ,iCACRQ,YAAa,uCACbM,UAAW,qCACXpvB,IAAK,8BACLuuB,cAAe,yCACfC,eAAgB,0CAChB+C,QAAS,kCACT7C,aAAc,wCACdqB,UAAW,qCACXJ,UAAW,qCACXjkC,OAAQ,kCAGVqd,OAAQ,CACNmrB,oBAAoB,EACpBC,0BAA0B,EAC1BE,uBAAuB,EACvBC,6BAA6B,GAG/BrF,qBAAqB,EACrBqC,4BAA4B,EAE5BtxB,IAAK,CACHopB,QAAQ,EACRsH,MAAM,EACNnB,SAAS,EACTgG,aAAa,EACbC,aAAa,EACbC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,EACnBC,eAAe,EACfC,mBAAmB,EACnBtC,SAAS,GAGXnB,WAAY,CAAC,EAEbO,WAAY,CACVC,KAAK,EACLC,KAAK,EACL/3B,MAAM,EACNpP,QAAQ,EACRI,MAAM,EACNgqC,SAAS,EACTC,YAAY,EACZvqB,KAAK,EACLwD,WAAW,EACXqT,UAAU,EACVgQ,MAAM,IAQVnrC,EAAGknC,cAAgBA,GCryBnBlnC,EAAG8c,MAAQA,EAKX,MAAMgyB,GAuBJ7xB,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,iQAX3B,GAAK,6EAYd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,UACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEfT,EAAKshC,OAASthC,EAAKoB,UAAUtC,iBAAiBrD,EAAQ6lC,QACtDthC,EAAKiqC,MAAQjqC,EAAKoB,UAAUtC,iBAAiBrD,EAAQwuC,OAErD,IAAK,MAAMzI,KAASxhC,EAAKshC,OACvBpmC,EAAG+E,YAAYC,IAAIshC,EAAO,YAAF,OAAcxhC,EAAK2B,IAAsB,KAAhB6/B,EAAM1gC,OAGzD,MAAMopC,EAA4B,QAAd,EAAAzuC,EAAQshB,cAAM,OAAd,EAAgBktB,MAAQ,IAAIxuC,EAAQshB,OAAOktB,MAAMvtC,MAAM,MAAQ,GACnF,GAAIwtC,EAAYnrC,OACd,IAAK,MAAMgmB,KAAQ/kB,EAAKiqC,MAAO,CAC7B,MAAME,EAAcjvC,EAAG+E,YAAYoC,IACjC0iB,EAAI,UACDtpB,EAAQshB,OAAOktB,MAAK,YAAIjqC,EAAK2B,IAChC3B,EAAKoqC,aAAalpC,KAAKlB,EAAM,CAAEqqC,OAAQtlB,KAEzC,IAAK,MAAM/S,KAASk4B,EAClBnlB,EAAK9nB,iBAAiB+U,EAAOm4B,EAEjC,CAGF,MAAMG,EAA4B,QAAd,EAAA7uC,EAAQshB,cAAM,OAAd,EAAgBykB,MAAQ,IAAI/lC,EAAQshB,OAAOykB,MAAM9kC,MAAM,MAAQ,GACnF,GAAI4tC,EAAYvrC,OACd,IAAK,MAAMyiC,KAASxhC,EAAKshC,OAAQ,CAC/B,MAAMiJ,EAAervC,EAAG+E,YAAYoC,IAClCm/B,EAAK,UACF/lC,EAAQshB,OAAOykB,MAAK,YAAIxhC,EAAK2B,IAChC3B,EAAKoqC,aAAalpC,KAAKlB,EAAM,CAAC,IAEhC,IAAK,MAAMgS,KAASs4B,EAClB9I,EAAMvkC,iBAAiB+U,EAAOu4B,EAElC,CAGFvqC,EAAKoa,YAELpa,EAAKqa,aAGLnf,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAKAF,aACE,MAAMra,EAAOJ,KAETI,EAAKuN,UAITvN,EAAKoqC,aAAalpC,KAAKlB,EAAvBA,EACF,CAYAoqC,eAAiC,UAApB,OAAEC,GAAW,UAAH,6CAAG,CAAC,EAAGvoC,EAAC,uCAC7B,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,KAAIuE,EAAKuN,UAIJzL,SAAS,QAAR,EAADA,EAAGC,cAAM,OAAT,EAAWyoC,MAAM,CAChB1oC,IACFA,EAAEyT,iBAEFzT,EAAE6T,4BAGJ,IAAK,MAAM6rB,KAASxhC,EAAKshC,OAAQ,OAC/B,MAAMmJ,EAAYjJ,EAAMn6B,aAAa,QAC/BqjC,EAAaL,aAAM,EAANA,EAAQhjC,aAAa,gBAClC0d,EACJ0lB,GAA2B,KAAdA,EACThmC,WAAWgmC,GAAazmC,KAAKE,KAAKO,WAAWimC,IACvB,QADmC,EACzDjmC,WAAWimC,UAAW,QAAI,EAChC,IAAIC,EAAMlmC,WAAW+8B,EAAM1gC,OAC3B6pC,EAAMrjC,MAAMqjC,GAAO,EAAIA,EACnB5lB,IACF4lB,GAAO5lB,EAEP4lB,EAAMlmC,WAAWkmC,EAAIC,QAAQ5qC,EAAK6qC,eAAe,CAAEC,IAAK/lB,OAE1D/kB,EAAK+qC,UAAU,CAAEJ,MAAKnJ,SACxB,CAEA,GAAI/lC,EAAQuvC,MACV,IAAK,MAAMX,KAAUrqC,EAAKiqC,MAAO,CACd/uC,EAAG+E,YAAYE,IAAIkqC,EAAQ,GAAF,OAAKrqC,EAAK2B,GAAE,mBAEpD0oC,EAAOzuB,aAAa,WAAY,YAEhCyuB,EAAOhiB,gBAAgB,YAEzBntB,EAAG+E,YAAYI,OAAOgqC,EAAQ,GAAF,OAAKrqC,EAAK2B,GAAE,kBAC1C,CAEJ,CACF,CAQAopC,YAA+B,IAArB,IAAEJ,EAAG,MAAEnJ,GAAU,UAAH,6CAAG,CAAC,EAC1B,MAAMxhC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfgvC,EAAYjJ,EAAMn6B,aAAa,QAC/B0d,EAAO0lB,GAA2B,KAAdA,EAAmBhmC,WAAWgmC,GAAa,KAKrE,GAJIhvC,EAAQwvC,WACVN,EAAMlvC,EAAQwvC,SAAS,CAAEN,MAAK5lB,UAG5BtpB,EAAQuvC,MAAO,CACjB,MAAME,EAAWhwC,EAAG+E,YAAYE,IAAIqhC,EAAO,YAAF,OAAcxhC,EAAK2B,KACtDwpC,EAAW3J,EAAMn6B,aAAa,OAC9B+jC,EAAW5J,EAAMn6B,aAAa,OAC9BkU,EAAM4vB,GAAyB,KAAbA,EAAkB1mC,WAAW0mC,GAAY1vC,EAAQ8f,IACnEa,EAAMgvB,GAAyB,KAAbA,EAAkB3mC,WAAW2mC,GAAY3vC,EAAQ2gB,IACzE,IAAK,MAAMiuB,KAAUrqC,EAAKiqC,MAAO,CAC/B,MAAMS,EAAaL,EAAOhjC,aAAa,gBACvC,IAAIgkC,EACAC,EACAJ,IACU,IAARP,IACFA,EAAM,IAEJpvB,GAAO,IACT8vB,GAAU,EACNV,EAAMpvB,IACRovB,EAAM,KAGNvuB,GAAO,IACTkvB,GAAU,EACNX,EAAMvuB,IACRuuB,EAAM,MAIRD,EAAa,GACXC,EAAMpvB,IAAS8vB,GAAWV,IAAQpvB,GAAS8vB,GAAmB,KAARV,KACxDA,EAAc,KAARA,EAAapvB,EAAMovB,EACzBzvC,EAAG+E,YAAYC,IAAImqC,EAAQ,GAAF,OAAKrqC,EAAK2B,GAAE,mBAAkB,IAEhD+oC,EAAa,IAClBC,EAAMvuB,IAASkvB,GAAWX,IAAQvuB,GAASkvB,GAAmB,KAARX,KACxDA,EAAc,KAARA,EAAavuB,EAAMuuB,EACzBzvC,EAAG+E,YAAYC,IAAImqC,EAAQ,GAAF,OAAKrqC,EAAK2B,GAAE,mBAAkB,GAG7D,CACF,CAEA6/B,EAAM1gC,MAAQ6pC,EAET3qC,EAAKS,UACR+gC,EAAMv4B,cAAc,IAAIsiC,MAAM,QAAS,CAAExpC,OAAQ,CAAEyoC,MAAM,MACzDhJ,EAAMv4B,cAAc,IAAIC,YAAY,SAAU,CAAEnH,OAAQ,CAAEyoC,MAAM,MAEpE,CASAxwB,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEXub,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASA6B,YACE,MAAMpa,EAAOJ,KACGI,EAAKvE,QAETutB,OAEVhpB,EAAKmpB,cACLnpB,EAAKopB,iBAET,CAMAD,cACE,MAAMnpB,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETutB,KAAKa,SACf,IAAK,MAAM2X,KAASxhC,EAAKshC,OAAQ,CACpBE,EAAMn6B,aAAa,OAE5Bm6B,EAAM5lB,aAAa,KAAM1gB,EAAG2J,WAEhC,CAEJ,CAKAukB,iBACE,MAAMppB,EAAOJ,KAGb,GAFgBI,EAAKvE,QAETutB,KAAKa,SAAU,CACzB,IAAIzkB,EAAM,GACV,IAAK,MAAMo8B,KAASxhC,EAAKshC,OACvBl8B,GAAO,GAAJ,OAAOo8B,EAAMn6B,aAAa,MAAK,KAEpC,IAAK,MAAM0d,KAAQ/kB,EAAKiqC,MACtBllB,EAAKnJ,aAAa,gBAAiBxW,EAAIK,OAE3C,CACF,CAWAolC,iBAA6B,IAAd,IAAEC,GAAQ,UAAH,6CAAG,CAAC,EACxB,OAAI9mC,KAAKwnC,MAAMV,KAASA,EAAY,EAC7BA,EAAInwB,WAAWje,MAAM,KAAK,GAAGqC,QAAU,CAChD,CAKAiD,SACepC,KAER+Y,YACP,CAKA+S,UAAU,QACR,MAAM1rB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfyuC,EAA4B,QAAd,EAAAzuC,EAAQshB,cAAM,OAAd,EAAgBktB,MAAQ,IAAIxuC,EAAQshB,OAAOktB,MAAMvtC,MAAM,MAAQ,GACnF,GAAIwtC,EAAYnrC,OACd,IAAK,MAAMgmB,KAAQ/kB,EAAKiqC,MAAO,CAC7B,MAAME,EAAcjvC,EAAG+E,YAAYE,IAAI4kB,EAAM,GAAF,OAAKtpB,EAAQshB,OAAOktB,MAAK,YAAIjqC,EAAK2B,KAC7E,IAAK,MAAMqQ,KAASk4B,EAClBnlB,EAAK/nB,oBAAoBgV,EAAOm4B,EAEpC,CAEF,MAAMG,EAA4B,QAAd,EAAA7uC,EAAQshB,cAAM,OAAd,EAAgBykB,MAAQ,IAAI/lC,EAAQshB,OAAOykB,MAAM9kC,MAAM,MAAQ,GACnF,GAAI4tC,EAAYvrC,OACd,IAAK,MAAMyiC,KAASxhC,EAAKshC,OAAQ,CAC/B,MAAMiJ,EAAervC,EAAG+E,YAAYE,IAAIqhC,EAAO,GAAF,OAAK/lC,EAAQshB,OAAOykB,MAAK,YAAIxhC,EAAK2B,KAC/E,IAAK,MAAMqQ,KAASs4B,EAClB9I,EAAMxkC,oBAAoBgV,EAAOu4B,EAErC,CAGFvqC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,EASFyxB,GAAY1xB,cAAgB,iBAC5B0xB,GAAYlxB,eAAiB,CAC3BgD,OAAO,EAEPkvB,OAAO,EACPE,UAAU,EACVD,SAAU,IAAmB,IAAlB,IAAEN,EAAG,KAAE5lB,GAAM,EACtB,OAAIA,GAAQ4lB,EAAM5lB,EACT/gB,KAAKynC,KAAKd,EAAM5lB,GAAQA,EAE1B4lB,CAAG,EAGZpvB,IAAK,YACLa,IAAK,WAELklB,OAAQ,uBACR2I,MAAO,iBAEPltB,OAAQ,CACNykB,MAAO,SACPyI,MAAO,SAGTjhB,KAAM,CACJa,UAAU,IAQd3uB,EAAG8uC,YAAcA,GAMK,oBAAX5uC,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAG8uC,YAAY1xB,cAAa,KAC9Cha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAG8uC,YAAY1xB,gBACxD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAG8uC,YAAYnrC,EAAKpD,GAInC,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,oKC5dP9E,EAAG8c,MAAQA,EAKX,MAAM0zB,GA+BJvzB,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,qXAf3B,GAAK,gNAgBd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,iBAE3E,MAAM5c,EAAUuE,EAAKvE,QACrBuE,EAAKihB,QAAUxlB,EAAQ8f,IAElB9f,EAAQ0E,MACXH,EAAK2rC,WAAa3rC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS63B,gBAAgBoJ,WAAU,GAE9F,CAKAjzB,aAAa,QACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAkBrB,GAhBAP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEfT,EAAK6rC,SAAW7rC,EAAKoB,UAAUtC,iBAAiBrD,EAAQkP,SAASkhC,UACjE7rC,EAAK8rC,WAAa9rC,EAAKoB,UAAUtC,iBAAiBrD,EAAQkP,SAASmhC,YACnE9rC,EAAKwiC,eAAiBxiC,EAAKoB,UAAU+E,cAAc1K,EAAQkP,SAAS63B,gBACpExiC,EAAK+rC,iBAAmB/rC,EAAKoB,UAAUtC,iBAAiBrD,EAAQkP,SAASqhC,iBACzEhsC,EAAKisC,YAAcjsC,EAAKoB,UAAUtC,iBAAiBrD,EAAQkP,SAASuhC,YAEhEzwC,EAAQ0wC,QAAS,CACnB,MAAMC,EAAsBlxC,EAAG+E,YAAYoC,IACzCjH,OAAM,uBACU4E,EAAK2B,IACrB3B,EAAKqsC,mBAAmBnrC,KAAKlB,IAE/B/C,iBAAiB,eAAgBmvC,EACnC,CACA,MAAME,EAAgBpxC,EAAG+E,YAAYoC,IAAIjH,OAAQ,UAAF,OAAY4E,EAAK2B,IAAM3B,EAAKusC,aAAarrC,KAAKlB,IAC7F/C,iBAAiB,SAAUqvC,GAE3B,MAAMvvB,EAAuB,QAAd,EAAAthB,EAAQshB,cAAM,OAAd,EAAgBpW,GAAK,IAAIlL,EAAQshB,OAAOpW,GAAGjK,MAAM,MAAQ,GACxE,GAAIqgB,EAAOhe,OACT,IAAK,MAAM+mC,IAAW,IAAI9gC,MAAM0C,KAAK1H,EAAK6rC,aAAc7mC,MAAM0C,KAAK1H,EAAK8rC,aAAc,CACpF,MAAMU,EAAiBtxC,EAAG+E,YAAYoC,IACpCyjC,EAAO,UACJrqC,EAAQshB,OAAOpW,GAAE,YAAI3G,EAAK2B,IAC7B3B,EAAKysC,cAAcvrC,KAAKlB,EAAM,CAAE8lC,aAElC,IAAK,MAAM9zB,KAAS+K,EAClB+oB,EAAQ7oC,iBAAiB+U,EAAOw6B,EAEpC,CAGFxsC,EAAKqa,aAGLnf,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACT9E,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,EAEF2B,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,UAGZ3B,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAKAF,aACE,MAAMra,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,SAAT,CAQA,GAJAvN,EAAK0sC,cACL1sC,EAAK2sC,UACL3sC,EAAK4sC,YACL5sC,EAAK6sC,YACD7sC,EAAKwiC,eAAgB,CACvB,MAAMthB,EAAQlhB,EAAKwiC,eAAer8B,cAAc1K,EAAQkP,SAAS2D,MAC7D4S,GACFA,EAAMtF,aAAa,kBAAmB5b,EAAKihB,QAE/C,CAEA,GAAIxlB,EAAQ0wC,QAAS,CACnB,MAAMtpC,EAAM7C,EAAK8sC,mBACXvwC,EAAQgnB,QAAQhnB,MAClBA,GAASA,EAAM,eAAD,OAAgByD,EAAKuY,gBAErCrd,EAAGmB,MAAM,CACPE,MAAO,WACPD,KAAM,KACJQ,uBAAsB,KACpB,MAAMokB,EAAQlhB,EAAKwiC,eAAer8B,cAAc1K,EAAQkP,SAAS2D,MACjE1R,SAASmwC,iBAAiB5f,UAAY5wB,EAAM,eAAD,OAAgByD,EAAKuY,eAAkB2I,EAAMwN,UAAY7rB,CAAG,GACvG,GAIV,CA5BA,CA6BF,CAWA4pC,gBAAgC,IAAlB,QAAE3G,GAAY,UAAH,6CAAG,CAAC,EAC3B,MAAM9lC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,MAAMy/B,EAAKvoC,WAAWqhC,EAAQz+B,aAAa,8BACrC4lC,EAAOxoC,WAAWqhC,EAAQz+B,aAAa,gCACvCyd,EAASkoB,GAAMC,EACrB,GAAKnoB,EAGE,CACL,MAAM7D,EAAUjhB,EAAKktC,SAAS,CAAEpoB,WAC1B+F,EAAQ7qB,EAAKwiC,eAAe1jC,iBAAiB,qBAAD,OAAsBmiB,EAAO,OAC3EA,IAAYjhB,EAAKihB,SAAY4J,EAAM9rB,SACrCiB,EAAK0sC,YAAY,CAAES,KAAMlsB,IACzBjhB,EAAK4kB,UAAYooB,EAEZhtC,EAAKoB,UAAU0F,UAAU3H,SAAS,+BACrCa,EAAKoB,UAAU0F,UAAUjE,IAAI,6BAC7B7C,EAAKotC,WACLptC,EAAK6sC,UAAU,CAAE/G,aAGvB,MAfE9lC,EAAK0sC,YAAY,CAAES,KAAM1xC,EAAQ8f,MACjCsF,SAAW7gB,EAAKqtC,KAAKC,IAezB,CAOAJ,WAA0B,IAAjB,OAAEpoB,GAAW,UAAH,6CAAG,CAAC,EACrB,MACMrpB,EADOmE,KACQnE,QAErB,IAAIwlB,EAHSrhB,KAGMqhB,QAAU6D,EAG7B,OAFA7D,EAAUA,EAAUxlB,EAAQ8f,IAAM9f,EAAQ8f,IAAM0F,EAChDA,EAAUA,EAAUxlB,EAAQ2gB,IAAM3gB,EAAQ2gB,IAAM6E,EACzCA,CACT,CAKAorB,qBACE,MAAMrsC,EAAOJ,KAEb,IAAII,EAAKuN,UAILvN,EAAKutC,cAAe,CACtB,MAAMhxC,EAAQ,CAAC,EACfA,EAAM,eAAD,OAAgByD,EAAKuY,eAAkBvY,EAAKutC,cACjDhqB,QAAQiqB,aAAajxC,EAAO,GAAIyD,EAAKqtC,KAAKC,KAC5C,CACF,CAKAf,eAAe,MACb,MAAMvsC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,MAAM4f,EAAYvwB,SAASmwC,iBAAiB5f,UACtCsgB,EAAeryC,OAAO0N,YAE5B,IAAIoY,EAAQlhB,EAAKwiC,eAAer8B,cAAc1K,EAAQkP,SAAS2D,MAC/D,MAAMuc,EAAQ7qB,EAAKwiC,eAAe1jC,iBAAiB,qBACnD,IAAK,MAAMwP,KAAQuc,EAAO,CAEpBsC,EADY7e,EAAKogB,UACK+e,EAAe,IACvCvsB,EAAQ5S,EAEZ,CAIA,GAHAtO,EAAK0sC,YAAY,CAAES,KAAM1oC,WAAWyc,EAAM7Z,aAAa,sBACvDrH,EAAK4sC,YAEDnxC,EAAQ0wC,QAAS,CACnB,MAAMtpC,EAAM7C,EAAK8sC,mBACjB9sC,EAAKutC,cAAgBpgB,EAAYjM,EAAMwN,UAAY7rB,CACrD,CAEA,MAAM6qC,EAAa1tC,EAAKqtC,KAAKM,QAAU,GAAJ,OAAO3tC,EAAKqtC,KAAKpJ,SAAQ,aAAKjkC,EAAKqtC,KAAKr/B,MACvE0/B,IAAe7sB,SAAS8sB,OACtB3tC,EAAKqtC,KAAKC,OAASzsB,SAASysB,MAC9B/pB,QAAQiqB,aAAa,KAAM,GAAIxtC,EAAKqtC,KAAKC,MAG3C1gC,QAAQC,MAAM,oEAAqE6gC,GAIrF,IAD6B,QAAd,EAAAjyC,EAAQshB,cAAM,OAAd,EAAgBpW,GAAK,IAAIlL,EAAQshB,OAAOpW,GAAGjK,MAAM,MAAQ,IAC7DqC,OAAQ,CACjB,GAAItD,EAAQshB,OAAO8uB,UAAY7rC,EAAK4tC,cAAgBzgB,EAClD,IAAK,MAAM2Y,KAAW9lC,EAAK6rC,SAAU,CAEnC,GAAI1e,EADQ2Y,EAAQpX,UACC,CACIxzB,EAAG+E,YAAYE,IAAI2lC,EAAS,GAAF,OAAKrqC,EAAQshB,OAAOpW,GAAE,YAAI3G,EAAK2B,IAChF6qC,CAAe,CAAEt8B,OAAQ41B,GAC3B,CACF,CAEF,GAAIrqC,EAAQshB,OAAO+uB,YAAc9rC,EAAK4tC,eAAiBzgB,EACrD,IAAK,MAAM2Y,KAAW9lC,EAAK8rC,WAAY,CAGrC,GAAI3e,EAAYsgB,EAFJ3H,EAAQpX,UACCoX,EAAQl+B,aACU,CACd1M,EAAG+E,YAAYE,IAAI2lC,EAAS,GAAF,OAAKrqC,EAAQshB,OAAOpW,GAAE,YAAI3G,EAAK2B,IAChF6qC,CAAe,CAAEt8B,OAAQ41B,GAC3B,CACF,CAEJ,CACA9lC,EAAK4tC,cAAgBzgB,CACvB,CAKAigB,WACE,MAAMptC,EAAOJ,KAEbiuC,MAAM7tC,EAAKqtC,KAAKC,KAAM,CACpBQ,OAAQ,QAEPx2B,MAAKy2B,GACAA,EAASC,GACJD,EAASE,OAETna,QAAQoa,OAAOH,KAGzBz2B,MAAK22B,IACJjuC,EAAKmuC,SAAS,CAAEF,QAAO,IAExBG,OAAM,KACLpuC,EAAKquC,QAAQ,GAEnB,CAOAC,YAA4B,IAAlB,QAAEC,GAAY,UAAH,6CAAG,CAAC,EACvB,MAAMvuC,EAAOJ,KAET2uC,EAAQC,QAAU,KAAOD,EAAQC,QAAU,IAC7CxuC,EAAKmuC,SAAS,CAAEI,YAEhBvuC,EAAKquC,QAET,CAOAF,WAAwB,IAAf,KAAEF,GAAS,UAAH,6CAAG,CAAC,EACnB,MAAMjuC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfy7B,EAAOt6B,SAAS2I,cAAc,QACpC2xB,EAAK1xB,UAAYyoC,EACjB,MAAMzL,EAAiBtL,EAAK/wB,cAAc1K,EAAQkP,SAAS63B,gBACvD/mC,EAAQ0E,KAAOqiC,EACjBxiC,EAAKyuC,UAAU,CAAEjM,mBAGjBr7B,YAAW,KACTnH,EAAKyuC,UAAU,CAAEjM,eAAgBxiC,EAAK2rC,WAAWC,WAAU,IAAQ,GAClE,IAEP,CAKAyC,SACezuC,KAERwB,UAAU0F,UAAUzG,OAAO,4BAClC,CAOAouC,YAAmC,IAAzB,eAAEjM,GAAmB,UAAH,6CAAG,CAAC,EAC9B,MAAMxiC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfovB,EAAQ2X,EAAe1jC,iBAAiBrD,EAAQkP,SAAS2D,MAI/D,IAAIogC,EAFJ7jB,EAAM,GAAGjP,aAAa,kBAAmB5b,EAAKihB,SAG9C,MAAM0tB,EAAM3uC,EAAKwiC,eAAe1jC,iBAAiB,GAAD,OAAIrD,EAAQkP,SAAS2D,OACrE,IAAK,MAAMA,KAAQuc,EACjB,GAAI7qB,EAAK4kB,QAAS,CACF+pB,EAAI,GACZ9nB,OAAOvY,EACf,KAAO,CAEL,MAAMqgC,EAAM3uC,EAAKwiC,eAAe1jC,iBAAiB,GAAD,OAAIrD,EAAQkP,SAAS2D,OACrEogC,EAAOC,EAAIA,EAAI5vC,OAAS,GACxB2vC,EAAKE,MAAMtgC,EACb,CAGFtO,EAAKoB,UAAU0F,UAAUzG,OAAO,6BAEhCL,EAAK2sC,UACL3sC,EAAK4sC,YACL5sC,EAAKusC,eAELrxC,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,YACdrF,KAAM,KAEJ0D,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,YAAD,OAAalJ,EAAKuY,eAAgB,GAGpF,CAKAq0B,YACE,MAAM5sC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAK,MAAMywC,KAAclsC,EAAKisC,YAC5B,IAAKC,EAAWvK,QAAQ1gB,SAAWjhB,EAAKihB,QAAUxc,WAAWynC,EAAWvK,QAAQ1gB,SAAU,CACxFirB,EAAWvK,QAAQ1gB,QAAUjhB,EAAKihB,QAClCirB,EAAWvK,QAAQzK,KAAOgV,EAAWvK,QAAQzK,KAAOgV,EAAWvK,QAAQzK,KAAOgV,EAAW1mC,UACzF,IAAI0xB,EAAOgV,EAAWvK,QAAQzK,KAC1B2X,EAAQ,IAAIC,OAAO,SAAU,OACL,IAAxB5X,EAAKiK,OAAO0N,KACd3X,EAAOA,EAAK1e,QAAQq2B,EAAO7uC,EAAKihB,UAElC4tB,EAAQ,IAAIC,OAAO,SAAU,OACD,IAAxB5X,EAAKiK,OAAO0N,KACd3X,EAAOA,EAAK1e,QAAQq2B,EAAOpzC,EAAQ2gB,MAErC8vB,EAAW1mC,UAAYtK,EAAGiK,SAAS+xB,EACrC,CAEJ,CAKAyV,UACE,MAAM3sC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBuE,EAAKihB,SAAWxlB,EAAQ8f,KAC1Bvb,EAAKoB,UAAU0F,UAAUjE,IAAI,2BAE3B7C,EAAKihB,SAAWxlB,EAAQ2gB,KAC1Bpc,EAAKoB,UAAU0F,UAAUjE,IAAI,yBAEjC,CASAmX,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEXub,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CAUAu0B,mBACE,MAAM9sC,EAAOJ,KAEb,IAAIiD,EAAM,EACV,IAAK,MAAMknC,KAAc/pC,EAAK+rC,iBAC5BlpC,GAAOknC,EAAWniC,aAEpB,OAAO/E,CACT,CAOA6pC,cAAkC,IAAtB,KAAES,EAAO,MAAS,UAAH,6CAAG,CAAC,EAC7B,MAAMntC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfsK,EAAM,IAAIgpC,IAAIluB,SAASysB,MACvB0B,EAAe,IAAIC,gBAAgBlpC,EAAIo7B,QAEvChhC,EAAM6uC,EAAa7uC,IAAI1E,EAAQ0E,KACrCH,EAAKihB,QAAmB,OAATksB,EAAgBA,EAAOhtC,EAAMsE,WAAWtE,GAAOH,EAAKihB,QACnE+tB,EAAa9uC,IAAIzE,EAAQ0E,IAAKH,EAAKihB,SACnClb,EAAIo7B,OAAS6N,EAAar0B,WAC1B3a,EAAKqtC,KAAOtnC,CACd,CAKA8mC,YAA4B,IAAlB,QAAE/G,GAAY,UAAH,6CAAG,CAAC,EACvB,MAAM9lC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQyzC,SAAU,CACpB,MAAMC,EAAWrJ,EAAU,CAACA,GAAW,IAAI9gC,MAAM0C,KAAK1H,EAAK6rC,aAAc7mC,MAAM0C,KAAK1H,EAAK8rC,aACzF,IAAK,MAAMhG,KAAWqJ,EAAU,CAC9B,MAAMnC,EAAKvoC,WAAWqhC,EAAQz+B,aAAa,8BACrC4lC,EAAOxoC,WAAWqhC,EAAQz+B,aAAa,gCACvCyd,EAASkoB,GAAMC,EAEflnC,EAAM,IAAIgpC,IAAIluB,SAASysB,MACvB0B,EAAe,IAAIC,gBAAgBlpC,EAAIo7B,QAEvCtK,EAAO72B,EAAKktC,SAAS,CAAEpoB,WAC7B,GAAI9kB,EAAKihB,UAAY4V,EAAM,CACzBmY,EAAa9uC,IAAIzE,EAAQ0E,IAAK02B,GAC9B9wB,EAAIo7B,OAAS6N,EAAar0B,WAC1B,MAAMy0B,EAAOxyC,SAAS2I,cAAc,QACpC6pC,EAAKC,IAAM,WACXD,EAAK9B,KAAOvnC,EACZqpC,EAAKE,GAAK,QACV1yC,SAAS2yC,KAAKC,YAAYJ,EAC5B,CACF,CACF,CACF,CAKAptC,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQ0wC,QAAS,CACnB,MAAMC,EAAsBlxC,EAAG+E,YAAYE,IAAI/E,OAAQ,gBAAF,OAAkB4E,EAAK2B,KAC5E3E,oBAAoB,eAAgBovC,EACtC,CACA,MAAME,EAAgBpxC,EAAG+E,YAAYE,IAAI/E,OAAQ,UAAF,OAAY4E,EAAK2B,KAChE3E,oBAAoB,SAAUsvC,GAC9B,IAAK,MAAMxG,IAAW,IAAI9gC,MAAM0C,KAAK1H,EAAK6rC,aAAc7mC,MAAM0C,KAAK1H,EAAK8rC,aAAc,CACpF,MAAMU,EAAiBtxC,EAAG+E,YAAYE,IAAI2lC,EAAS,GAAF,OAAKrqC,EAAQshB,OAAOpW,GAAE,YAAI3G,EAAK2B,KAChFmkC,EAAQ9oC,oBAAoBvB,EAAQshB,OAAOpW,GAAI6lC,EACjD,CAEAxsC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,2HASFmzB,GAAepzB,cAAgB,oBAC/BozB,GAAe5yB,eAAiB,CAC9BgD,OAAO,EAEP3b,KAAK,EACLgsC,SAAS,EACT+C,UAAU,EAEV3zB,IAAK,EACLa,IAAK,WAELW,OAAQ,CACN8uB,UAAU,EACVC,YAAY,EACZnlC,GAAI,SAGNgE,SAAU,CACRkgB,OAAO,EACPvc,MAAM,EACNu9B,UAAU,EACVC,YAAY,EACZE,iBAAiB,EACjBE,YAAY,IAQhBhxC,EAAGwwC,eAAiBA,GAME,oBAAXtwC,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGwwC,eAAepzB,cAAa,KACjDha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGwwC,eAAepzB,gBAC3D7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGwwC,eAAe7sC,EAAKpD,GAItC,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,IC7pBP9E,EAAG8c,MAAQA,EAKX,MAAMy3B,GAyBJt3B,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,oTAX3B,GAAK,sDAYd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YAEL5b,uBAAsB,KACpBkD,EAAK2Y,YAAY,GAErB,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEfT,EAAKya,QAAUza,EAAKoB,UAAUtC,iBAAiBrD,EAAQgf,SAEvD,MAAMi1B,EAAcx0C,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,aAAF,OAAepB,EAAK2B,IAAM3B,EAAK2vC,WAAWzuC,KAAKlB,IACpGA,EAAKoB,UAAUnE,iBAAiB,YAAayyC,GAC7C,MAAME,EAAe10C,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,cAAF,OAAgBpB,EAAK2B,IAAM3B,EAAK6vC,YAAY3uC,KAAKlB,IACvGA,EAAKoB,UAAUnE,iBAAiB,aAAc2yC,GAC9C,MAAME,EAAe50C,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,cAAF,OAAgBpB,EAAK2B,IAAM3B,EAAK+vC,YAAY7uC,KAAKlB,IACvGA,EAAKoB,UAAUnE,iBAAiB,aAAc6yC,GAG9C50C,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CASAo1B,WAAW7tC,GACT,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,SAAT,MAIoB/M,IAAhBR,EAAKgwC,QACPhwC,EAAK6vC,YAAY/tC,GAGnB,IAAK,MAAM6C,KAAM3E,EAAKya,QACpBvf,EAAG6H,UAAU,CACXhD,GAAI4E,EACJpG,IAAK,CACHoB,EAAGmC,EAAEmuC,QAAUjwC,EAAKgwC,OAAS,EAC7BpsC,EAAG9B,EAAEouC,QAAUlwC,EAAKmwC,QAAU,EAC9BrsC,SAAUrI,EAAQqI,UAEpBd,UAAWvH,EAAQuH,YAIvBhD,EAAKoB,UAAU6H,cACb,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,cAAgB,CAC7CxW,OAAQD,IApBZ,CAuBF,CAMA+tC,YAAY/tC,GACV,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,YAIJ9R,EAAQ20C,YAAc30C,EAAQ20C,WAAW,CAAEpwC,UAAS,CACvD,IAAK,MAAM2E,KAAM3E,EAAKya,QAAS,CAE7B,MAAMnX,EAAOqB,EAAGpB,wBAChBvD,EAAKgwC,OAAS1sC,EAAK6E,MACnBnI,EAAKmwC,QAAU7sC,EAAK+J,OAEf5R,EAAQ0gB,WACXjhB,EAAGyL,GAAG,CAAE5G,GAAI4E,IAGd,MAAMhF,EAAImC,EAAEmuC,QAAUjwC,EAAKgwC,OAAS,EAC9BpsC,EAAI9B,EAAEouC,QAAUlwC,EAAKmwC,QAAU,EACjC10C,EAAQuH,UACV2B,EAAGR,MAAMnB,UAAY,cAAH,OAAiBrD,EAAC,0BAAkBiE,EAAC,QAEvDe,EAAGR,MAAMX,KAAO,GAAH,OAAM7D,EAAC,MACpBgF,EAAGR,MAAMV,IAAM,GAAH,OAAMG,EAAC,MAEvB,CAEA5D,EAAKoB,UAAU6H,cACb,IAAIC,YAAY,MAAD,OAAOlJ,EAAKuY,cAAgB,CACzCxW,OAAQD,IAGd,CACF,CAMAiuC,YAAYjuC,GACV,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,YAIJ9R,EAAQ20C,YAAc30C,EAAQ20C,WAAW,CAAEpwC,UAAS,CACvD,IAAK,MAAM2E,KAAM3E,EAAKya,QAEfhf,EAAQ0gB,WACXjhB,EAAG8L,IAAI,CAAEjH,GAAI4E,IAIjB3E,EAAKoB,UAAU6H,cACb,IAAIC,YAAY,OAAD,OAAQlJ,EAAKuY,cAAgB,CAC1CxW,OAAQD,IAGd,CACF,CASAkY,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QACrB,IAAKuE,EAAKuN,SAAU,CAElBvN,EAAKuN,UAAW,EAEhB,IAAK,MAAM5I,KAAM3E,EAAKya,QAChBhf,EAAQuH,UACV2B,EAAGR,MAAMnB,UAAY,IAErB2B,EAAGR,MAAMX,KAAO,GAChBmB,EAAGR,MAAMV,IAAM,IAIdqlB,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,eAEhE,CACF,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KAEbI,EAAKua,QAAQ,CAAEuO,WAAW,IAE1B5tB,EAAGwF,eAAe,CAAEV,OAAMO,eAAgBP,EAAK+Y,kBAE/C,MAAM22B,EAAcx0C,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,aAAF,OAAepB,EAAK2B,KACzE3B,EAAKoB,UAAUpE,oBAAoB,YAAa0yC,GAChD,MAAME,EAAe10C,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,cAAF,OAAgBpB,EAAK2B,KAC3E3B,EAAKoB,UAAUpE,oBAAoB,aAAc4yC,GACjD,MAAME,EAAe50C,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,cAAF,OAAgBpB,EAAK2B,KAC3E3B,EAAKoB,UAAUpE,oBAAoB,aAAc8yC,GAEjD9vC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,EASFk3B,GAAYn3B,cAAgB,iBAC5Bm3B,GAAY32B,eAAiB,CAC3BgD,OAAO,EAEPrB,QAAS,+BAET0B,WAAW,EAEXnZ,WAAW,EACXc,SAAU,IAAe,IAAd,MAAEC,GAAO,EAClB,OAAOA,EAAQ,CAAC,EAElBqsC,YAAY,GAOdl1C,EAAGu0C,YAAcA,GAMK,oBAAXr0C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGu0C,YAAYn3B,cAAa,KAC9Cha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGu0C,YAAYn3B,gBACxD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGu0C,YAAY5wC,EAAKpD,GAInC,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,IC1VP9E,EAAG8c,MAAQA,EAKX,MAAMq4B,WAAgBn1C,EAAGgd,OAOvBC,YAAY1I,GACVgxB,MAAMhxB,EAD4B,UAAH,6CAAG,CAAC,EAErC,2HAOF4gC,GAAQ/3B,cAAgB,aACxB+3B,GAAQv3B,eAAiB,CAEvBnO,SAAU,4BACV8P,QAAS,2BAETc,IAAK,EACLa,IAAK,EAELzV,GAAI,QACJK,IAAK,QACLkb,aAAa,EACb7B,WAAY,+BACZtB,WAAW,EACXG,UAAU,EACV6I,UAAW,cACXT,YAAa,sCACbI,cAAc,EAEdzD,MAAO,CACLtZ,UAAU,EACV8P,SAAS,EACTS,eAAe,EACfC,cAAc,GAGhB4N,mBAAmB,EACnBpC,SAAU,OACVD,UAAW,uBACXL,YAAY,EACZG,OAAQ,CACN/L,QAAS,CACPlZ,MAAO,IACPklB,OAAQ,IAGZuC,KAAM,CACJS,KAAM,SACNG,eAAe,EACfE,cAAc,EACdD,UAAU,EACVE,UAAU,EACVC,UAAU,EACVG,MAAM,EACN5c,UAAU,EACVid,UAAU,EACVb,UAAU,EACVkB,OAAO,IAQX3vB,EAAGm1C,QAAUA,GAMS,oBAAXj1C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGm1C,QAAQ/3B,cAAa,KAC1Cha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGm1C,QAAQ/3B,gBACpD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGm1C,QAAQxxC,EAAKpD,GAI/B,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,IClGP,MAAMswC,GA4BJn4B,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,iQAhB3B,GAAK,2MAiBd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEVT,EAAKsI,QACRtI,EAAKoB,UAAUoF,OAAOtL,EAAGmK,KAAK,CAAED,IAAK,yCACrCpF,EAAKsI,MAAQtI,EAAKoB,UAAU+E,cAAc,8BAG5C,MAAM8W,EAAY/hB,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,wBAAF,OAA0BpB,EAAK2B,IAAM3B,EAAKuwC,YAAYrvC,KAAKlB,IAC9GA,EAAKoB,UAAUnE,iBAAiB,YAAaggB,GAC7Cjd,EAAKoB,UAAUnE,iBAAiB,aAAcggB,EAAW,CAAEnG,SAAS,IAGpE5b,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAUAg2B,YAAYzuC,GACV,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,YAIJ9R,EAAQ+0C,YAAc1uC,EAAEoO,OAAOxR,QAAQjD,EAAQ+0C,aAAa,CAC/DxwC,EAAKsI,MAAM9B,OAAOtL,EAAGmK,KAAK,CAAED,IAAK,mCAElB,cAAXtD,EAAExE,MACJwE,EAAEyT,iBAGJ,MAAM1M,EAAI7I,EAAKoB,UAAUwG,aACnBc,EAAI1I,EAAKoB,UAAUuG,YAEnBjF,GADamG,EAAIH,EAAIG,EAAIH,GACLjN,EAAQg1C,YAAc,EAE1CC,EAAY1sC,KAAK2sC,KAAK3sC,KAAK4sC,IAAI/nC,EAAG,GAAK7E,KAAK4sC,IAAIloC,EAAG,IACnDmoC,EAAcH,EAAYhuC,EAAQ,EAExC,IAAIkB,EACAjE,OACca,IAAdsB,EAAEmuC,SACJrsC,EAAI9B,EAAEouC,QACNvwC,EAAImC,EAAEmuC,SACGnuC,EAAEgvC,SAAWhvC,EAAEgvC,QAAQ/xC,SAChC6E,EAAI9B,EAAEgvC,QAAQ,GAAGZ,QACjBvwC,EAAImC,EAAEgvC,QAAQ,GAAGb,SAEnB,MAAMc,EAAajvC,EAAEoO,OAAO3M,wBAI5B,GAHAK,GAAQmtC,EAAWttC,IACnB9D,GAAQoxC,EAAWvtC,KAEfxD,EAAKoB,YAAcU,EAAEoO,OAAQ,CAC/B,MAAM8gC,EAAahxC,EAAKoB,UAAUmC,wBAClCK,GAAKmtC,EAAWttC,IAAMutC,EAAWvtC,IACjC9D,GAAKoxC,EAAWvtC,KAAOwtC,EAAWxtC,IACpC,CACA,MAAMC,EAAMG,EAAIlB,EAAO,EACjBc,EAAO7D,EAAI+C,EAAO,EAExB1C,EAAK0C,KAAOA,EACZ1C,EAAKyD,IAAMA,EACXzD,EAAKwD,KAAOA,EACZxD,EAAK0wC,UAAYA,EACjB1wC,EAAK6wC,WAAaA,EAElB7wC,EAAKoB,UAAU6H,cACb,IAAIC,YAAY,MAAD,OAAOlJ,EAAKuY,cAAgB,CACzCxW,OAAQD,KAIZ,MAAMmvC,EAAa/1C,EAAG+E,YAAYoC,IAAIjH,OAAQ,oBAAF,OAAsB4E,EAAK2B,IAAM3B,EAAKkxC,UAAUhwC,KAAKlB,IACjG/C,iBAAiB,UAAWg0C,GAC5Bh0C,iBAAiB,WAAYg0C,EAAY,CAAEn6B,SAAS,GACtD,CACF,CAMAo6B,UAAUpvC,GACR,MAAM9B,EAAOJ,KAEb,GAAII,EAAKuN,SACP,OAGF,MAAM0jC,EAAa/1C,EAAG+E,YAAYE,IAAI/E,OAAQ,oBAAF,OAAsB4E,EAAK2B,KACvE3E,oBAAoB,UAAWi0C,GAC/Bj0C,oBAAoB,WAAYi0C,GAEhCjxC,EAAKoB,UAAU6H,cACb,IAAIC,YAAY,OAAD,OAAQlJ,EAAKuY,cAAgB,CAC1CxW,OAAQD,IAGd,CASAkY,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEXub,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KAEbI,EAAKsI,MAAMjI,SACXL,EAAKsI,MAAQ,KAGb,MAAM2U,EAAY/hB,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,wBAAF,OAA0BpB,EAAK2B,KAClF3B,EAAKoB,UAAUpE,oBAAoB,YAAaigB,GAChDjd,EAAKoB,UAAUpE,oBAAoB,aAAcigB,EAAW,CAAEnG,SAAS,IAEvE,MAAMm6B,EAAa/1C,EAAG+E,YAAYE,IAAI/E,OAAQ,oBAAF,OAAsB4E,EAAK2B,KACvE3E,oBAAoB,UAAWi0C,GAC/Bj0C,oBAAoB,WAAYi0C,GAEhCjxC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,EASF+3B,GAAOh4B,cAAgB,YACvBg4B,GAAOx3B,eAAiB,CACtBgD,OAAO,EAEP20B,YAAa,GACbD,WAAY,yBAOdt1C,EAAGo1C,OAASA,oIC/RZ,MAAMa,GA4BJh5B,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,0PAhB3B,GAAK,uNAiBd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBACtD,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKS,SAAU,EAEfT,EAAKgZ,SAAWvd,EAAQwd,MAAQ,IAAIxd,EAAQwd,MAAMvc,MAAM,MAAQ,GAEhE,MAAM00C,EAAgBl2C,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,SAAF,OAAWpB,EAAK2B,IAAM3B,EAAKoqC,aAAalpC,KAAKlB,EAAM,CAAC,IAC3GA,EAAKoB,UAAUnE,iBAAiB,QAASm0C,GAEzC,MAAMC,EAAkBn2C,EAAG+E,YAAYoC,IAAIjH,OAAQ,YAAF,OAAc4E,EAAK2B,IAAM3B,EAAKsxC,eAAepwC,KAAKlB,EAAM,CAAC,IAC1G/C,iBAAiB,oBAAD,OAAqB+C,EAAKuY,cAAgB84B,GAAiB,GAE3E,MAAM9yB,EAAcrjB,EAAG+E,YAAYoC,IACjCjH,OAAM,qBACQ4E,EAAK2B,IACnB3B,EAAKoqC,aAAalpC,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEuxC,YAAY,KAExDt0C,iBAAiB,aAAcshB,GAE/Bve,EAAKwxC,UAAY,CAAC50C,SAASmwC,oBAAqBnwC,SAASkC,iBAAiBrD,EAAQ+1C,YAAYh9B,UAC9F,IAAK,MAAMi9B,KAAYzxC,EAAKwxC,UAC1B,GAAIC,EAAU,CACZ,MAAMnF,EAAgBpxC,EAAG+E,YAAYoC,IACnCovC,EAAQ,iBACEzxC,EAAK2B,IACf3B,EAAK0xC,wBAAwBxwC,KAAKlB,GAAMkB,KAAKlB,EAAM,CAAEyxC,cAEjD10B,EAASthB,EAAQshB,OAAS,IAAIthB,EAAQshB,OAAOrgB,MAAM,MAAQ,GACjE,GAAI+0C,IAAa70C,SAASmwC,iBACxB,IAAK,MAAM/6B,KAAS+K,EAClB9f,iBAAiB+U,EAAOs6B,QAG1B,IAAK,MAAMt6B,KAAS+K,EAClB00B,EAASx0C,iBAAiB+U,EAAOs6B,EAGvC,CAGFpxC,EAAGmB,MAAM,CACPE,MAAO,WACPD,KAAM,KAGJpB,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKqa,aAELra,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,GAEF,GAGR,CAKAqa,aACE,MAAMra,EAAOJ,KAEbI,EAAKuwC,cAEL,IAAK,MAAMkB,KAAYzxC,EAAKwxC,UACtBC,GACFzxC,EAAK0xC,wBAAwB,CAAED,YAGrC,CASAlB,cACE,MAAMvwC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEf4iB,EAAOwC,SAASxC,KACtB,GAAIA,EAAM,CACR,MAAMte,EAAKC,EAAKoB,UAAU+E,cAAc1K,EAAQk2C,QAAQn5B,QAAQ,SAAU6F,IACtEte,GACFC,EAAKoqC,aAAa,CAAErqC,MAExB,CACF,CASAuxC,iBAAmC,UAApB,GAAEvxC,EAAE,GAAE4E,GAAO,UAAH,6CAAG,CAAC,EAAG7C,EAAC,uCAC/B,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAMrB,GAJAuE,EAAKuxC,aAAaxxC,GAAKC,EAAKuxC,WAE5BxxC,EAAO,QAAL,EAAGA,SAAE,QAAI+B,EAAEoO,OAETnQ,GAAMA,EAAGmF,UAAYnF,IAAO3E,SAC9B4E,EAAKkQ,OAASvL,QAAAA,EAAM5E,EAChBC,EAAKkQ,QAAQ,CAEf,IAAK,MAAMuhC,KAAYzxC,EAAKwxC,UAC1B,GAAIC,GACEA,EAAStyC,SAASa,EAAKkQ,QAAS,CAClClQ,EAAKyxC,SAAWA,EAChB,KACF,EAIAh2C,EAAQ4iB,MAAQte,EAAGsH,aAAa,2BAClCrH,EAAKkQ,OAAOjH,cAAc,IAAIC,YAAY,wBAG5ClJ,EAAK4xC,qBACP,CAEJ,CAKAA,sBACE,MAAM5xC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIP,EAAG+H,QAAQ,CAAElD,GAAIC,EAAKkQ,SAAW,OAEnClQ,EAAKuxC,WAAiC,QAAvB,EAAGr2C,EAAGiB,yBAAiB,QAAI6D,EAAKuxC,WAC/Cr2C,EAAGiB,kBAAoB,KAEvB6D,EAAKsvB,SAAW7zB,EAAQ6zB,SAAS,CAAEtvB,SACnCA,EAAK6xC,MAAQp2C,EAAQo2C,MAAM,CAAE7xC,SAC7BA,EAAK4G,SAAWnL,EAAQmL,SAAS,CAAE5G,SACnCA,EAAKsvB,SAAWtvB,EAAKsvB,SAAWtvB,EAAK6xC,MAErC,MAAMt2B,EAAM,EACNa,EAAMpc,EAAKyxC,SAASha,aAAez3B,EAAKyxC,SAASra,aACvDp3B,EAAKsvB,SAAWtvB,EAAKsvB,SAAW/T,EAAMA,EAAMvb,EAAKsvB,SACjDtvB,EAAKsvB,SAAWtvB,EAAKsvB,SAAWlT,EAAMA,EAAMpc,EAAKsvB,SAE7CtvB,EAAKyxC,SAAStkB,YAAcntB,EAAKsvB,UACnCtvB,EAAKyxC,SAASxoC,cAAc,IAAIC,YAAY,WAG9ClJ,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,YAAD,OAAalJ,EAAKuY,eAChE,CACF,CASA6xB,aAAa,EAA4BtoC,GAAG,UAA/B,WAAEyvC,GAAa,EAAK,GAAExxC,GAAI,EACrC,MAAMC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAGrB,GADAuE,EAAKuxC,YAAa,EACdA,EAAY,CACdvxC,EAAKuxC,YAAa,EAClB,MAAMlzB,EAAOwC,SAASxC,KAChByzB,EAAU9xC,EAAKoB,UAAU+E,cAAc1K,EAAQk2C,QAAQn5B,QAAQ,SAAU6F,IAE3EyzB,IACEr2C,EAAQ4iB,MAAQyzB,EAAQzqC,aAAa,4BACvCtH,EAAK+xC,EAGX,CAIA,GAFA/xC,EAAO,QAAL,EAAGA,SAAE,QAAI+B,EAAEoO,OAETnQ,GAAMA,EAAGmF,UAAYnF,IAAO3E,SAC9B2E,EAAKA,EAAGrB,QAAQjD,EAAQk2C,QAAQn5B,QAAQ,SAAU,MAC9CzY,GAAMA,EAAGjE,QAAQL,EAAQk2C,QAAQn5B,QAAQ,SAAU,OAAO,CAE5D,MAAMwuB,EAAM,IAAI+H,IAAIhvC,EAAGsH,aAAa,QAASwZ,UAC7C,GAAImmB,EAAI3oB,MAAQ2oB,EAAI+K,WAAalxB,SAASkxB,YACnCR,GAAc1wB,SAASxC,OAASte,EAAGse,MAAM,CAC5C,MAAMA,EAAOkzB,EAAavK,EAAI3oB,KAAOte,EAAGse,KAAK1D,WACvChW,EAAK3E,EAAKoB,UAAU+E,cAAckY,GACxC,GAAI1Z,EAAI,CAEF7C,GACFA,EAAEyT,iBAGJ,IAAK,MAAMk8B,KAAYzxC,EAAKwxC,UAC1B,GAAIC,GACEA,EAAStyC,SAASwF,GAAK,CACzB3E,EAAKyxC,SAAWA,EAChB,KACF,CAKDF,IACA91C,EAAQ4iB,MAAqD,SAA7Cte,EAAGsH,aAAa,0BACY,UAA7CtH,EAAGsH,aAAa,0BAChBwZ,SAASxC,OAASte,EAAGse,MAErBkF,QAAQC,UAAU,CAAC,EAAG,GAAIwjB,EAAI3oB,MAGhC,MAAM3Z,EAAMM,MAAM0C,KAAK1H,EAAKoB,UAAUtC,iBAAiBrD,EAAQk2C,QAAQn5B,QAAQ,SAAU,OAEzF,IAAK,MAAMw5B,KAASttC,EAClBstC,EAAMlrC,UAAUzG,UAAUL,EAAKgZ,UAEjCjZ,EAAG+G,UAAUjE,OAAO7C,EAAKgZ,UAEzBhZ,EAAKsxC,eAAe,CAAEvxC,KAAI4E,MAC5B,CACF,CAEJ,CAEJ,CAOA+sC,0BAA2C,IAAnB,SAAED,GAAa,UAAH,6CAAG,CAAC,EACtC,MAAMzxC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBA,EAAQw2C,mBACVhrC,aAAa/L,EAAG+E,YAAYE,IAAIsxC,EAAU,GAAF,OAAKzxC,EAAK2B,GAAE,mBACpDzG,EAAG+E,YAAYC,IACbuxC,EAAQ,UACLzxC,EAAK2B,GAAE,iBACVwF,YAAW,KAETnH,EAAKkyC,iBAAiB,CAAET,YAAW,GAClCh2C,EAAQ02C,cAGjB,CAOAD,mBAAoC,IAAnB,SAAET,GAAa,UAAH,6CAAG,CAAC,EAC/B,MAAMzxC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAKkQ,QAAS,EACdlQ,EAAKyxC,SAAWA,EAChB,IAAIvwB,GAAQ,EACRiM,EAAYntB,EAAKyxC,SAAStkB,UAE9B,MAAMilB,EAAYpyC,EAAKyxC,SAASha,aAC5BtK,EAAYntB,EAAKyxC,SAASra,cAAgBgb,IAC5CjlB,EAAYilB,GAGd,MAAM1tC,EAAMM,MAAM0C,KAAK1H,EAAKoB,UAAUtC,iBAAiBrD,EAAQk2C,QAAQn5B,QAAQ,SAAU,OAEzF,IAAK,MAAMzY,KAAM2E,EAAK,CAEpB,IAAK,MAAM+sC,KAAYzxC,EAAKwxC,UAC1B,GAAIC,EAAU,CACZ,GAAIA,IAAazxC,EAAKyxC,SACpB,MAEF,GAAIA,EAAStyC,SAASY,GACpB,MAEJ,CAGF,MAAMinC,EAAM,IAAI+H,IAAIhvC,EAAGsH,aAAa,QAASwZ,UAC7C,GAAImmB,EAAI3oB,KAAM,CAEZ,IACEzhB,SAASy1C,yBAAyBlsC,cAAc6gC,EAAI3oB,KAGtD,CAFE,SACA,QACF,CAEA,GADAre,EAAKkQ,OAAStT,SAASuJ,cAAc6gC,EAAI3oB,MACrCre,EAAKkQ,QAAUhV,EAAG+H,QAAQ,CAAElD,GAAIC,EAAKkQ,SAAW,CAElD,MAAMof,EAAW7zB,EAAQ6zB,SAAS,CAAEtvB,SAC9B6xC,EAAQp2C,EAAQo2C,MAAM,CAAE7xC,SAE9B,GAAImtB,GAAanpB,KAAKwnC,MAAMlc,EAAWuiB,GAAQ,CAE7C,MAAM/1C,EAAUL,EAAQk2C,QAAQn5B,QAAQ,SAAUwuB,EAAI3oB,MAChDzb,EAAW8B,EAAIhF,QAAOC,GAAKA,EAAE7D,QAAQA,KAC3ColB,IAAUte,EAAS7D,OAEnB,IAAK,MAAMizC,KAASttC,EAAIhF,QAAOC,IAAMiD,EAASjG,SAASgD,KACrDqyC,EAAMlrC,UAAUzG,UAAUL,EAAKgZ,UAGjC,IAAK,MAAMiI,KAAWre,EAChB5C,EAAKgZ,SAASja,SAAWkiB,EAAQna,UAAU3H,YAAYa,EAAKgZ,WAC9DiI,EAAQna,UAAUjE,OAAO7C,EAAKgZ,SAGpC,CACF,CACF,CACF,CAEA,IAAKkI,GAASlhB,EAAKkQ,OACjB,IAAK,MAAMnQ,KAAM2E,EACf3E,EAAG+G,UAAUzG,UAAUL,EAAKgZ,SAGlC,CASAgB,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEXub,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEf21C,EAAgBl2C,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,SAAF,OAAWpB,EAAK2B,KACvE3B,EAAKoB,UAAUpE,oBAAoB,QAASo0C,GAE5C,MAAMC,EAAkBn2C,EAAG+E,YAAYE,IAAI/E,OAAQ,YAAF,OAAc4E,EAAK2B,KACpE3E,oBAAoB,oBAAD,OAAqBgD,EAAKuY,cAAgB84B,GAAiB,GAE9E,MAAM9yB,EAAcrjB,EAAG+E,YAAYE,IAAI/E,OAAQ,cAAF,OAAgB4E,EAAK2B,KAClE3E,oBAAoB,aAAcuhB,GAElC,IAAK,MAAMkzB,KAAYzxC,EAAKwxC,UAC1B,GAAIC,EAAU,CACZ,MAAMnF,EAAgBpxC,EAAG+E,YAAYE,IAAIsxC,EAAU,UAAF,OAAYzxC,EAAK2B,KAC5Dob,EAASthB,EAAQshB,OAAS,IAAIthB,EAAQshB,OAAOrgB,MAAM,MAAQ,GACjE,GAAI+0C,IAAa70C,SAASmwC,iBACxB,IAAK,MAAM/6B,KAAS+K,EAClB/f,oBAAoBgV,EAAOs6B,QAG7B,IAAK,MAAMt6B,KAAS+K,EAClB00B,EAASz0C,oBAAoBgV,EAAOs6B,EAG1C,CAGFtsC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,EASF44B,GAAS74B,cAAgB,cACzB64B,GAASr4B,eAAiB,CACxBgD,OAAO,EAEP61B,QAAS,oCACTH,UAAW,8CAEXv4B,MAAO,KAEP8D,OAAQ,wBACRk1B,kBAAkB,EAClBE,YAAa,IACb9zB,MAAM,EAENiR,SAAU,IAAc,IAAb,KAAEtvB,GAAM,EAEjB,IAAIsvB,EADStvB,EAAKkQ,OAAO3M,wBACLE,IAAMzD,EAAKyxC,SAAStkB,UACxC,GAAIntB,EAAKyxC,WAAa70C,SAASmwC,iBAAkB,CAE/Czd,GAD0BtvB,EAAKyxC,SAASluC,wBACAE,GAC1C,CACA,OAAO6rB,CAAQ,EAEjBuiB,MAAO,IACEz2C,OAAO0N,YAAc,EAE9BlC,SAAU,IAAc,IAAb,KAAE5G,GAAM,EACjB,MAAMsyC,EAAUtyC,EAAKkQ,OAAOxR,QAAQ,eAEpC,OAAIsB,EAAKS,SAAWT,EAAKuxC,YAAee,IAAYA,EAAQxrC,UAAU3H,SAAS,MAAe,EACvF,CAAC,GAQZjE,EAAGi2C,SAAWA,GCzhBdj2C,EAAG8c,MAAQA,EAKX,MAAMu6B,WAAer3C,EAAGgd,OAOtBC,YAAY1I,GACVgxB,MAAMhxB,EAD4B,UAAH,6CAAG,CAAC,EAErC,CASAgJ,QAEEgoB,MAAMhoB,OACR,CAKAyB,aACE,MAAMla,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAKwyC,QAAUxyC,EAAKoB,UAAU+E,cAAc1K,EAAQg3C,KAAKD,SACzDxyC,EAAK+Z,iBAAiBvb,KAAKwB,EAAKwyC,SAEhCxyC,EAAKwyC,QAAQ1rC,UAAUjE,IAAI,WAE3B7C,EAAK0yC,eACL1yC,EAAKyyC,KAAKE,SAAW,EACrB3yC,EAAKyyC,KAAKG,WAAa,KACvB,MAAMtvC,EAAOtD,EAAKwyC,QAAQjvC,wBAC1BvD,EAAKyyC,KAAKI,MAAQvvC,EAAK6E,MACvBnI,EAAKyyC,KAAKK,MAAQxvC,EAAKE,KAEC,IAApBxD,EAAKyyC,KAAKI,QAIT7yC,EAAKuN,UACRvN,EAAKwyC,QAAQ1rC,UAAUjE,IAAI,WAGzBpH,EAAQs3C,aACV/yC,EAAKgzC,YAAchzC,EAAKoB,UAAU+E,cAAc1K,EAAQs3C,aAEtDt3C,EAAQw3C,aACVjzC,EAAKkzC,YAAclzC,EAAKoB,UAAU+E,cAAc1K,EAAQw3C,aAG1DjzC,EAAKyyC,KAAKU,UAAYnzC,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKY,SAAW,EAE9DrzC,EAAKszC,qBACLtzC,EAAKuzC,eACLvzC,EAAKwzC,qBAELxzC,EAAK+a,oBAEL/a,EAAKyzC,cAELzzC,EAAK0zC,kBAEL1zC,EAAK8a,qBACP,CAKAA,qBACE2lB,MAAM3lB,qBACN,MAAM9a,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAK2K,SAAW3K,EAAK2K,SAASjL,QAAOC,IAAMA,EAAEmH,UAAU3H,YAAY1D,EAAQk4C,iBAAiBj3C,MAAM,OACpG,CAKA+2C,cACE,MAAMzzC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIm4C,EAAc,EACdC,EAAa,EACjB,IAAK,MAAMlvC,KAAM3E,EAAKya,QAAS,CAC7B,IAAIq5B,EACAC,EACJ,GAAqB,aAAjBt4C,EAAQu4C,KACVF,EAAS,EACTC,EAAU/zC,EAAKyyC,KAAKI,UACf,CACL,MAAMvvC,EAAOqB,EAAGpB,wBAChBuwC,EAASxwC,EAAKE,KAAOxD,EAAKyyC,KAAKK,MAC/BiB,EAAUzwC,EAAK6E,KACjB,CACAyrC,GAAeG,EACfF,EAAaE,EAAUF,EAAaE,EAAUF,EAC9C34C,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,iBAAiBmyC,GAClD54C,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,UAAUmyC,GAC3C54C,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,WAAWoyC,EAC9C,CACA/zC,EAAKyyC,KAAKmB,YAAcA,EAExB5zC,EAAKi0C,qBAEDx4C,EAAQy4C,aACNl0C,EAAKyyC,KAAK0B,iBAAmB,GAC/Bn0C,EAAKwyC,QAAQ1rC,UAAUjE,OAAOpH,EAAQy4C,WAAWx3C,MAAM,MAEvDsD,EAAKsa,iBAAkB,EAEvBta,EAAKi0C,mBAAmB,CAAEx/B,MAAO,KAEjCzU,EAAKszC,sBAITtzC,EAAKo0C,uBAEgB,IAAjB34C,EAAQ44C,MAAmC,aAAjB54C,EAAQu4C,MAAuBh0C,EAAKyyC,KAAK0B,gBAAkBN,EACvF7zC,EAAK4oB,OAAQ,EAEb5oB,EAAK4oB,OAAQ,EAGf5oB,EAAKyyC,KAAK6B,WAAa,EACvBt0C,EAAKyyC,KAAK8B,UAAYv0C,EAAKw0C,QAAQz1C,OAAS,EAE5CiB,EAAKy0C,qBAEL,IAAK,MAAMhgC,KAASzU,EAAKw0C,QACvB//B,EAAMigC,eAAiB,IAAIjgC,EAAMgG,SAGnCza,EAAK20C,iBACP,CAOAV,qBAAmC,UAAhB,MAAEx/B,GAAU,UAAH,6CAAG,CAAC,EAC9B,MAAMzU,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAKw0C,QAAU,GACf,IAAII,EAAe,EACnBngC,EAAa,QAAR,EAAGA,SAAK,QAAIhZ,EAAQgZ,MACzB,MAAMogC,EAAgBpgC,EAAQzU,EAAKyyC,KAAKI,MAAQp+B,EAAQ,EACxD,IAAIqgC,EAAeD,EACnB70C,EAAKyyC,KAAK0B,iBAAmBn0C,EAAKyyC,KAAKI,MACvC,IAAK,MAAO7lC,EAAGkD,KAAWlQ,EAAKya,QAAQxb,UAAW,CAChD,MAAM81C,EAAc75C,EAAG+E,YAAYE,IAAI+P,EAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,YACzDmzC,GAAgBC,EAChB/0C,EAAKyyC,KAAK0B,iBAAmBY,EACzBD,GAAgB,GAEH,IAAN9nC,IAET4nC,IACAE,EAAeD,EACfC,GAAgBC,GAGb/0C,EAAKw0C,QAAQI,GAMhB50C,EAAKw0C,QAAQI,GAAcn6B,QAAQjc,KAAK0R,GALxClQ,EAAKw0C,QAAQI,GAAgB,CAC3B1kC,OAAQA,EACRuK,QAAS,CAACvK,IAKdA,EAAOmY,gBAAgB,iBACvBnY,EAAO0L,aAAa,gBAAiB,GAAF,OAAK5b,EAAK2B,GAAE,YAAIizC,IACnD1kC,EAAOmY,gBAAgB,qBACzB,CACF,CAKA+rB,sBACE,MAAMp0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBuE,EAAKg1C,WAAa,EAClB,IAAK,MAAMvgC,KAASzU,EAAKw0C,QAAS,CAChC,MAAM7vC,EAAK8P,EAAMvE,OAEX4jC,EAAS54C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,WAC1C8Y,EAAUza,EAAKyc,WAAW,CAAE1c,GAAI4E,IACtC,IAgBInB,EAhBAyxC,EAAYC,IACZC,EAAa,EAEjB,IAAK,MAAMxwC,KAAM8V,EAAS,CAIxBw6B,EAFmB/5C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,WAE3BszC,EAAYnB,EAASmB,EACzB,aAAjBx5C,EAAQu4C,OAEViB,GAAaj1C,EAAKg1C,YAEpBG,GAAcj6C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,YAC/C3B,EAAKg1C,YAAcG,CACrB,CAGsB,WAAlB15C,EAAQ25C,MACV5xC,EAAOxD,EAAKyyC,KAAKI,MAAQ,EAAIoC,EAAYE,EAAa,EAC3B,SAAlB15C,EAAQ25C,MACjB5xC,GAAQyxC,EACmB,UAAlBx5C,EAAQ25C,QACjB5xC,EAAOxD,EAAKyyC,KAAKI,MAAQoC,EAAYE,GAGvC,IAAK,MAAMxwC,KAAM8V,EACfvf,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,aAAaqC,KAAKwnC,MAAMhoC,IACzDtI,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAAcwzC,EAEnD,CACF,CAKAV,qBACE,MAAMz0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQq0B,SAA4B,aAAjBr0B,EAAQu4C,OAAwBh0C,EAAK4oB,OAAS5oB,EAAKg1C,WAAah1C,EAAKyyC,KAAKI,MAAO,CAEtG,MAAMwC,EAAQr1C,EAAKw0C,QAAQx0C,EAAKyyC,KAAK6B,YAAYpkC,OAC3Cw+B,EAAO1uC,EAAKw0C,QAAQx0C,EAAKyyC,KAAK8B,WAAWrkC,OACzColC,EAAYp6C,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,WAChD4zC,EAAWr6C,EAAG+E,YAAYE,IAAIuuC,EAAM,GAAF,OAAK1uC,EAAK2B,GAAE,WAC9C6zC,EAAYt6C,EAAG+E,YAAYE,IAAIuuC,EAAM,GAAF,OAAK1uC,EAAK2B,GAAE,eAC/C4Z,GAAO+5B,EACPl5B,GAAOm5B,EAAWC,EAAYx1C,EAAKyyC,KAAKI,MAE9C,IAAI4C,EAAW,EACf,IAAK,IAAIzoC,EAAI,EAAGA,EAAIhN,EAAKw0C,QAAQz1C,OAAS02C,EAAUzoC,IAAK,CACvD,MAAMyH,EAAQzU,EAAKw0C,QAAQxnC,GAC3B,IAAK,MAAMrI,KAAM8P,EAAMgG,QAAS,CAC9B,IAAIjX,EAAOtI,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAC5C,KAAI6B,GAAQ+X,GAyBL,CAELvO,EAAIhN,EAAKw0C,QAAQz1C,OACjB,KACF,CA7BiB,CACfyE,EAAO+X,EAEP,MAAMm6B,EAAa,EACnB,IAAIvtC,EAAQjN,EAAG+E,YAAYE,IAAIH,EAAKw0C,QAAQkB,GAAYxlC,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,eAG1E,GAFAwG,GAASjN,EAAG+E,YAAYE,IAAIsU,EAAMvE,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,eAEhDqL,EAAI0oC,EAAY,CAClB,MAAMC,EAAW31C,EAAKw0C,QAAQkB,GAAYxlC,OAAO7I,aAAa,iBAC9D,IAAK,MAAM6I,KAAUuE,EAAMgG,QACzBza,EAAKw0C,QAAQkB,GAAYj7B,QAAQjc,KAAK0R,GACtCA,EAAO0L,aAAa,gBAAiB+5B,EAEzC,CAEA,IAAK,MAAMhxC,KAAM3E,EAAKw0C,QAAQkB,GAAYj7B,QACxCvf,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,aAAa6B,GAC9CtI,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAAcwG,GAG7C6E,EAAI0oC,IACN11C,EAAKw0C,QAAQrjC,OAAOnE,EAAG,GACvByoC,IACAzoC,IAEJ,CAKF,CACF,CACA,IAAK,IAAIA,EAAIhN,EAAKw0C,QAAQz1C,OAAS,EAAGiO,GAAK,EAAGA,IAAK,CACjD,MAAMyH,EAAQzU,EAAKw0C,QAAQxnC,GAC3B,IAAK,MAAMrI,KAAM8P,EAAMgG,QAAS,CAC9B,IAAIjX,EAAOtI,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAC5C,KAAI6B,GAAQ4Y,GAuBL,CAELpP,EAAI,EACJ,KACF,CA3BiB,CACfxJ,EAAO4Y,EAEP,MAAMw5B,EAAY51C,EAAKw0C,QAAQz1C,OAAS,EACxC,IAAIoJ,EAAQjN,EAAG+E,YAAYE,IAAIH,EAAKw0C,QAAQoB,GAAW1lC,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,eAGzE,GAFAwG,GAASjN,EAAG+E,YAAYE,IAAIsU,EAAMvE,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,eAEhDqL,EAAI4oC,EAAW,CACjB,MAAMD,EAAW31C,EAAKw0C,QAAQoB,GAAW1lC,OAAO7I,aAAa,iBAC7D,IAAK,MAAM6I,KAAUuE,EAAMgG,QACzBza,EAAKw0C,QAAQoB,GAAWn7B,QAAQhQ,QAAQyF,GACxCA,EAAO0L,aAAa,gBAAiB+5B,EAEzC,CAEA,IAAK,MAAMzlC,KAAUlQ,EAAKw0C,QAAQoB,GAAWn7B,QAC3Cvf,EAAG+E,YAAYC,IAAIgQ,EAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,aAAa6B,GAClDtI,EAAG+E,YAAYC,IAAIgQ,EAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,cAAcwG,GAGjD6E,EAAI4oC,GACN51C,EAAKw0C,QAAQrjC,OAAOnE,EAAG,EAE3B,CAKF,CACF,CAEA,IAAK,MAAMyH,KAASzU,EAAKw0C,QAAS,CAChC,IAAIW,EAAa,EACjB,MAAM3xC,EAAOtI,EAAG+E,YAAYE,IAAIsU,EAAMvE,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,cACxD,IAAK,MAAMgD,KAAM8P,EAAMgG,QACrB06B,GAAcj6C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,YAEjD,IAAK,MAAMgD,KAAM8P,EAAMgG,QACrBvf,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,aAAa6B,GAC9CtI,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAAcwzC,EAEnD,CAEAn1C,EAAKyyC,KAAK6B,WAAa,EACvBt0C,EAAKyyC,KAAK8B,UAAYv0C,EAAKw0C,QAAQz1C,OAAS,CAC9C,CACF,CAKA41C,kBACE,MAAM30C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQ0oB,WAA8B,aAAjB1oB,EAAQu4C,KAC/B,IAAK,MAAO6B,EAAGphC,KAAUzU,EAAKw0C,QAAQv1C,UAAW,CAC/C,MAAM0F,EAAK8P,EAAMvE,OACX4lC,EAAanxC,EAAG0C,aAAa,iBAC7B8tC,EAAaj6C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,eAC9CszC,EAAY/5C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAE7Co0C,EADS76C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,WACrBszC,EACrBe,EAAah2C,EAAKyyC,KAAKI,MAAQkD,EAAYZ,EAEjD,IAAIc,EAAY,EAChB,IAAK,IAAIjpC,EAAI,EAAGA,GAAKhN,EAAKw0C,QAAQz1C,OAAS,EAAGiO,IAAK,CAEjD,IAAIkpC,EAAQL,EAAI,EAAI7oC,EAGpB,GADAkpC,EAAQl2C,EAAK4oB,OAASstB,EAAQl2C,EAAKw0C,QAAQz1C,OAAS,EAAIm3C,EAAQl2C,EAAKw0C,QAAQz1C,OAASm3C,EAClFA,EAAQl2C,EAAKw0C,QAAQz1C,OAAS,EAAG,MACrC,MAAMo3C,EAAen2C,EAAKw0C,QAAQqB,GAClC,IAAK,IAAIO,EAAI,EAAGA,EAAIp2C,EAAKw0C,QAAQ0B,GAAOxB,eAAe31C,OAAQq3C,IAAK,CAClE,MAAMC,EAAgBr2C,EAAKw0C,QAAQ0B,GAAOxB,eAAe0B,GAGzD,GADAH,GADc/6C,EAAG+E,YAAYE,IAAIk2C,EAAe,GAAF,OAAKr2C,EAAK2B,GAAE,cAEtDs0C,GAAaD,GAWV,CAELhpC,EAAIhN,EAAKw0C,QAAQz1C,OAAS,EAC1B,KACF,CAf6B,OAE3Bo3C,EAAa17B,QAAQjc,KAAK63C,GAE1B,MAAMV,EACJG,EACAr6C,EAAQgmB,eACR40B,EAAchvC,aAAa,iBAC3B5L,EAAQgmB,gBACyC,QAD3B,EACrB40B,EAAchvC,aAAa,6BAAqB,QAAI,IACvDgvC,EAAcz6B,aAAa,qBAAsB+5B,EACnD,CAKF,CACF,CAEAM,EAAY,EACZ,IAAK,IAAIjpC,EAAI,EAAGA,GAAKhN,EAAKw0C,QAAQz1C,OAAS,EAAGiO,IAAK,CAEjD,IAAIkpC,EAAQL,EAAI,EAAI7oC,EAGpB,GADAkpC,EAAQl2C,EAAK4oB,OAASstB,EAAQ,EAAIA,EAAQl2C,EAAKw0C,QAAQz1C,OAASm3C,EAC5DA,EAAQ,EAAG,MACf,MAAMC,EAAen2C,EAAKw0C,QAAQqB,GAClC,IAAK,IAAIO,EAAIp2C,EAAKw0C,QAAQ0B,GAAOxB,eAAe31C,OAAS,EAAGq3C,GAAK,EAAGA,IAAK,CACvE,MAAMC,EAAgBr2C,EAAKw0C,QAAQ0B,GAAOxB,eAAe0B,GAGzD,GADAH,GADc/6C,EAAG+E,YAAYE,IAAIk2C,EAAe,GAAF,OAAKr2C,EAAK2B,GAAE,cAEtDs0C,GAAaF,GAWV,CAEL/oC,EAAIhN,EAAKw0C,QAAQz1C,OAAS,EAC1B,KACF,CAf4B,OAE1Bo3C,EAAa17B,QAAQhQ,QAAQ4rC,GAE7B,MAAMV,EACJU,EAAchvC,aAAa,iBAC3B5L,EAAQgmB,eACRq0B,EACAr6C,EAAQgmB,gBACyC,QAD3B,EACrB40B,EAAchvC,aAAa,6BAAqB,QAAI,IACvDgvC,EAAcz6B,aAAa,qBAAsB+5B,EACnD,CAKF,CACF,CACF,CAEJ,CAKAjC,kBACE,MAAM1zC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKuE,EAAKya,QAAQ1b,OAChB,OAAO,EAGT,MAAMu3C,EAAOt2C,EAAKoB,UAAUtC,iBAAiBrD,EAAQywC,YAChDoK,EAAKv3C,QACR6N,QAAQC,MAAM,4CAA6C7M,EAAKoB,WAGlEpB,EAAKs2C,KAAOt2C,EAAKs2C,KAAOt2C,EAAKs2C,KAAO,GACpC,MAAMhxC,EAAW,GAAH,OAAM7J,EAAQkP,SAAQ,YAAIlP,EAAQk4C,iBAAiBj3C,MAAM,KAAKiN,KAAK,MAC3E4sC,EAAkB,GAAH,OAAM96C,EAAQkP,SAAQ,iBAASlP,EAAQk4C,iBAAiBj3C,MAAM,KAAKiN,KAAK,KAAI,KACjG,IAAK,MAAOksC,EAAGW,KAAQF,EAAKr3C,UAAW,CAErC,MAAM6oC,EAAS0O,EAAIrwC,cAAcb,GAC5BwiC,GACHl7B,QAAQC,MAAM,oBAAD,OAAqBvH,EAAQ,qBAAqBkxC,GAEjE,MAAMp1C,EAAY0mC,EAAOz5B,WAEzBrO,EAAKs2C,KAAKT,GAAK,GACf,IAAK,MAAO7oC,EAAGyH,KAAUzU,EAAKw0C,QAAQv1C,UAAW,CAC/C,MAAMqP,EAAO1R,SAAS2I,cAAc,OAC9BkxC,EAAQ3O,EAAO8D,WAAU,GAC/B6K,EAAM3vC,UAAUzG,UAAU5E,EAAQk4C,iBAAiBj3C,MAAM,MACzD4R,EAAK9H,OAAOiwC,GACZ,IAAIvf,EAAO5oB,EAAK9I,UAChB,MAAMkxC,EAAU,CAAC,YACjB,IAAI7H,EAAQ,IAAIC,OAAO,aAAc,MACrC,IAA4B,IAAxB5X,EAAKiK,OAAO0N,GAAe,CAC7B,IAAIr2B,EAAU,GACd,IAAK,MAAM7T,KAAM8P,EAAMgG,QAAS,CAC9B,MAAM/U,EAAUf,EAAGwB,cAAc,4BAC7BT,IACF8S,GAAW9S,EAAQF,WAErB,MAAM8b,EAAO3c,EAAGwB,cAAc,oCAC1Bmb,GACFo1B,EAAQl4C,KAAK8iB,EAAKja,aAAa,kCAEnC,CACA6vB,EAAOA,EAAK1e,QAAQq2B,EAAOr2B,EAC7B,CACAq2B,EAAQ,IAAIC,OAAO,SAAU,OACD,IAAxB5X,EAAKiK,OAAO0N,KACd3X,EAAOA,EAAK1e,QAAQq2B,GAAQ7hC,EAAI,GAAG2N,aAErCk0B,EAAQ,IAAIC,OAAO,SAAU,OACD,IAAxB5X,EAAKiK,OAAO0N,KACd3X,EAAOA,EAAK1e,QAAQq2B,EAAO7uC,EAAKw0C,QAAQz1C,OAAO4b,aAEjDrM,EAAK9I,UAAYtK,EAAGiK,SAAS+xB,GACzBwf,EAAQ33C,QACVuP,EAAKpD,SAAS,GAAGpE,UAAUjE,OAAO6zC,GAEpCpoC,EAAKpD,SAAS,GAAG0Q,aAAa,gBAAiBnH,EAAMvE,OAAO7I,aAAa,kBACzEjG,EAAUu1C,aAAaroC,EAAKpD,SAAS,GAAI48B,GACzCx5B,EAAKjO,SACLL,EAAKs2C,KAAKT,GAAG7oC,GAAK5L,EAAUtC,iBAAiBy3C,GAAiBvpC,GAE9DhN,EAAKw0C,QAAQxnC,GAAG9C,QAAUlK,EAAKs2C,KAAK,GAAGtpC,EACzC,CACF,CACF,CAKAmN,cACEsmB,MAAMtmB,cACN,MAAMna,EAAOJ,KAEPg3C,EAAc17C,EAAG+E,YAAYoC,IAAIrC,EAAKoB,UAAW,QAAF,OAAUpB,EAAK2B,IAAM3B,EAAK62C,kBAAkB31C,KAAKlB,IACtGA,EAAKoB,UAAUnE,iBAAiB,iBAAkB25C,GAElD,MAAME,EAAsB57C,EAAG+E,YAAYoC,IACzCrC,EAAKwyC,QAAO,uBACIxyC,EAAK2B,IACrB3B,EAAK+2C,0BAA0B71C,KAAKlB,IAEtCA,EAAKwyC,QAAQv1C,iBAAiB,yBAA0B65C,GAExD,MAAME,EAAmB97C,EAAG+E,YAAYoC,IACtCjH,OAAM,oCACuB4E,EAAK2B,IAClC3B,EAAKi3C,uBAAuB/1C,KAAKlB,IAE7B+c,EAAS,CAAC,YAAa,cAC7B,IAAK,MAAM/K,KAAS+K,EAClB9f,iBAAiB+U,EAAOglC,EAAkB,CAAElgC,SAAS,IAGvD,MAAMogC,EAAsBh8C,EAAG+E,YAAYoC,IAAIjH,OAAQ,kBAAF,OAAoB4E,EAAK2B,IAAM3B,EAAKm3C,oBACzFn3C,EAAKwyC,QAAQv1C,iBAAiB,YAAai6C,GAE3C,MAAME,EAAgBl8C,EAAG+E,YAAYoC,IAAIjH,OAAQ,iBAAF,OAAmB4E,EAAK2B,IAAMzG,EAAG0G,aAAaV,KAAK,KAAM,CAAElB,UAC1G/C,iBAAiB,YAAam6C,EAChC,CAOA/8B,aAAkC,IAAvB,KAAEP,GAAO,GAAU,UAAH,6CAAG,CAAC,EAC7B,MAAM9Z,EAAOJ,KAEb1E,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,YACdrF,KAAM,KAEJ0D,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,eAAgB,IAIpFkoB,MAAMpmB,WAAW,CAAEP,QACrB,CAUA+8B,oBACej3C,KAER4yC,QAAQ1rC,UAAUzG,OAAO,UAChC,CAMA02C,4BACE,MAAM/2C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEhBA,EAAQ47C,cAAiC,aAAjB57C,EAAQu4C,OACnCh0C,EAAKS,SAAWT,EAAKyyC,KAAK6E,SAAWt3C,EAAKwyC,QAAQ1rC,UAAUzG,OAAO,MAAQL,EAAKwyC,QAAQ1rC,UAAUjE,IAAI,MAEtG7C,EAAKyyC,KAAKU,UAAYnzC,EAAKyyC,KAAKW,OAChCpzC,EAAKwyC,QAAQruC,MAAMnB,UAAY,cAAH,OAAiBhD,EAAKyyC,KAAKW,OAAM,OAEjE,CAMA+D,mBAAmBr1C,GACjBA,EAAEyT,gBACJ,CAMA0hC,uBAAuBn1C,GACrB,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAKuE,EAAKwyC,QAAQrzC,SAAS2C,EAAEoO,WAIxBpO,EAAEuoC,QAAuB,IAAbvoC,EAAEuoC,QAAc,CAE/B,GAAI5uC,EAAQ4kB,WAAY,CACtB,MAAMA,EAAargB,EAAKwa,kBAAkB1b,iBAAiBrD,EAAQ4kB,YAC9DnlB,EAAGiE,SAAS,CAAEuF,IAAK2b,EAAY1b,GAAI7C,EAAEoO,UACxClQ,EAAKu3C,gBAAgBz1C,EAEzB,MACE9B,EAAKu3C,gBAAgBz1C,GAGvB,MAAM01C,EAAiBt8C,EAAG+E,YAAYoC,IACpCjH,OAAM,gCACmB4E,EAAK2B,IAC9B3B,EAAKy3C,qBAAqBv2C,KAAKlB,IAE3B+c,EAAS,CAAC,UAAW,YAC3B,IAAK,MAAM/K,KAAS+K,EAClB9f,iBAAiB+U,EAAOwlC,EAE5B,CACF,CAMAC,qBAAqB31C,GACnB,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQ4kB,WAAY,CACtB,MAAMA,EAAargB,EAAKwa,kBAAkB1b,iBAAiBrD,EAAQ4kB,YAC9DnlB,EAAGiE,SAAS,CAAEuF,IAAK2b,EAAY1b,GAAI7C,EAAEoO,UACxClQ,EAAK03C,cAAc51C,EAEvB,MACE9B,EAAK03C,cAAc51C,EAEvB,CAMAy1C,gBAAgBz1C,GACd,MAAM9B,EAAOJ,KAEP+3C,EAAcz8C,EAAG+E,YAAYoC,IACjCjH,OAAM,mCACsB4E,EAAK2B,IACjC3B,EAAK43C,kBAAkB12C,KAAKlB,IAExB+c,EAAS,CAAC,YAAa,aAC7B,IAAK,MAAM/K,KAAS+K,EAClB9f,iBAAiB+U,EAAO2lC,EAAa,CAAE7gC,SAAS,IAGlD9W,EAAK63C,gBAAgB/1C,EACvB,CAMA81C,kBAAkB91C,GACHlC,KAERk4C,WAAWh2C,EAClB,CAMA41C,cAAc51C,GACZ,MAAM9B,EAAOJ,KAEP43C,EAAiBt8C,EAAG+E,YAAYE,IAAI/E,OAAQ,yBAAF,OAA2B4E,EAAK2B,KAC1Eo2C,EAAY,CAAC,UAAW,YAC9B,IAAK,MAAM/lC,KAAS+lC,EAClB/6C,oBAAoBgV,EAAOwlC,GAG7B,MAAMG,EAAcz8C,EAAG+E,YAAYE,IAAI/E,OAAQ,4BAAF,OAA8B4E,EAAK2B,KAC1Eq2C,EAAa,CAAC,YAAa,aACjC,IAAK,MAAMhmC,KAASgmC,EAClBh7C,oBAAoBgV,EAAO2lC,GAG7B33C,EAAKi4C,cAAcn2C,EACrB,CAcA2Z,SAAS,EAAuB3Z,GAAG,IAA1B,GAAE/B,EAAE,MAAEiJ,GAAQ,GAAO,EAC5B,MAAMhJ,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OAGF,IAAI2T,EACJ,IAAK,MAAMzM,KAASzU,EAAKw0C,SAEnB//B,EAAMvK,UAAYnK,GAAM0U,EAAMigC,eAAe/3C,SAASoD,MACxDmhB,EAAQzM,GAGZ,IAAKyM,EAAO,OACZ,MAAMzM,EAAQyM,EACdnhB,EAAKmhB,EAAMhX,QACX,MAAMvF,EAAKuc,EAAMhR,OAEXgoC,EAASl4C,EAAKyyC,KAAK6E,SAEzB7W,MAAMhlB,SAAS,CAAE1b,KAAIiJ,SAASlH,GAE9B,MAAMuzC,EAAQr1C,EAAKw0C,QAAQx0C,EAAKyyC,KAAK6B,YAAYpkC,OAC3Cw+B,EAAO1uC,EAAKw0C,QAAQx0C,EAAKyyC,KAAK8B,WAAWrkC,OACzCqL,EAAMrgB,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,cAC1Cya,EAAMlhB,EAAG+E,YAAYE,IAAIuuC,EAAM,GAAF,OAAK1uC,EAAK2B,GAAE,cACzCw2C,EAA4B,aAAjB18C,EAAQu4C,KAAsB53B,EAAMlhB,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,eAmBzF,GAjBA3B,EAAKyyC,KAAKY,SAAWn4C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAEjC,aAAjBlG,EAAQu4C,MAAuBv4C,EAAQupB,OAAShlB,EAAKS,UACnDkE,IAAO+pC,IAAS1uC,EAAKyyC,KAAK2F,WAAa,GAAKp4C,EAAKyyC,KAAKU,WAAa53B,IAErEvb,EAAKyyC,KAAKW,OAASh3B,EAAMb,EAAMvb,EAAKyyC,KAAKU,UAAYgF,EAErDn4C,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,iBACvD5T,IAAO0wC,IAAUr1C,EAAKyyC,KAAK2F,WAAa,GAAKp4C,EAAKyyC,KAAKU,WAAa/2B,KAC7Epc,EAAKyyC,KAAKW,OAAS73B,EAAMa,EAAMpc,EAAKyyC,KAAKU,UAAYgF,EAErDn4C,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,kBAI/C,aAAjB9c,EAAQu4C,OAAwBh0C,EAAKyyC,KAAK6E,UAAYt3C,EAAKgjB,UAAW,CACxE,MAAMq1B,EAAOr4C,EAAKyyC,KAAKY,SAAWrzC,EAAKyyC,KAAKU,UAC5C,GAAInvC,KAAKC,IAAIo0C,GAAQF,EAAU,CAE7B,IAAIG,EAAYD,EAAOF,EACvBG,GAAaH,EAAWn4C,EAAKgjB,UAE7BhjB,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKY,SAAWiF,EAExCt4C,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,eAClE,CACF,CAqBA,GAnBAvY,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKY,SAE7BrzC,EAAKyyC,KAAK8F,cAAgBv0C,KAAKC,IAAIjE,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKU,WAAanvC,KAAKC,IAAIk0C,EAAW58B,GACjGvb,EAAKyyC,KAAK+F,OAAS,EAAIx4C,EAAKyyC,KAAK8F,cAEjCv4C,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,gBAEhEvY,EAAKyyC,KAAK6E,SAAWY,EACrBh9C,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,UACdrF,KAAM,KACJ0D,EAAKyyC,KAAK6E,UAAW,CAAK,IAI9Bt3C,EAAKy4C,WAAW,CAAEz5C,MAAOgB,EAAKhB,QAE1BgB,EAAKgzC,aAAgBhzC,EAAKkzC,aAAelzC,EAAKS,QAAU,CAC1D,IAAIi4C,EAAc,EAClB,IAAK,MAAM/zC,KAAM8P,EAAMgG,QAAS,CAC9B,MACMpN,GADU1I,EAAGuG,SAASnM,OAAS4F,EAAGuG,SAAS,GAAKvG,GAC/BiD,aACvB8wC,EAAcrrC,EAASqrC,EAAcrrC,EAASqrC,CAChD,CACIA,EAAc,IAChBA,GAAe,KACX14C,EAAKgzC,YAAY7uC,MAAMkJ,SAAWqrC,IACpC14C,EAAKgzC,YAAY7uC,MAAMkJ,OAASqrC,EAEhC/zC,EAAGsE,cAAc,IAAIC,YAAY,cAAD,OAAelJ,EAAKuY,iBAElDvY,EAAKkzC,aAAelzC,EAAKS,UAC3BT,EAAKkzC,YAAY/uC,MAAMkJ,OAASqrC,GAGtC,CACF,CAKA31B,gBACE,MAAM/iB,EAAOJ,KAEb,GAAmB,OAAfI,EAAKhB,OAAkBgB,EAAKhB,QAAUgB,EAAKob,UAE7Cpb,EAAKgjB,UAAY,OACZ,GAAsB,OAAlBhjB,EAAKijB,SAEdjjB,EAAKgjB,UAAYhjB,EAAKijB,UAAY,EAAI,MACjC,CAEL,MAAMzf,EAAOtI,EAAG+E,YAAYE,IAAIH,EAAKw0C,QAAQx0C,EAAKhB,OAAOkR,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,cACrEg3C,EAAUz9C,EAAG+E,YAAYE,IAAIH,EAAKw0C,QAAQx0C,EAAKob,WAAWlL,OAAQ,GAAF,OAAKlQ,EAAK2B,GAAE,cAClF3B,EAAKgjB,UAAYxf,EAAOm1C,GAAW,EAAI,CACzC,CACA34C,EAAKijB,SAAWjjB,EAAKgjB,UAAY,CACnC,CAOAy1B,aAA2B,IAAhB,MAAEz5C,GAAU,UAAH,6CAAG,CAAC,EACtB,MAAMgB,EAAOJ,KAEb,GAAII,EAAK4oB,MAAO,CACd,MAAMjkB,EAAK3E,EAAKw0C,QAAQx1C,GAAOkR,OACzB0oC,EAAW19C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cAC5Ck3C,EAAgB39C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,eAEvD,IAAIqhB,EAAYhjB,EAAKgjB,UAChBA,IAEHA,EAAYhjB,EAAKyyC,KAAKW,QAAUpzC,EAAKyyC,KAAKI,OAAS,EAAI,GAErD7yC,EAAKyyC,KAAKE,WAAa3vB,GAAahjB,EAAKyyC,KAAKG,aAAe5zC,IAC/DgB,EAAKyyC,KAAKE,SAAW3vB,EACrBhjB,EAAKyyC,KAAKG,WAAa5zC,EACvBgB,EAAK84C,WAAW,CAAE95C,QAAOgkB,YAAW41B,WAAUC,gBAAeE,UAAWF,IAE5E,CACF,CAWAC,aAA0E,IAA/D,MAAE95C,EAAK,UAAEgkB,EAAS,SAAE41B,EAAQ,cAAEC,EAAa,UAAEE,GAAc,UAAH,6CAAG,CAAC,EACrE,MAAM/4C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEfu9C,EAAMh5C,EAAKw0C,QAAQz1C,OAuBzB,GAtBIikB,EAAY,GACdhkB,EAAQgB,EAAK0oB,aAAa,CAAE1pB,UAE5BgB,EAAKyyC,KAAK6B,WAAat1C,EACvBgB,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,WAAa0E,EAAMh5C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,WAAa0E,EAClGh5C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,YAAc,EAAIt0C,EAAKyyC,KAAK6B,WAAa0E,EAAMh5C,EAAKyyC,KAAK6B,WAE1Ft0C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK6B,WAAa,EAC7Ct0C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,UAAYyE,EAAMh5C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,UAAYyE,EAC9Fh5C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,WAAa,EAAIv0C,EAAKyyC,KAAK8B,UAAYyE,EAAMh5C,EAAKyyC,KAAK8B,WAC9EvxB,EAAY,IACrBhkB,EAAQgB,EAAKsoB,aAAa,CAAEtpB,UAE5BgB,EAAKyyC,KAAK8B,UAAYv1C,EACtBgB,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,UAAYyE,EAAMh5C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,UAAYyE,EAC9Fh5C,EAAKyyC,KAAK8B,UAAYv0C,EAAKyyC,KAAK8B,WAAa,EAAIv0C,EAAKyyC,KAAK8B,UAAYyE,EAAMh5C,EAAKyyC,KAAK8B,UAEvFv0C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK8B,UAAY,EAC7Cv0C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,WAAa0E,EAAMh5C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,WAAa0E,EAClGh5C,EAAKyyC,KAAK6B,WAAat0C,EAAKyyC,KAAK6B,YAAc,EAAIt0C,EAAKyyC,KAAK6B,WAAa0E,EAAMh5C,EAAKyyC,KAAK6B,YAG9E,OAAVt1C,EAAgB,OAEpB,IAAIoE,EACAI,EAAOo1C,EACX,MAAMnkC,EAAQzU,EAAKw0C,QAAQx1C,GAAO01C,eAC5B/vC,EAAK8P,EAAM,GACXwkC,EAAc/9C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,kBAC/CwG,EAAQjN,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,eAI3CqhB,EAAY,EACQ,WAAlBvnB,EAAQ25C,MAEV5xC,GAAQq1C,EAAgB,EAAI1wC,EAAQ,EACT,SAAlB1M,EAAQ25C,MAEjB5xC,GAAQ2E,EACmB,UAAlB1M,EAAQ25C,QAEjB5xC,GAAQq1C,GAED71B,EAAY,IACC,WAAlBvnB,EAAQ25C,MAEV5xC,GAAQq1C,EAAgB,EAAI1wC,EAAQ,EACT,SAAlB1M,EAAQ25C,MAEjB5xC,GAAQq1C,EACmB,UAAlBp9C,EAAQ25C,QAEjB5xC,GAAQ2E,IAGZ,IAAK,MAAMxD,KAAM8P,EACfvZ,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,aAAa6B,GAI5Cwf,EAAY,EAEd5f,EAAYw1C,EAAWK,EAAc9wC,EAC5B6a,EAAY,IAErB5f,EAAYw1C,EAAWK,EAAcJ,GAEjB,WAAlBp9C,EAAQ25C,MAGVhyC,GAAapD,EAAKyyC,KAAKI,MAAQ,EAAIgG,EAAgB,EACxB,SAAlBp9C,EAAQ25C,MAEjBhyC,GAAa,EACc,UAAlB3H,EAAQ25C,QAGjBhyC,GAAapD,EAAKyyC,KAAKI,MAAQgG,GAEjC,IAAK,MAAMl0C,KAAM8P,EAAO,CACtB,MAAMykC,EAAgBh+C,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,kBACvDzG,EAAG+E,YAAYC,IAAIyE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,UAAUu3C,EAAgB91C,GAC3DuB,EAAGR,MAAMnB,UAAY,cAAH,QAAkBI,EAAS,MAC/C,CAGI4f,EAAY,EACQ,WAAlBvnB,EAAQ25C,MACV2D,GAAa5wC,EAAQ0wC,EAAgB,EACV,SAAlBp9C,EAAQ25C,MACjB2D,GAAa5wC,EAAQnI,EAAKyyC,KAAKI,MAAQgG,EACZ,UAAlBp9C,EAAQ25C,QACjB2D,GAAa5wC,GAEN6a,EAAY,IACC,WAAlBvnB,EAAQ25C,MACV2D,GAAa5wC,EAAQ0wC,EAAgB,EACV,SAAlBp9C,EAAQ25C,MACjB2D,GAAa5wC,EACc,UAAlB1M,EAAQ25C,QACjB2D,GAAa5wC,EAAQnI,EAAKyyC,KAAKI,MAAQgG,IAIvCE,GAAa/4C,EAAKyyC,KAAKI,OACzB7yC,EAAK84C,WAAW,CAAE95C,QAAOgkB,YAAW41B,SAAUp1C,EAAMq1C,cAAe1wC,EAAO4wC,aAE9E,CAUAlB,gBAAgB/1C,GACd,MAAM9B,EAAOJ,KAETI,EAAKuN,gBAIS/M,IAAdsB,EAAEmuC,SACJjwC,EAAKyyC,KAAK0G,OAASr3C,EAAEmuC,QACrBjwC,EAAKyyC,KAAK2G,YAAct3C,EAAEouC,SACjBpuC,EAAEgvC,SAAWhvC,EAAEgvC,QAAQ/xC,SAChCiB,EAAKyyC,KAAK0G,OAASr3C,EAAEgvC,QAAQ,GAAGb,QAChCjwC,EAAKyyC,KAAK2G,YAAct3C,EAAEgvC,QAAQ,GAAGZ,SAGvClwC,EAAK6d,iBAEL7d,EAAK0kB,YAAa,EAClB1kB,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKyyC,KAAK4G,OAAQ,EAClBr5C,EAAKyyC,KAAK6G,UAAW,EACrBt5C,EAAKyyC,KAAK8G,OAASv5C,EAAKhB,MACxBgB,EAAKyyC,KAAK+G,KAAOx5C,EAAKyyC,KAAK0G,OAC3Bn5C,EAAKyyC,KAAKgH,UAAY,KAEtBz5C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,aAAD,OAAclJ,EAAKuY,gBAC/D,CAMA0/B,cAAcn2C,GACZ,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAIuE,EAAKuN,SAAT,MAIkB/M,IAAdsB,EAAEmuC,SACJjwC,EAAKyyC,KAAKiH,SAAW53C,EAAEmuC,QACvBjwC,EAAKyyC,KAAKkH,cAAgB73C,EAAEouC,SACnBpuC,EAAEgvC,SAAWhvC,EAAEgvC,QAAQ/xC,SAChCiB,EAAKyyC,KAAKiH,SAAW53C,EAAEgvC,QAAQ,GAAGb,QAClCjwC,EAAKyyC,KAAKkH,cAAgB73C,EAAEgvC,QAAQ,GAAGZ,SAGzClwC,EAAK0kB,YAAa,EAElB,IAAK,MAAM/f,KAAM3E,EAAKya,QACpB9V,EAAGmC,UAAUzG,OAAO,uBAGlBL,EAAKyyC,KAAK0G,SAAWn5C,EAAKyyC,KAAKiH,SAMnC58C,uBAAsB,KAEpB,GAAIkD,EAAKyyC,KAAK4G,MAAO,CACnB,MAAMr6C,EAAQgB,EAAKhB,MAEnB,GAAIA,IAAUgB,EAAKyyC,KAAK8G,QAAUv1C,KAAKC,IAAIjE,EAAKyyC,KAAKmH,YAAc55C,EAAKyyC,KAAKI,MAE3E7yC,EAAKyoB,QAAQ,CAAEzpB,cACV,CAEL,MAAMgkB,EAAYhf,KAAKE,KAAKlE,EAAKyyC,KAAKmH,WAEpC52B,EAAY,GACZhjB,EAAKyyC,KAAK2F,WAAa,IACtB38C,EAAQupB,MAAQhlB,EAAK4oB,OAAS5pB,IAAUgB,EAAKic,oBAAoBld,OAAS,GAE3EiB,EAAKilB,SAAS,CAAEH,OAAQ,IACf9B,EAAY,GAAKhjB,EAAKyyC,KAAK2F,WAAa,IAAM38C,EAAQupB,MAAQhlB,EAAK4oB,OAAmB,IAAV5pB,GACrFgB,EAAK6kB,SAAS,CAAEC,OAAQ,IAExB9kB,EAAK65C,iBAET,CACF,MACE75C,EAAK65C,kBAGP75C,EAAK6b,kBAEL7b,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAAgB,IAjC3EvY,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAlB7D,CAqDF,CAMAu/B,WAAWh2C,GACT,MAAM9B,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,SACP,OA0BF,QAvBkB/M,IAAdsB,EAAEmuC,SACJjwC,EAAKyyC,KAAKiH,SAAW53C,EAAEmuC,QACvBjwC,EAAKyyC,KAAKkH,cAAgB73C,EAAEouC,SACnBpuC,EAAEgvC,SAAWhvC,EAAEgvC,QAAQ/xC,SAChCiB,EAAKyyC,KAAKiH,SAAW53C,EAAEgvC,QAAQ,GAAGb,QAClCjwC,EAAKyyC,KAAKkH,cAAgB73C,EAAEgvC,QAAQ,GAAGZ,SAGzClwC,EAAKyyC,KAAKmH,UAAY55C,EAAKyyC,KAAK0G,OAASn5C,EAAKyyC,KAAKiH,SACnD15C,EAAKyyC,KAAKqH,eAAiB95C,EAAKyyC,KAAK2G,YAAcp5C,EAAKyyC,KAAKkH,cAExD35C,EAAKyyC,KAAK4G,OAAUr5C,EAAKyyC,KAAK6G,WAC7Bt1C,KAAKC,IAAIjE,EAAKyyC,KAAKqH,gBAAkBr+C,EAAQg3C,KAAKsH,UAGpD/5C,EAAKyyC,KAAK6G,UAAW,EACZt1C,KAAKC,IAAIjE,EAAKyyC,KAAKmH,WAAan+C,EAAQg3C,KAAKsH,YAGtD/5C,EAAKyyC,KAAK4G,OAAQ,IAIlBr5C,EAAKyyC,KAAK6G,SACZ,OAEF,GAAIt5C,EAAKyyC,KAAK4G,MAAO,CAEfv3C,EAAEk4C,YACJl4C,EAAEyT,iBAGJ,IAAK,MAAM5Q,KAAM3E,EAAKya,QACpB9V,EAAGmC,UAAUjE,IAAI,sBAErB,CAEA,MAAMwyC,EAAQr1C,EAAKw0C,QAAQx0C,EAAKyyC,KAAK6B,YAAYpkC,OAC3Cw+B,EAAO1uC,EAAKw0C,QAAQx0C,EAAKyyC,KAAK8B,WAAWrkC,OACzCqL,EAAMrgB,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,cAC1Cya,EAAMlhB,EAAG+E,YAAYE,IAAIuuC,EAAM,GAAF,OAAK1uC,EAAK2B,GAAE,cACzCw2C,EAA4B,aAAjB18C,EAAQu4C,KAAsB53B,EAAMlhB,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,eAEzF,IAAIoD,EAAQ/E,EAAKyyC,KAAKU,WAAanzC,EAAKyyC,KAAKiH,SAAW15C,EAAKyyC,KAAK+G,MAAQ/9C,EAAQg3C,KAAKhsB,OAIvF,GAHAzmB,EAAKyyC,KAAK2F,WAAap4C,EAAKyyC,KAAKiH,SAAW15C,EAAKyyC,KAAK+G,MAAQ,EAAI,EAClEx5C,EAAKyyC,KAAK+G,KAAOx5C,EAAKyyC,KAAKiH,SAEvBj+C,EAAQg3C,KAAKpqC,WAAarI,EAAK4oB,OAA0B,aAAjBntB,EAAQu4C,KAAqB,CACvE,MAAMhxB,EAAYhf,KAAKE,KAAKlE,EAAKyyC,KAAKmH,WACtC,GAAI70C,EAAQwW,GAAOyH,EAAY,EAAG,CAChChjB,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKiH,SAC5E,MAAMrxC,EAAWrI,EAAKyyC,KAAKiH,SAAW15C,EAAKyyC,KAAKgH,UAChD10C,EAAQsD,EAAW,EAAIkT,EAAM9f,EAAQg3C,KAAKpqC,SAAS,CAAEA,aAActD,CACrE,MAAO,GAAIA,EAAQqX,GAAO4G,EAAY,EAAG,CACvChjB,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKgH,UAAYz5C,EAAKyyC,KAAKiH,SAC5E,MAAMrxC,EAAWrI,EAAKyyC,KAAKiH,SAAW15C,EAAKyyC,KAAKgH,UAChD10C,EAAQsD,EAAW,EAAI+T,EAAM3gB,EAAQg3C,KAAKpqC,SAAS,CAAEA,UAAWA,IAActD,CAChF,CACF,CAUA,GARA/E,EAAKyyC,KAAKW,OAASruC,EAEnB/E,EAAKgjB,UAAYhf,KAAKE,KAAKlE,EAAKyyC,KAAKY,SAAWrzC,EAAKyyC,KAAKW,QAC1DpzC,EAAKijB,SAAWjjB,EAAKgjB,UAAY,EAEjChjB,EAAKyyC,KAAK+F,OAASx0C,KAAKC,IAAIjE,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKY,UAAYrvC,KAAKC,IAAIk0C,EAAW58B,GACzFvb,EAAKyyC,KAAK8F,cAAgB,EAAIv4C,EAAKyyC,KAAK+F,QAEnB,aAAjB/8C,EAAQu4C,QAAwBh0C,EAAKyyC,KAAK+F,OAAS,GAAKx4C,EAAKyyC,KAAK+F,QAAU,MAIhFx4C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,gBAEhEvY,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAExDvY,EAAKijB,SAAW,KAEK,aAAjBxnB,EAAQu4C,MAAuBh0C,EAAKyyC,KAAK4G,OAAO,CAElD,MAAMn4B,EAAQlhB,EAAKi6C,eAAe,CAAEj7C,MAAOgB,EAAKhB,QAClC,OAAVkiB,GAAkBA,IAAUlhB,EAAKhB,QACnCyhC,MAAMhlB,SAAS,CAAE1b,GAAIC,EAAKw0C,QAAQtzB,GAAOhX,QAASlB,OAAO,IACzDhJ,EAAKy4C,WAAW,CAAEz5C,MAAOkiB,IAE7B,CACF,CAKA24B,kBACE,MAAM75C,EAAOJ,KAEbI,EAAKgjB,WAA8B,EAAlBhjB,EAAKgjB,UACtBhjB,EAAKijB,SAAWjjB,EAAKgjB,UAAY,EAEjChjB,EAAKyyC,KAAK+F,OAASx4C,EAAKyyC,KAAK8F,cAC7Bv4C,EAAKyyC,KAAK8F,cAAgB,EAAIv4C,EAAKyyC,KAAK+F,OAExCx4C,EAAKyyC,KAAKW,OAASpzC,EAAKyyC,KAAKY,SAE7BrzC,EAAKyyC,KAAK6E,UAAW,EACrBt3C,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,gBAAD,OAAiBlJ,EAAKuY,gBAEhEvY,EAAKwyC,QAAQvpC,cAAc,IAAIC,YAAY,aAAD,OAAclJ,EAAKuY,gBAE7DvY,EAAKijB,SAAW,KAEhBjjB,EAAK6b,iBACP,CAQAo+B,iBAA+B,IAAhB,MAAEj7C,GAAU,UAAH,6CAAG,CAAC,EAC1B,MAAMgB,EAAOJ,KAEPojB,EAAYhjB,EAAKyyC,KAAK2F,WAC5B,GAAIp1B,EAAY,EAAG,CACjB,MAAMqyB,EAAQr1C,EAAKw0C,QAAQx0C,EAAKyyC,KAAK6B,YAAYpkC,OAC3CqL,EAAMrgB,EAAG+E,YAAYE,IAAIk1C,EAAO,GAAF,OAAKr1C,EAAK2B,GAAE,cAChD,GAAI3B,EAAKyyC,KAAKW,QAAU73B,EACtB,OAAOvb,EAAKyyC,KAAK6B,WAEnB,IAAK,IAAItnC,EAAIhO,EAAOgO,GAAK,EAAGA,IAAK,CAC/B,MAAMrI,EAAK3E,EAAKw0C,QAAQxnC,GAAGkD,OACrB1M,EAAOtI,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cACxCwG,EAAQjN,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,eAE/C,GAAI3B,EAAKyyC,KAAKW,OAAS5vC,EAAO2E,EAAQ,EACpC,OAAO6E,EAMT,GAJU,IAANA,IAEFA,EAAIhN,EAAKw0C,QAAQz1C,QAEfiO,IAAMhO,EAAQ,EAEhB,KAEJ,CACF,MAAO,GAAIgkB,EAAY,EAAG,CACxB,MAAM0rB,EAAO1uC,EAAKw0C,QAAQx0C,EAAKyyC,KAAK8B,WAAWrkC,OACzCkM,EAAMlhB,EAAG+E,YAAYE,IAAIuuC,EAAM,GAAF,OAAK1uC,EAAK2B,GAAE,cAC/C,GAAI3B,EAAKyyC,KAAKW,QAAUh3B,EACtB,OAAOpc,EAAKyyC,KAAK8B,UAEnB,IAAK,IAAIvnC,EAAIhO,EAAOgO,EAAIhN,EAAKw0C,QAAQz1C,OAAQiO,IAAK,CAChD,MAAMrI,EAAK3E,EAAKw0C,QAAQxnC,GAAGkD,OACrB1M,EAAOtI,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,cACxCwG,EAAQjN,EAAG+E,YAAYE,IAAIwE,EAAI,GAAF,OAAK3E,EAAK2B,GAAE,eAE/C,GAAI3B,EAAKyyC,KAAKW,OAAS5vC,EAAO2E,EAAQ,EACpC,OAAO6E,EAMT,GAJIA,IAAMhN,EAAKw0C,QAAQz1C,OAAS,IAE9BiO,GAAK,GAEHA,IAAMhO,EAAQ,EAEhB,KAEJ,CACF,CACA,OAAO,IACT,CASAgb,SACE,MAAMha,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIuE,EAAKuN,WAEPvN,EAAKwyC,QAAQ1rC,UAAUjE,IAAI,WAEvBpH,EAAQy+C,aAAa,CACvB,MAAMx1C,EAAM1E,EAAKoB,UAAUtC,iBAAiBrD,EAAQy+C,aACpD,IAAK,MAAMn6C,KAAM2E,EACf3E,EAAG+G,UAAUzG,OAAO,SAExB,CAGFogC,MAAMzmB,QACR,CAOAO,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,IAAKuE,EAAKuN,WAERvN,EAAKm6C,eACLn6C,EAAKo6C,qBAED3+C,EAAQy+C,aAAa,CACvB,MAAMx1C,EAAM1E,EAAKoB,UAAUtC,iBAAiBrD,EAAQy+C,aACpD,IAAK,MAAMn6C,KAAM2E,EACf3E,EAAG+G,UAAUjE,IAAI,SAErB,CAGF49B,MAAMlmB,QAAQ,CAAEuO,aAClB,CAWA4C,UAA+B,IAAvB,KAAEC,GAAO,GAAU,UAAH,6CAAG,CAAC,EAC1B,MAAM3rB,EAAOJ,KAEbI,EAAKm6C,eACLn6C,EAAKo6C,qBACLp6C,EAAKszC,qBACLtzC,EAAK0yC,eACL1yC,EAAKq6C,qBACLr6C,EAAKwzC,qBACLxzC,EAAKuzC,eAEL9S,MAAM/U,QAAQ,CAAEC,QAClB,CAKAwuB,eACE,MAAMn6C,EAAOJ,KAETI,EAAKwyC,SACPxyC,EAAKwyC,QAAQ1rC,UAAUzG,OAAO,UAElC,CAKA+5C,qBACE,MAAMp6C,EAAOJ,KAEb,IAAK,MAAM+E,KAAM3E,EAAKya,QACpB9V,EAAGmC,UAAUzG,OAAO,sBAExB,CAKAqyC,eACe9yC,KAER4yC,QAAQruC,MAAMnB,UAAY,EACjC,CAKAswC,qBACE,MAAMtzC,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAEjBA,EAAQy4C,aACVl0C,EAAKwyC,QAAQ1rC,UAAUzG,UAAU5E,EAAQy4C,WAAWx3C,MAAM,MAC1DsD,EAAKsa,iBAAkB,EAE3B,CAKA+/B,qBACE,MAAMr6C,EAAOJ,MAETI,EAAKgzC,aAAehzC,EAAKkzC,eAC3BlzC,EAAKgzC,YAAY7uC,MAAMkJ,OAAS,GAEpC,CAKAmmC,qBACE,MAAMxzC,EAAOJ,KAEb,GAAII,EAAKs2C,MAAQt2C,EAAKs2C,KAAKv3C,OAAQ,CACjC,IAAK,MAAMy3C,KAAOx2C,EAAKs2C,KACrB,IAAK,MAAMgE,KAAU9D,EACnB8D,EAAOj6C,SAGXL,EAAKs2C,KAAO,EACd,CACF,CAKA/C,eACE,MAAMvzC,EAAOJ,KAEb,IAAK,MAAM+E,KAAM3E,EAAKya,QACpB9V,EAAGR,MAAMnB,UAAY,EAEzB,2HASFuvC,GAAOj6B,cAAgB,YACvBi6B,GAAOz5B,eAAiB,CAEtBk7B,KAAM,WACNv/B,OAAO,EACP0P,WAAW,EACXixB,MAAO,SACPtlB,SAAS,EACTukB,MAAM,EACNgD,cAAc,EACdnD,WAAY,iCACZnB,YAAY,EACZE,YAAY,EACZ/G,WAAY,8BACZgO,YAAa,6EACbzH,KAAM,CACJD,QAAS,2BACTuH,UAAW,GACXtzB,OAAQ,EACRpe,SAAU,IAAkB,IAAjB,SAAEA,GAAU,EACrB,OAAOrE,KAAKuX,IAAIlT,EAAUrE,KAAKu2C,IAAI,EAAIv2C,KAAK4sC,IAAIvoC,EAAU,KAAK,GAInEsrC,iBAAkB,SAClBhpC,SAAU,2BACV8P,QAAS,0BAETc,IAAK,EACLa,IAAK,EAELzV,GAAI,QACJK,IAAK,QACLkb,aAAa,EAEb+B,OAAO,EAEPpE,eAAe,EACfrB,MAAM,EACNG,WAAY,gBACZ6H,OAAQ,CACN/L,QAAS,CACPlZ,MAAO,IACPklB,QAAS,IAGbuC,KAAM,CACJS,KAAM,WACNG,eAAe,EACfE,cAAc,EACdD,UAAU,EACVE,UAAU,EACVC,UAAU,EACVG,MAAM,EACN5c,UAAU,EACVid,UAAU,EACVb,UAAU,EACVkB,OAAO,IAQX3vB,EAAGq3C,OAASA,GAMU,oBAAXn3C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGq3C,OAAOj6B,cAAa,KACzCha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGq3C,OAAOj6B,gBACnD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGq3C,OAAO1zC,EAAKpD,GAI9B,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,IC5+CP9E,EAAG8c,MAAQA,EAKX,MAAMwiC,GAwBJriC,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,iSAX3B,GAAK,+EAYd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEfT,EAAKkK,QAAUlK,EAAKoB,UAAU+E,cAAc1K,EAAQyO,SACpDlK,EAAKy6C,OAASz6C,EAAKoB,UAAU+E,cAAc1K,EAAQg/C,QAEnDz6C,EAAK4tC,cAAgB,EAErB,MAAMwD,EAAgBl2C,EAAG+E,YAAYoC,IAAIjH,OAAQ,iBAAF,OAAmB4E,EAAK2B,IAAM3B,EAAKoqC,aAAalpC,KAAKlB,IACpG/C,iBAAiB,SAAUm0C,GAC3Bn0C,iBAAiB,SAAUm0C,GAE3BpxC,EAAKqa,aAGLnf,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAKAF,aACeza,KAEJ2N,UAFI3N,KAMRwqC,cACP,CAWAA,eACE,MAAMpqC,EAAOJ,KAEb,GAAII,EAAKuN,SACP,OAGF,MAAM4f,EAAYvwB,SAASmwC,iBAAiB5f,UACtCsgB,EAAeryC,OAAO0N,YACtB4xC,EAAe16C,EAAKkK,QAAQtC,aAClC,GAAI8yC,EAAejN,EACjBztC,EAAKy6C,OAAOt2C,MAAMkJ,OAAS,GAC3BrN,EAAKkK,QAAQ/F,MAAMV,IAAM,IACzBzD,EAAKkK,QAAQ/F,MAAM2oB,OAAS,QAE5B,GAAIK,EAAYntB,EAAK4tC,eACnB,IAAK5tC,EAAKkK,QAAQpD,UAAU3H,SAAS,qBAAsB,CACzD,MAAM8pC,EAAMwE,EAAeiN,EACrBrtC,EAASrJ,KAAKoY,IAAI,EAAGpc,EAAKkK,QAAQwkB,UAAY1uB,EAAKy6C,OAAO/rB,WAChE1uB,EAAKy6C,OAAOt2C,MAAMkJ,OAAS,GAAH,OAAMA,EAAM,MACpCrN,EAAKkK,QAAQ/F,MAAMV,IAAM,GAAH,OAAMwlC,EAAG,MAC/BjpC,EAAKkK,QAAQ/F,MAAM2oB,OAAS,GAC5B9sB,EAAKkK,QAAQpD,UAAUzG,OAAO,wBAC9BL,EAAKkK,QAAQpD,UAAUjE,IAAI,oBAC7B,OAEA,IAAK7C,EAAKkK,QAAQpD,UAAU3H,SAAS,wBAAyB,CAC5D,MAAM8pC,EAAMwE,EAAeiN,EACrBrtC,EAASrJ,KAAKoY,IAAI,EAAGpc,EAAKkK,QAAQwkB,UAAY1uB,EAAKy6C,OAAO/rB,WAChE1uB,EAAKy6C,OAAOt2C,MAAMkJ,OAAS,GAAH,OAAMA,EAAM,MACpCrN,EAAKkK,QAAQ/F,MAAMV,IAAM,GACzBzD,EAAKkK,QAAQ/F,MAAM2oB,OAAS,GAAH,OAAMmc,EAAG,MAClCjpC,EAAKkK,QAAQpD,UAAUjE,IAAI,wBAC3B7C,EAAKkK,QAAQpD,UAAUzG,OAAO,oBAChC,CAIJnF,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,UACdrF,KAAM,KAEJ0D,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,eAAgB,IAGhFvY,EAAK4tC,cAAgBzgB,CACvB,CASAnT,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEhBvN,EAAKy6C,OAAOt2C,MAAMkJ,OAAS,GAC3BrN,EAAKkK,QAAQ/F,MAAMV,IAAM,GACzBzD,EAAKkK,QAAQ/F,MAAM2oB,OAAS,GAC5B9sB,EAAKkK,QAAQpD,UAAUzG,OAAO,wBAC9BL,EAAKkK,QAAQpD,UAAUzG,OAAO,qBAEzByoB,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KAEPwxC,EAAgBl2C,EAAG+E,YAAYE,IAAI/E,OAAQ,iBAAF,OAAmB4E,EAAK2B,KACvE3E,oBAAoB,SAAUo0C,GAC9Bp0C,oBAAoB,SAAUo0C,GAE9BpxC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,2HASFiiC,GAAWliC,cAAgB,gBAC3BkiC,GAAW1hC,eAAiB,CAC1BgD,OAAO,EAEP5R,SAAS,EACTuwC,QAAQ,GAOVv/C,EAAGs/C,WAAaA,GAMM,oBAAXp/C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGs/C,WAAWliC,cAAa,KAC7Cha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGs/C,WAAWliC,gBACvD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGs/C,WAAW37C,EAAKpD,GAIlC,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,ICnSP9E,EAAG8c,MAAQA,EAKX,MAAM2iC,GAsBJxiC,YAAY1I,GAA4B,IAApB2I,EAAgB,UAAH,6CAAG,CAAC,EAAC,iQAV3B,GAAK,mDAWd,MAAMpY,EAAOJ,KACbI,EAAKoB,UAAYqO,EACjBzP,EAAKqY,eAAiBD,EACtBpY,EAAKsY,cAAgBtY,EAAKmY,YAAYG,cACtCtY,EAAKuY,aAAevY,EAAKsY,cAAcE,QAAQ,IAAK,KAEpDxY,EAAK0Y,YACL1Y,EAAK2Y,YACP,CASAD,YACE,MAAM1Y,EAAOJ,KAEbI,EAAK4Y,gBAAkB1d,EAAGmG,MAAM,CAACrB,EAAKmY,YAAYW,eAAgB5d,EAAGO,QAAQuE,EAAKsY,iBAClFtY,EAAK+Y,gBAAkB/Y,EAAKvE,QAAUP,EAAGmG,MAAM,CAACrB,EAAK4Y,gBAAiB5Y,EAAKqY,gBAC7E,CAKAM,aAAa,MACX,MAAM3Y,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErBP,EAAG2E,KAAK,CAAEC,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,UAAWpB,SAExDA,EAAK2B,GAAY,QAAV,EAAG3B,EAAK2B,UAAE,QAAIzG,EAAG2J,WAExB7E,EAAKga,SAEL9e,EAAGoF,aAAa,CAAEN,OAAMO,eAAgBP,EAAK+Y,kBAE7C/Y,EAAKS,SAAU,EAEf,MAAM2wC,EAAgBl2C,EAAG+E,YAAYoC,IACnCrC,EAAKoB,UAAS,8BACSpB,EAAK2B,IAC5B3B,EAAK46C,WAAW15C,KAAKlB,IAEvBA,EAAKoB,UAAUnE,iBAAiB,UAAWm0C,GAC3CpxC,EAAKoB,UAAUnE,iBAAiB,QAASm0C,GACzCpxC,EAAKuM,KAAOvM,EAAKoB,UAAU1C,QAAQ,QAC/BsB,EAAKuM,MACPvM,EAAKuM,KAAKtP,iBAAiB,QAASm0C,GAGtCpxC,EAAKqa,aAGLnf,EAAGwL,YAAY,CACb3G,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,QACdrF,KAAM,KAEJ0D,EAAKoB,UAAUwa,aAAa,QAAD,OAAS5b,EAAKsY,cAAa,SAAS,IAE/DtY,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,QAAD,OAASlJ,EAAKuY,gBAC1DvY,EAAKS,SAAU,EAEXhF,EAAQqgB,OAEVlP,QAAQkP,MAAM,GAAD,OAAI9b,EAAKsY,cAAa,SAAStY,EAC9C,IAIAA,EAAKvE,QAAQ8R,UACfvN,EAAKua,SAET,CAKAF,aACE,MAAMra,EAAOJ,KAETI,EAAKuN,UAITvN,EAAK46C,WAAW15C,KAAKlB,EAArBA,EACF,CASA46C,aACE,MAAM56C,EAAOJ,KAETI,EAAKuN,WAITvN,EAAKoB,UAAU+C,MAAMkJ,OAAS,MAC9BrN,EAAKoB,UAAU+C,MAAMkJ,OAAS,GAAH,OAAMrN,EAAKoB,UAAUq2B,aAAY,MAC5Dv8B,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,aACdrF,KAAM,KACJ0D,EAAKoB,UAAU+C,MAAMkJ,OAAS,MAC9BrN,EAAKoB,UAAU+C,MAAMkJ,OAAS,GAAH,OAAMrN,EAAKoB,UAAUq2B,aAAY,KAAI,IAGtE,CASAzd,SACE,MAAMha,EAAOJ,KACTI,EAAKuN,WAEPvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAEhE,CAOAgC,UAAoC,IAA5B,UAAEuO,GAAY,GAAU,UAAH,6CAAG,CAAC,EAC/B,MAAM9oB,EAAOJ,KACRI,EAAKuN,WAERvN,EAAKuN,UAAW,EAEhBvN,EAAKoB,UAAU+C,MAAMkJ,OAAS,GAC9BnS,EAAGwG,MAAM,CACP3B,GAAIC,EAAKoB,UACTO,GAAI,GAAF,OAAK3B,EAAK2B,GAAE,eAGXmnB,GACH9oB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,UAAD,OAAWlJ,EAAKuY,gBAGlE,CASAvW,SACepC,KAER+Y,YACP,CAKA+S,UACE,MAAM1rB,EAAOJ,KAEbI,EAAKoB,UAAU+C,MAAMkJ,OAAS,GAE9B,MAAM+jC,EAAgBl2C,EAAG+E,YAAYE,IAAIH,EAAKoB,UAAW,uBAAF,OAAyBpB,EAAK2B,KACrF3B,EAAKoB,UAAUpE,oBAAoB,UAAWo0C,GAC9CpxC,EAAKoB,UAAUpE,oBAAoB,QAASo0C,GACxCpxC,EAAKuM,MACPvM,EAAKuM,KAAKvP,oBAAoB,QAASo0C,GAGzCpxC,EAAKoB,UAAUinB,gBAAgB,QAAD,OAASroB,EAAKsY,cAAa,UAEzDpd,EAAGkF,QAAQ,CAAEN,KAAME,EAAKsY,cAAevY,GAAIC,EAAKoB,YAEhDpB,EAAKoB,UAAU6H,cAAc,IAAIC,YAAY,WAAD,OAAYlJ,EAAKuY,eAG/D,EASFoiC,GAAiBriC,cAAgB,sBACjCqiC,GAAiB7hC,eAAiB,CAChCgD,OAAO,GAOT5gB,EAAGy/C,iBAAmBA,GAMA,oBAAXv/C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAGy/C,iBAAiBriC,cAAa,KACnDha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAGy/C,iBAAiBriC,gBAC7D7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAGy/C,iBAAiB97C,EAAKpD,GAIxC,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,ICpQP9E,EAAG8c,MAAQA,EACX9c,EAAGqlC,aAAeA,GAKlB,MAAMsa,WAAgB3/C,EAAGgd,OAOvBC,YAAY1I,GACVgxB,MAAMhxB,EAD4B,UAAH,6CAAG,CAAC,EAErC,CAYAyT,YAA6B,IAAnB,GAAEnjB,EAAE,KAAEzC,GAAS,UAAH,6CAAG,CAAC,EACxBmjC,MAAMvd,UAAU,CAAEnjB,KAAIzC,SACtB,MAAM0C,EAAOJ,KACPnE,EAAUuE,EAAKvE,QAErB,GAAIA,EAAQilC,UACG,YAATpjC,EAAoB,OAEtByC,EAAGoE,MAAMw8B,WAAa,OACtB7jC,uBAAsB,KACpBiD,EAAGoE,MAAMw8B,WAAa,EAAE,IAG1B,MAAMz2B,EAAUlK,EAAKsc,YAAY,CAAEvc,OAAM,GACnC6gC,EAAWnlC,EAAQolC,eAA4D,QAA/C,EAAG32B,EAAQ/D,cAAc1K,EAAQolC,sBAAc,QAAc32B,EAEnG,GAAIhP,EAAG+H,QAAQ,CAAElD,GAAI6gC,KAAe1lC,EAAG+H,QAAQ,CAAElD,OAAO,CACtD,MAAMm7B,EAAQn7B,EAAGoG,cAAc,sBACzB26B,EAAuB,CAC3BxQ,UAAWvwB,EAAGsH,aAAa,qBAAuB5L,EAAQ6zB,SAC1D6B,SAAU11B,EAAQ01B,SAClB3nB,QAAQ,EACRinB,UAAW,CACT,CACE3wB,KAAM,gBACNrE,QAAS,CACPs5B,iBAAiB,IAGrB,CACEj1B,KAAM,kBACNrE,QAAS,CACPy9B,QAASz9B,EAAQslC,gBAGrB,CACEjhC,KAAM,OACNrE,QAAS,CACPy9B,QAASz9B,EAAQulC,cAezB,GAVI9F,GACF4F,EAAqBrQ,UAAUjyB,KAAK,CAClCsB,KAAM,QACNrE,QAAS,CACPyO,QAASgxB,EACThC,SAAgC,IAAvBz9B,EAAQwlC,WAAuB/F,EAAM33B,wBAAwB8J,OAAS,EAAI5R,EAAQwlC,cAK7FxlC,EAAQylC,MAAO,CACjB,MAAMA,EAAQ,CACZphC,KAAM,SACNrE,QAAS,CACPy6B,OAAQ,IAA2B,IAA1B,UAAE5F,EAAS,OAAEF,GAAQ,EAC5B,OAAkC,IAA9BE,EAAU6Q,OAAO,UAAiD,IAA/B7Q,EAAU6Q,OAAO,SAC/C,CAAC,GAAI/Q,EAAOjoB,QAEY,IAA7BmoB,EAAU6Q,OAAO,SAAiD,IAAhC7Q,EAAU6Q,OAAO,UAC9C,CAAC,GAAI/Q,EAAO/iB,QAEd,EAAE,IAIfyzB,EAAqBrQ,UAAUjyB,KAAK0iC,GACpCnhC,EAAG6b,aAAa,oBAAqB,OACvC,MACE7b,EAAGsoB,gBAAgB,oBAAqB,QAE1C,MAAM+Y,EAAgBlmC,EAAGmG,MAAM,CAACy/B,EAAsBrlC,EAAQilC,WAE9D,IAAIW,EAAiBnmC,EAAG+E,YAAYE,IAAIJ,EAAI,kBACxCshC,EACFA,EAAe/O,WAAW8O,IAE1BC,EAAiBd,GAAaK,EAAU7gC,EAAIqhC,GAC5ClmC,EAAG+E,YAAYC,IAAIH,EAAI,iBAAkBshC,IAG3CvkC,uBAAsB,KACpBukC,EAAe9N,QAAQ,GAE3B,CACF,CAEJ,EASFsnB,GAAQviC,cAAgB,aACxBuiC,GAAQ/hC,eAAiB,CAEvBnO,SAAU,4BACV8P,QAAS,2BAET0B,UAAW,CACTxR,UAAU,EACVuQ,eAAe,GAGjBK,IAAK,EACLa,IAAK,EAELzV,GAAI,mBACJK,IAAK,aACLkb,aAAa,EACb7B,WAAY,+BACZtB,WAAW,EACXG,UAAU,EACV6I,UAAW,cACXT,YAAa,eACbI,aAAc,OACdrK,cAAc,EAEd4G,MAAO,CACLtZ,UAAU,EACV8P,SAAS,EACTS,eAAe,EACfC,cAAc,GAGhB4N,mBAAmB,EACnBuG,SAAU,MACVuR,eAAe,EACf1P,SAAU,WACV4P,cAAe,GACfC,UAAW,GACXC,YAAY,EACZP,UAAU,EACVla,OAAQ,CACN/L,QAAS,CACPlZ,MAAO,IACPklB,QAAS,IAGbuC,KAAM,CACJS,KAAM,UACNG,eAAe,EACfE,cAAc,EACdD,UAAU,EACVE,UAAU,EACVC,UAAU,EACVG,MAAM,EACN5c,UAAU,EACVid,UAAU,EACVb,UAAU,EACVkB,OAAO,IAQX3vB,EAAG2/C,QAAUA,GAMS,oBAAXz/C,QACTF,EAAGoD,MAAM,CACPxC,QAAS,SAAF,OAAWZ,EAAG2/C,QAAQviC,cAAa,KAC1Cha,MAAO,IAAa,IAAZ,IAAEO,GAAK,EAGb,MAAM2tB,EAAgB3tB,EAAIwI,aAAa,QAAD,OAASnM,EAAG2/C,QAAQviC,gBACpD7c,EAAU+wB,EAAgBxU,EAAAA,MAAYwU,GAAiB,CAAC,EAI9D,IAAIxsB,EAAO,IAAI9E,EAAG2/C,QAAQh8C,EAAKpD,GAI/B,MAAO,KACLuE,EAAK0rB,UACL1rB,EAAO,IAAI,CACZ,ICxNe,oBAAX5E,SACTF,EAAG4/C,gBAAkB,yBACrB5/C,EAAG6/C,mBAAqB,sBAExB7/C,EAAGwG,MAAM,CACPpF,KAAM,MAEwB,IAA1BpB,EAAG6/C,qBACwB,IAA1B7/C,EAAG6/C,qBAA+B,IAAI7/C,EAAG6/C,mBAAmBr+C,MAAM,MAAMC,SAASkkB,SAASm6B,YAG3FpuC,QAAQkP,MACN,oFACA,iFAKF5gB,EAAGoD,MAAM,CACPxC,QAAS,+BACTwC,MAAO,IAAa,IAAZ,IAAEO,GAAK,EACb,GAAIA,EAAIH,QAAQxD,EAAG4/C,iBAAkB,OAErBj8C,EAAIwI,aAAa,YAE/BuF,QAAQquC,KAAK,qEAAsEp8C,GAGrF,MAAMq8C,EAAMr8C,EAAIwI,aAAa,OACxB6zC,GAAe,KAARA,GACVtuC,QAAQquC,KAAK,iEAAkEp8C,EACjF,IAMJ3D,EAAGoD,MAAM,CACPxC,QAAS,+CACTwC,MAAO,IAAa,IAAZ,IAAEO,GAAK,EACb,GAAIA,EAAIH,QAAQxD,EAAG4/C,iBAAkB,OAErC,MAAMK,EAASt8C,EAAIs8C,OACb1Z,EAAQ5iC,EAAIwI,aAAa,eAAiBxI,EAAIwI,aAAa,mBAC5D8zC,EAAOp8C,QAAY0iC,GAAmB,KAAVA,GAC/B70B,QAAQquC,KACN,8FACAp8C,EAEJ,IAMJ3D,EAAGoD,MAAM,CACPxC,QAAS,UACTwC,MAAO,IAAa,IAAZ,IAAEO,GAAK,EACb,GAAIA,EAAIH,QAAQxD,EAAG4/C,iBAAkB,OAErC,MAAM7M,EAAOpvC,EAAIu8C,YAAY31C,OACvByhC,EAAQroC,EAAIqoC,MACZzF,EAAQ5iC,EAAIwI,aAAa,eAAiBxI,EAAIwI,aAAa,mBAC5D4mC,EAAKlvC,QAAYmoC,GAAmB,KAAVA,GAAmBzF,GAAmB,KAAVA,GACzD70B,QAAQquC,KACN,6GACAp8C,GAIJ,MAAMqR,EAASrR,EAAIwI,aAAa,UAChC,GAAI6I,GAAmC,WAAzBA,EAAO2E,eACfhW,EAAIm8C,SAASj8C,QAAU8hB,SAASm6B,WAAan8C,EAAIm8C,SAAU,CAC7D,MAAM3L,EAAMxwC,EAAIwI,aAAa,OAE1BgoC,GACO,KAARA,IACEA,EAAIx6B,cAAc3D,QAAQ,aAAgBm+B,EAAIx6B,cAAc3D,QAAQ,gBAEtEtE,QAAQquC,KACN,uGACAp8C,EAGN,CACF,IAGN,gBC3FL,SAAUvD,EAAQ+/C,GACE,iBAAZC,QAAwDC,EAAOD,QAAUD,IAC5D,mBAAXG,QAAyBA,EAAAA,KAAaA,OAAOH,IACjD//C,EAASA,GAAU0E,MAAa9E,GAAKmgD,GAC3C,CAJA,MAIC,GAAM,WACN,OAAOngD,CACT,oBCXA,IAAIugD,EAAa,EAAQ,KACrBC,EAAc,EAAQ,MAEtBC,EAAaC,UAGjBL,EAAOD,QAAU,SAAUO,GACzB,GAAIJ,EAAWI,GAAW,OAAOA,EACjC,MAAMF,EAAWD,EAAYG,GAAY,qBAC3C,kBCTA,IAAIC,EAAgB,EAAQ,MACxBJ,EAAc,EAAQ,MAEtBC,EAAaC,UAGjBL,EAAOD,QAAU,SAAUO,GACzB,GAAIC,EAAcD,GAAW,OAAOA,EACpC,MAAMF,EAAWD,EAAYG,GAAY,wBAC3C,kBCTA,IAAIJ,EAAa,EAAQ,KAErBM,EAAUC,OACVL,EAAaC,UAEjBL,EAAOD,QAAU,SAAUO,GACzB,GAAuB,iBAAZA,GAAwBJ,EAAWI,GAAW,OAAOA,EAChE,MAAMF,EAAW,aAAeI,EAAQF,GAAY,kBACtD,kBCRA,IAAII,EAAkB,EAAQ,MAC1BC,EAAS,EAAQ,IACjB1rC,EAAiB,UAEjB2rC,EAAcF,EAAgB,eAC9BG,EAAiBp3C,MAAM8E,UAIQtJ,MAA/B47C,EAAeD,IACjB3rC,EAAe4rC,EAAgBD,EAAa,CAC1C1rC,cAAc,EACd3P,MAAOo7C,EAAO,QAKlBX,EAAOD,QAAU,SAAUz6C,GACzBu7C,EAAeD,GAAat7C,IAAO,CACrC,+BClBA,IAAIw7C,EAAS,eAIbd,EAAOD,QAAU,SAAUgB,EAAGt9C,EAAOu9C,GACnC,OAAOv9C,GAASu9C,EAAUF,EAAOC,EAAGt9C,GAAOD,OAAS,EACtD,kBCPA,IAAIy9C,EAAgB,EAAQ,MAExBb,EAAaC,UAEjBL,EAAOD,QAAU,SAAUmB,EAAIC,GAC7B,GAAIF,EAAcE,EAAWD,GAAK,OAAOA,EACzC,MAAMd,EAAW,uBACnB,kBCPA,IAAIgB,EAAW,EAAQ,KAEnBZ,EAAUC,OACVL,EAAaC,UAGjBL,EAAOD,QAAU,SAAUO,GACzB,GAAIc,EAASd,GAAW,OAAOA,EAC/B,MAAMF,EAAWI,EAAQF,GAAY,oBACvC,+BCRA,IAAI36C,EAAO,EAAQ,MACf3B,EAAO,EAAQ,MACfq9C,EAAW,EAAQ,MACnBC,EAA+B,EAAQ,MACvCC,EAAwB,EAAQ,MAChChB,EAAgB,EAAQ,MACxBiB,EAAoB,EAAQ,MAC5BC,EAAiB,EAAQ,MACzBC,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAE5BC,EAASn4C,MAIbu2C,EAAOD,QAAU,SAAc8B,GAC7B,IAAIC,EAAIT,EAASQ,GACbE,EAAiBxB,EAAcl8C,MAC/B29C,EAAkBptC,UAAUpR,OAC5By+C,EAAQD,EAAkB,EAAIptC,UAAU,QAAK3P,EAC7Ci9C,OAAoBj9C,IAAVg9C,EACVC,IAASD,EAAQt8C,EAAKs8C,EAAOD,EAAkB,EAAIptC,UAAU,QAAK3P,IACtE,IAEIzB,EAAQ6xB,EAAQ7L,EAAM24B,EAAU7mB,EAAM/1B,EAFtC68C,EAAiBT,EAAkBG,GACnCr+C,EAAQ,EAGZ,IAAI2+C,GAAoB/9C,OAASu9C,GAAUL,EAAsBa,GAW/D,IAFA5+C,EAASg+C,EAAkBM,GAC3BzsB,EAAS0sB,EAAiB,IAAI19C,KAAKb,GAAUo+C,EAAOp+C,GAC9CA,EAASC,EAAOA,IACpB8B,EAAQ28C,EAAUD,EAAMH,EAAEr+C,GAAQA,GAASq+C,EAAEr+C,GAC7Cg+C,EAAepsB,EAAQ5xB,EAAO8B,QAThC,IAFA+1B,GADA6mB,EAAWT,EAAYI,EAAGM,IACV9mB,KAChBjG,EAAS0sB,EAAiB,IAAI19C,KAAS,KAC/BmlB,EAAOxlB,EAAKs3B,EAAM6mB,IAAWp+C,KAAMN,IACzC8B,EAAQ28C,EAAUZ,EAA6Ba,EAAUF,EAAO,CAACz4B,EAAKjkB,MAAO9B,IAAQ,GAAQ+lB,EAAKjkB,MAClGk8C,EAAepsB,EAAQ5xB,EAAO8B,GAWlC,OADA8vB,EAAO7xB,OAASC,EACT4xB,CACT,kBC7CA,IAAIgtB,EAAkB,EAAQ,MAC1BC,EAAkB,EAAQ,MAC1Bd,EAAoB,EAAQ,MAG5Be,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOj+C,EAAIk+C,GAC1B,IAGIn9C,EAHAu8C,EAAIO,EAAgBI,GACpBj/C,EAASg+C,EAAkBM,GAC3Br+C,EAAQ6+C,EAAgBI,EAAWl/C,GAIvC,GAAIg/C,GAAeh+C,GAAMA,GAAI,KAAOhB,EAASC,GAG3C,IAFA8B,EAAQu8C,EAAEr+C,OAEG8B,EAAO,OAAO,OAEtB,KAAM/B,EAASC,EAAOA,IAC3B,IAAK++C,GAAe/+C,KAASq+C,IAAMA,EAAEr+C,KAAWe,EAAI,OAAOg+C,GAAe/+C,GAAS,EACnF,OAAQ++C,IAAgB,CAC5B,CACF,EAEAxC,EAAOD,QAAU,CAGf3+C,SAAUmhD,GAAa,GAGvB5sC,QAAS4sC,GAAa,iCC7BxB,IAAII,EAAQ,EAAQ,MAEpB3C,EAAOD,QAAU,SAAU6C,EAAatC,GACtC,IAAI/N,EAAS,GAAGqQ,GAChB,QAASrQ,GAAUoQ,GAAM,WAEvBpQ,EAAOvuC,KAAK,KAAMs8C,GAAY,WAAc,OAAO,CAAG,EAAG,EAC3D,GACF,+BCRA,IAAIuC,EAAc,EAAQ,MACtBn5C,EAAU,EAAQ,MAElB02C,EAAaC,UAEb7rC,EAA2BnP,OAAOmP,yBAGlCsuC,EAAoCD,IAAgB,WAEtD,QAAa59C,IAATZ,KAAoB,OAAO,EAC/B,IAEEgB,OAAO4P,eAAe,GAAI,SAAU,CAAEE,UAAU,IAAS3R,OAAS,CAGpE,CAFE,MAAO8N,GACP,OAAOA,aAAiB+uC,SAC1B,CACF,CATwD,GAWxDL,EAAOD,QAAU+C,EAAoC,SAAUhB,EAAGt+C,GAChE,GAAIkG,EAAQo4C,KAAOttC,EAAyBstC,EAAG,UAAU3sC,SACvD,MAAMirC,EAAW,gCACjB,OAAO0B,EAAEt+C,OAASA,CACtB,EAAI,SAAUs+C,EAAGt+C,GACf,OAAOs+C,EAAEt+C,OAASA,CACpB,kBC1BA,IAAI8+C,EAAkB,EAAQ,MAC1Bd,EAAoB,EAAQ,MAC5BC,EAAiB,EAAQ,MAEzBG,EAASn4C,MACToX,EAAMpY,KAAKoY,IAEfm/B,EAAOD,QAAU,SAAU+B,EAAG97C,EAAO2uB,GAKnC,IAJA,IAAInxB,EAASg+C,EAAkBM,GAC3BjH,EAAIyH,EAAgBt8C,EAAOxC,GAC3Bu/C,EAAMT,OAAwBr9C,IAAR0vB,EAAoBnxB,EAASmxB,EAAKnxB,GACxD6xB,EAASusB,EAAO/gC,EAAIkiC,EAAMlI,EAAG,IACxB7hC,EAAI,EAAG6hC,EAAIkI,EAAKlI,IAAK7hC,IAAKyoC,EAAepsB,EAAQrc,EAAG8oC,EAAEjH,IAE/D,OADAxlB,EAAO7xB,OAASwV,EACTqc,CACT,iBCfA,IAAI2tB,EAAc,EAAQ,MAE1BhD,EAAOD,QAAUiD,EAAY,GAAGh0C,uBCFhC,IAAIi0C,EAAa,EAAQ,MAErBhT,EAAQxnC,KAAKwnC,MAEbiT,EAAY,SAAUC,EAAOC,GAC/B,IAAI5/C,EAAS2/C,EAAM3/C,OACf6/C,EAASpT,EAAMzsC,EAAS,GAC5B,OAAOA,EAAS,EAAI8/C,EAAcH,EAAOC,GAAat9C,EACpDq9C,EACAD,EAAUD,EAAWE,EAAO,EAAGE,GAASD,GACxCF,EAAUD,EAAWE,EAAOE,GAASD,GACrCA,EAEJ,EAEIE,EAAgB,SAAUH,EAAOC,GAKnC,IAJA,IAEIz0C,EAAS40C,EAFT//C,EAAS2/C,EAAM3/C,OACfiO,EAAI,EAGDA,EAAIjO,GAAQ,CAGjB,IAFA+/C,EAAI9xC,EACJ9C,EAAUw0C,EAAM1xC,GACT8xC,GAAKH,EAAUD,EAAMI,EAAI,GAAI50C,GAAW,GAC7Cw0C,EAAMI,GAAKJ,IAAQI,GAEjBA,IAAM9xC,MAAK0xC,EAAMI,GAAK50C,EAC5B,CAAE,OAAOw0C,CACX,EAEIr9C,EAAQ,SAAUq9C,EAAOl7C,EAAMqpB,EAAO8xB,GAMxC,IALA,IAAII,EAAUv7C,EAAKzE,OACfigD,EAAUnyB,EAAM9tB,OAChBkgD,EAAS,EACTC,EAAS,EAEND,EAASF,GAAWG,EAASF,GAClCN,EAAMO,EAASC,GAAWD,EAASF,GAAWG,EAASF,EACnDL,EAAUn7C,EAAKy7C,GAASpyB,EAAMqyB,KAAY,EAAI17C,EAAKy7C,KAAYpyB,EAAMqyB,KACrED,EAASF,EAAUv7C,EAAKy7C,KAAYpyB,EAAMqyB,KAC9C,OAAOR,CACX,EAEAnD,EAAOD,QAAUmD,kBC3CjB,IAAIU,EAAW,EAAQ,MACnBC,EAAgB,EAAQ,MAG5B7D,EAAOD,QAAU,SAAUoC,EAAUnsC,EAAIzQ,EAAOu+C,GAC9C,IACE,OAAOA,EAAU9tC,EAAG4tC,EAASr+C,GAAO,GAAIA,EAAM,IAAMyQ,EAAGzQ,EAGzD,CAFE,MAAO+L,GACPuyC,EAAc1B,EAAU,QAAS7wC,EACnC,CACF,kBCVA,IAEIyyC,EAFkB,EAAQ,KAEfrD,CAAgB,YAC3BsD,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvB5oB,KAAM,WACJ,MAAO,CAAEv3B,OAAQkgD,IACnB,EACA,OAAU,WACRD,GAAe,CACjB,GAEFE,EAAmBH,GAAY,WAC7B,OAAO1/C,IACT,EAEAoF,MAAM0C,KAAK+3C,GAAoB,WAAc,MAAM,CAAG,GAC1B,CAA5B,MAAO5yC,GAAqB,CAE9B0uC,EAAOD,QAAU,SAAUoE,EAAMC,GAC/B,IAAKA,IAAiBJ,EAAc,OAAO,EAC3C,IAAIK,GAAoB,EACxB,IACE,IAAInwC,EAAS,CAAC,EACdA,EAAO6vC,GAAY,WACjB,MAAO,CACLzoB,KAAM,WACJ,MAAO,CAAEv3B,KAAMsgD,GAAoB,EACrC,EAEJ,EACAF,EAAKjwC,EACuB,CAA5B,MAAO5C,GAAqB,CAC9B,OAAO+yC,CACT,kBCrCA,IAAIC,EAAiB,EAAQ,IAEzBllC,EAAWklC,EAAe,CAAC,EAAEllC,UAC7BmlC,EAAcD,EAAe,GAAGt1C,OAEpCgxC,EAAOD,QAAU,SAAUmB,GACzB,OAAOqD,EAAYnlC,EAAS8hC,GAAK,GAAI,EACvC,iBCPA,IAAIsD,EAAwB,EAAQ,MAChCtE,EAAa,EAAQ,KACrBuE,EAAa,EAAQ,MAGrBC,EAFkB,EAAQ,KAEVhE,CAAgB,eAChCiE,EAAUt/C,OAGVu/C,EAAuE,aAAnDH,EAAW,WAAc,OAAO7vC,SAAW,CAAhC,IAUnCorC,EAAOD,QAAUyE,EAAwBC,EAAa,SAAUvD,GAC9D,IAAIY,EAAG+C,EAAKxvB,EACZ,YAAcpwB,IAAPi8C,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjD2D,EAXD,SAAU3D,EAAI57C,GACzB,IACE,OAAO47C,EAAG57C,EACkB,CAA5B,MAAOgM,GAAqB,CAChC,CAOoBwzC,CAAOhD,EAAI6C,EAAQzD,GAAKwD,IAA8BG,EAEpED,EAAoBH,EAAW3C,GAEH,WAA3BzsB,EAASovB,EAAW3C,KAAmB5B,EAAW4B,EAAEiD,QAAU,YAAc1vB,CACnF,kBC5BA,IAAI2vB,EAAS,EAAQ,MACjB/wC,EAAU,EAAQ,MAClBgxC,EAAiC,EAAQ,MACzCC,EAAuB,EAAQ,MAEnClF,EAAOD,QAAU,SAAUprC,EAAQE,EAAQswC,GAIzC,IAHA,IAAI/wC,EAAOH,EAAQY,GACfI,EAAiBiwC,EAAqBE,EACtC5wC,EAA2BywC,EAA+BG,EACrD3zC,EAAI,EAAGA,EAAI2C,EAAK5Q,OAAQiO,IAAK,CACpC,IAAInM,EAAM8O,EAAK3C,GACVuzC,EAAOrwC,EAAQrP,IAAU6/C,GAAcH,EAAOG,EAAY7/C,IAC7D2P,EAAeN,EAAQrP,EAAKkP,EAAyBK,EAAQvP,GAEjE,CACF,kBCfA,IAAIq9C,EAAQ,EAAQ,MAEpB3C,EAAOD,SAAW4C,GAAM,WACtB,SAAS0C,IAAkB,CAG3B,OAFAA,EAAE92C,UAAUqO,YAAc,KAEnBvX,OAAOigD,eAAe,IAAID,KAASA,EAAE92C,SAC9C,cCLAyxC,EAAOD,QAAU,SAAUx6C,EAAOxB,GAChC,MAAO,CAAEwB,MAAOA,EAAOxB,KAAMA,EAC/B,kBCJA,IAAI8+C,EAAc,EAAQ,MACtBqC,EAAuB,EAAQ,MAC/BK,EAA2B,EAAQ,MAEvCvF,EAAOD,QAAU8C,EAAc,SAAU3uC,EAAQ5O,EAAKC,GACpD,OAAO2/C,EAAqBE,EAAElxC,EAAQ5O,EAAKigD,EAAyB,EAAGhgD,GACzE,EAAI,SAAU2O,EAAQ5O,EAAKC,GAEzB,OADA2O,EAAO5O,GAAOC,EACP2O,CACT,YCTA8rC,EAAOD,QAAU,SAAUyF,EAAQjgD,GACjC,MAAO,CACLkP,aAAuB,EAAT+wC,GACdtwC,eAAyB,EAATswC,GAChBrwC,WAAqB,EAATqwC,GACZjgD,MAAOA,EAEX,+BCNA,IAAIkgD,EAAgB,EAAQ,MACxBP,EAAuB,EAAQ,MAC/BK,EAA2B,EAAQ,MAEvCvF,EAAOD,QAAU,SAAU7rC,EAAQ5O,EAAKC,GACtC,IAAImgD,EAAcD,EAAcngD,GAC5BogD,KAAexxC,EAAQgxC,EAAqBE,EAAElxC,EAAQwxC,EAAaH,EAAyB,EAAGhgD,IAC9F2O,EAAOwxC,GAAengD,CAC7B,kBCTA,IAAIogD,EAAc,EAAQ,MACtB1wC,EAAiB,EAAQ,MAE7B+qC,EAAOD,QAAU,SAAUprC,EAAQpQ,EAAMqhD,GAGvC,OAFIA,EAAWhhD,KAAK+gD,EAAYC,EAAWhhD,IAAKL,EAAM,CAAEshD,QAAQ,IAC5DD,EAAWjhD,KAAKghD,EAAYC,EAAWjhD,IAAKJ,EAAM,CAAEuhD,QAAQ,IACzD7wC,EAAemwC,EAAEzwC,EAAQpQ,EAAMqhD,EACxC,kBCPA,IAAI1F,EAAa,EAAQ,KACrBgF,EAAuB,EAAQ,MAC/BS,EAAc,EAAQ,MACtBI,EAAuB,EAAQ,MAEnC/F,EAAOD,QAAU,SAAU+B,EAAGx8C,EAAKC,EAAOrF,GACnCA,IAASA,EAAU,CAAC,GACzB,IAAI8lD,EAAS9lD,EAAQuU,WACjBlQ,OAAwBU,IAAjB/E,EAAQqE,KAAqBrE,EAAQqE,KAAOe,EAEvD,GADI46C,EAAW36C,IAAQogD,EAAYpgD,EAAOhB,EAAMrE,GAC5CA,EAAQH,OACNimD,EAAQlE,EAAEx8C,GAAOC,EAChBwgD,EAAqBzgD,EAAKC,OAC1B,CACL,IACOrF,EAAQ+lD,OACJnE,EAAEx8C,KAAM0gD,GAAS,UADElE,EAAEx8C,EAEF,CAA5B,MAAOgM,GAAqB,CAC1B00C,EAAQlE,EAAEx8C,GAAOC,EAChB2/C,EAAqBE,EAAEtD,EAAGx8C,EAAK,CAClCC,MAAOA,EACPkP,YAAY,EACZS,cAAehV,EAAQgmD,gBACvB/wC,UAAWjV,EAAQimD,aAEvB,CAAE,OAAOrE,CACX,kBC1BA,IAAIsE,EAAgB,EAAQ,MAE5BpG,EAAOD,QAAU,SAAUprC,EAAQ5J,EAAK7K,GACtC,IAAK,IAAIoF,KAAOyF,EAAKq7C,EAAczxC,EAAQrP,EAAKyF,EAAIzF,GAAMpF,GAC1D,OAAOyU,CACT,kBCLA,IAAI5U,EAAS,EAAQ,MAGjBkV,EAAiB5P,OAAO4P,eAE5B+qC,EAAOD,QAAU,SAAUz6C,EAAKC,GAC9B,IACE0P,EAAelV,EAAQuF,EAAK,CAAEC,MAAOA,EAAO2P,cAAc,EAAMC,UAAU,GAG5E,CAFE,MAAO7D,GACPvR,EAAOuF,GAAOC,CAChB,CAAE,OAAOA,CACX,+BCVA,IAAI46C,EAAc,EAAQ,MAEtBC,EAAaC,UAEjBL,EAAOD,QAAU,SAAU+B,EAAGuE,GAC5B,WAAYvE,EAAEuE,GAAI,MAAMjG,EAAW,0BAA4BD,EAAYkG,GAAK,OAASlG,EAAY2B,GACvG,kBCPA,IAAIa,EAAQ,EAAQ,MAGpB3C,EAAOD,SAAW4C,GAAM,WAEtB,OAA8E,GAAvEt9C,OAAO4P,eAAe,CAAC,EAAG,EAAG,CAAErQ,IAAK,WAAc,OAAO,CAAG,IAAK,EAC1E,cCNA,IAAI0hD,EAAiC,iBAAZjlD,UAAwBA,SAAS+xC,IAGtDmT,OAAmC,IAAfD,QAA8CrhD,IAAhBqhD,EAEtDtG,EAAOD,QAAU,CACf3M,IAAKkT,EACLC,WAAYA,kBCPd,IAAIxmD,EAAS,EAAQ,MACjBqhD,EAAW,EAAQ,KAEnB//C,EAAWtB,EAAOsB,SAElBmlD,EAASpF,EAAS//C,IAAa+/C,EAAS//C,EAAS2I,eAErDg2C,EAAOD,QAAU,SAAUmB,GACzB,OAAOsF,EAASnlD,EAAS2I,cAAck3C,GAAM,CAAC,CAChD,YCTA,IAAId,EAAaC,UAGjBL,EAAOD,QAAU,SAAUmB,GACzB,GAAIA,EAHiB,iBAGM,MAAMd,EAAW,kCAC5C,OAAOc,CACT,YCJAlB,EAAOD,QAAU,CACf0G,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,mBChCb,IAEIh9C,EAFwB,EAAQ,IAEpBi9C,CAAsB,QAAQj9C,UAC1Ck9C,EAAwBl9C,GAAaA,EAAUqR,aAAerR,EAAUqR,YAAYrO,UAExFyxC,EAAOD,QAAU0I,IAA0BpjD,OAAOkJ,eAAYtJ,EAAYwjD,kBCN1E,IAEIC,EAFY,EAAQ,MAEAz/C,MAAM,mBAE9B+2C,EAAOD,UAAY2I,IAAYA,EAAQ,mBCJvC,IAAIC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,MAEtB5I,EAAOD,SAAW4I,IAAYC,GACR,iBAAV/oD,QACY,iBAAZwB,mBCJZ2+C,EAAOD,QAAyB,iBAAR8I,MAAoBA,MAA+B,iBAAhBA,KAAKC,uBCDhE,IAAIC,EAAK,EAAQ,MAEjB/I,EAAOD,QAAU,eAAe3vC,KAAK24C,mBCFrC,IAAI50B,EAAY,EAAQ,MACpBp0B,EAAS,EAAQ,MAErBigD,EAAOD,QAAU,oBAAoB3vC,KAAK+jB,SAAgClvB,IAAlBlF,EAAOipD,uBCH/D,IAAI70B,EAAY,EAAQ,MAExB6rB,EAAOD,QAAU,qCAAqC3vC,KAAK+jB,mBCF3D,IAAI80B,EAAU,EAAQ,MAClBlpD,EAAS,EAAQ,MAErBigD,EAAOD,QAAqC,WAA3BkJ,EAAQlpD,EAAOmpD,yBCHhC,IAAI/0B,EAAY,EAAQ,MAExB6rB,EAAOD,QAAU,qBAAqB3vC,KAAK+jB,mBCF3C,IAAIg1B,EAAa,EAAQ,MAEzBnJ,EAAOD,QAAUoJ,EAAW,YAAa,cAAgB,mBCFzD,IAOIlgD,EAAO6/C,EAPP/oD,EAAS,EAAQ,MACjBo0B,EAAY,EAAQ,MAEpB+0B,EAAUnpD,EAAOmpD,QACjBL,EAAO9oD,EAAO8oD,KACdO,EAAWF,GAAWA,EAAQE,UAAYP,GAAQA,EAAKC,QACvDO,EAAKD,GAAYA,EAASC,GAG1BA,IAIFP,GAHA7/C,EAAQogD,EAAGloD,MAAM,MAGD,GAAK,GAAK8H,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7D6/C,GAAW30B,MACdlrB,EAAQkrB,EAAUlrB,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQkrB,EAAUlrB,MAAM,oBACb6/C,GAAW7/C,EAAM,IAIhC+2C,EAAOD,QAAU+I,kBC1BjB,IAEIQ,EAFY,EAAQ,MAEDrgD,MAAM,wBAE7B+2C,EAAOD,UAAYuJ,IAAWA,EAAO,YCHrCtJ,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,2BCRF,IAAIhgD,EAAS,EAAQ,MACjByU,EAA2B,UAC3B+0C,EAA8B,EAAQ,MACtCnD,EAAgB,EAAQ,MACxBL,EAAuB,EAAQ,MAC/ByD,EAA4B,EAAQ,MACpCC,EAAW,EAAQ,MAiBvBzJ,EAAOD,QAAU,SAAU7/C,EAAS2U,GAClC,IAGYF,EAAQrP,EAAKokD,EAAgBC,EAAgB/D,EAHrDgE,EAAS1pD,EAAQyU,OACjBk1C,EAAS3pD,EAAQH,OACjB+pD,EAAS5pD,EAAQ6pD,KASrB,GANEp1C,EADEk1C,EACO9pD,EACA+pD,EACA/pD,EAAO6pD,IAAW7D,EAAqB6D,EAAQ,CAAC,IAE/C7pD,EAAO6pD,IAAW,CAAC,GAAGr7C,UAEtB,IAAKjJ,KAAOuP,EAAQ,CAQ9B,GAPA80C,EAAiB90C,EAAOvP,GAGtBokD,EAFExpD,EAAQ8pD,gBACVpE,EAAapxC,EAAyBG,EAAQrP,KACfsgD,EAAWrgD,MACpBoP,EAAOrP,IACtBmkD,EAASI,EAASvkD,EAAMskD,GAAUE,EAAS,IAAM,KAAOxkD,EAAKpF,EAAQ+pD,cAE5ChlD,IAAnBykD,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDF,EAA0BG,EAAgBD,EAC5C,EAEIxpD,EAAQgqD,MAASR,GAAkBA,EAAeQ,OACpDX,EAA4BI,EAAgB,QAAQ,GAEtDvD,EAAczxC,EAAQrP,EAAKqkD,EAAgBzpD,EAC7C,CACF,YCrDA8/C,EAAOD,QAAU,SAAUoE,GACzB,IACE,QAASA,GAGX,CAFE,MAAO7yC,GACP,OAAO,CACT,CACF,+BCJA,EAAQ,MACR,IAAI0xC,EAAc,EAAQ,MACtBoD,EAAgB,EAAQ,MACxB+D,EAAa,EAAQ,MACrBxH,EAAQ,EAAQ,MAChBjC,EAAkB,EAAQ,MAC1B6I,EAA8B,EAAQ,MAEtCa,EAAU1J,EAAgB,WAC1B2J,EAAkB9W,OAAOhlC,UAE7ByxC,EAAOD,QAAU,SAAUuK,EAAKnG,EAAMoG,EAAQC,GAC5C,IAAIC,EAAS/J,EAAgB4J,GAEzBI,GAAuB/H,GAAM,WAE/B,IAAIb,EAAI,CAAC,EAET,OADAA,EAAE2I,GAAU,WAAc,OAAO,CAAG,EACf,GAAd,GAAGH,GAAKxI,EACjB,IAEI6I,EAAoBD,IAAwB/H,GAAM,WAEpD,IAAIiI,GAAa,EACbC,EAAK,IAkBT,MAhBY,UAARP,KAIFO,EAAK,CAAC,GAGHjuC,YAAc,CAAC,EAClBiuC,EAAGjuC,YAAYwtC,GAAW,WAAc,OAAOS,CAAI,EACnDA,EAAGC,MAAQ,GACXD,EAAGJ,GAAU,IAAIA,IAGnBI,EAAG1G,KAAO,WAAiC,OAAnByG,GAAa,EAAa,IAAM,EAExDC,EAAGJ,GAAQ,KACHG,CACV,IAEA,IACGF,IACAC,GACDJ,EACA,CACA,IAAIQ,EAA8B/H,EAAY,IAAIyH,IAC9CO,EAAU7G,EAAKsG,EAAQ,GAAGH,IAAM,SAAUW,EAAcC,EAAQrhD,EAAKshD,EAAMC,GAC7E,IAAIC,EAAwBrI,EAAYiI,GACpCK,EAAQJ,EAAO/G,KACnB,OAAImH,IAAUnB,GAAcmB,IAAUjB,EAAgBlG,KAChDuG,IAAwBU,EAInB,CAAErnD,MAAM,EAAMwB,MAAOwlD,EAA4BG,EAAQrhD,EAAKshD,IAEhE,CAAEpnD,MAAM,EAAMwB,MAAO8lD,EAAsBxhD,EAAKqhD,EAAQC,IAE1D,CAAEpnD,MAAM,EACjB,IAEAqiD,EAAc3F,OAAOlyC,UAAW+7C,EAAKU,EAAQ,IAC7C5E,EAAciE,EAAiBI,EAAQO,EAAQ,GACjD,CAEIR,GAAMjB,EAA4Bc,EAAgBI,GAAS,QAAQ,EACzE,kBCzEA,IAAIc,EAAc,EAAQ,MAEtBC,EAAoBC,SAASl9C,UAC7BU,EAAQu8C,EAAkBv8C,MAC1BjL,EAAOwnD,EAAkBxnD,KAG7Bg8C,EAAOD,QAA4B,iBAAX2L,SAAuBA,QAAQz8C,QAAUs8C,EAAcvnD,EAAK2B,KAAKsJ,GAAS,WAChG,OAAOjL,EAAKiL,MAAMA,EAAO2F,UAC3B,mBCTA,IAAIouC,EAAc,EAAQ,MACtB2I,EAAY,EAAQ,MACpBJ,EAAc,EAAQ,MAEtB5lD,EAAOq9C,EAAYA,EAAYr9C,MAGnCq6C,EAAOD,QAAU,SAAU/pC,EAAI41C,GAE7B,OADAD,EAAU31C,QACM/Q,IAAT2mD,EAAqB51C,EAAKu1C,EAAc5lD,EAAKqQ,EAAI41C,GAAQ,WAC9D,OAAO51C,EAAG/G,MAAM28C,EAAMh3C,UACxB,CACF,kBCZA,IAAI+tC,EAAQ,EAAQ,MAEpB3C,EAAOD,SAAW4C,GAAM,WAEtB,IAAIvyC,EAAO,WAA4B,EAAEzK,OAEzC,MAAsB,mBAARyK,GAAsBA,EAAK0pB,eAAe,YAC1D,oBCPA,IAAIyxB,EAAc,EAAQ,MAEtBvnD,EAAOynD,SAASl9C,UAAUvK,KAE9Bg8C,EAAOD,QAAUwL,EAAcvnD,EAAK2B,KAAK3B,GAAQ,WAC/C,OAAOA,EAAKiL,MAAMjL,EAAM4Q,UAC1B,kBCNA,IAAIiuC,EAAc,EAAQ,MACtBmC,EAAS,EAAQ,MAEjBwG,EAAoBC,SAASl9C,UAE7Bs9C,EAAgBhJ,GAAex9C,OAAOmP,yBAEtCgyC,EAASxB,EAAOwG,EAAmB,QAEnCM,EAAStF,GAA0D,cAAhD,WAAqC,EAAEjiD,KAC1DwnD,EAAevF,KAAY3D,GAAgBA,GAAegJ,EAAcL,EAAmB,QAAQt2C,cAEvG8qC,EAAOD,QAAU,CACfyG,OAAQA,EACRsF,OAAQA,EACRC,aAAcA,iBCfhB,IAAIR,EAAc,EAAQ,MAEtBC,EAAoBC,SAASl9C,UAC7BvK,EAAOwnD,EAAkBxnD,KACzBgoD,EAAsBT,GAAeC,EAAkB7lD,KAAKA,KAAK3B,EAAMA,GAE3Eg8C,EAAOD,QAAU,SAAU/pC,GACzB,OAAOu1C,EAAcS,EAAoBh2C,GAAM,WAC7C,OAAOhS,EAAKiL,MAAM+G,EAAIpB,UACxB,CACF,kBCVA,IAAI6vC,EAAa,EAAQ,MACrBH,EAAiB,EAAQ,IAE7BtE,EAAOD,QAAU,SAAU/pC,GAIzB,GAAuB,aAAnByuC,EAAWzuC,GAAoB,OAAOsuC,EAAetuC,EAC3D,kBCRA,IAAIjW,EAAS,EAAQ,MACjBmgD,EAAa,EAAQ,KAErB+L,EAAY,SAAU3L,GACxB,OAAOJ,EAAWI,GAAYA,OAAWr7C,CAC3C,EAEA+6C,EAAOD,QAAU,SAAUmM,EAAW3Z,GACpC,OAAO39B,UAAUpR,OAAS,EAAIyoD,EAAUlsD,EAAOmsD,IAAcnsD,EAAOmsD,IAAcnsD,EAAOmsD,GAAW3Z,EACtG,kBCTA,IAAI0W,EAAU,EAAQ,KAClBkD,EAAY,EAAQ,MACpBC,EAAoB,EAAQ,MAC5BC,EAAY,EAAQ,MAGpBtI,EAFkB,EAAQ,KAEfrD,CAAgB,YAE/BV,EAAOD,QAAU,SAAUmB,GACzB,IAAKkL,EAAkBlL,GAAK,OAAOiL,EAAUjL,EAAI6C,IAC5CoI,EAAUjL,EAAI,eACdmL,EAAUpD,EAAQ/H,GACzB,kBCZA,IAAIl9C,EAAO,EAAQ,MACf2nD,EAAY,EAAQ,MACpB/H,EAAW,EAAQ,MACnBzD,EAAc,EAAQ,MACtBwB,EAAoB,EAAQ,MAE5BvB,EAAaC,UAEjBL,EAAOD,QAAU,SAAUO,EAAUgM,GACnC,IAAIlK,EAAiBxtC,UAAUpR,OAAS,EAAIm+C,EAAkBrB,GAAYgM,EAC1E,GAAIX,EAAUvJ,GAAiB,OAAOwB,EAAS5/C,EAAKo+C,EAAgB9B,IACpE,MAAMF,EAAWD,EAAYG,GAAY,mBAC3C,kBCZA,IAAIqL,EAAY,EAAQ,MACpBS,EAAoB,EAAQ,MAIhCpM,EAAOD,QAAU,SAAUwM,EAAGlG,GAC5B,IAAItlD,EAAOwrD,EAAElG,GACb,OAAO+F,EAAkBrrD,QAAQkE,EAAY0mD,EAAU5qD,EACzD,iBCRA,IAAIiiD,EAAc,EAAQ,MACtB3B,EAAW,EAAQ,MAEnBpR,EAAQxnC,KAAKwnC,MACb6Q,EAASkC,EAAY,GAAGlC,QACxB7jC,EAAU+lC,EAAY,GAAG/lC,SACzBsnC,EAAcvB,EAAY,GAAGh0C,OAC7Bw9C,EAAuB,8BACvBC,EAAgC,sBAIpCzM,EAAOD,QAAU,SAAU5kB,EAAStxB,EAAKkqB,EAAU24B,EAAUC,EAAeC,GAC1E,IAAIC,EAAU94B,EAAWoH,EAAQ33B,OAC7Bk0B,EAAIg1B,EAASlpD,OACb8Q,EAAUm4C,EAKd,YAJsBxnD,IAAlB0nD,IACFA,EAAgBtL,EAASsL,GACzBr4C,EAAUk4C,GAELvvC,EAAQ2vC,EAAat4C,GAAS,SAAUrL,EAAO6jD,GACpD,IAAIxxC,EACJ,OAAQwlC,EAAOgM,EAAI,IACjB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO3xB,EACjB,IAAK,IAAK,OAAOopB,EAAY16C,EAAK,EAAGkqB,GACrC,IAAK,IAAK,OAAOwwB,EAAY16C,EAAKgjD,GAClC,IAAK,IACHvxC,EAAUqxC,EAAcpI,EAAYuI,EAAI,GAAI,IAC5C,MACF,QACE,IAAI9zC,GAAK8zC,EACT,GAAU,IAAN9zC,EAAS,OAAO/P,EACpB,GAAI+P,EAAI0e,EAAG,CACT,IAAI0tB,EAAInV,EAAMj3B,EAAI,IAClB,OAAU,IAANosC,EAAgBn8C,EAChBm8C,GAAK1tB,OAA8BzyB,IAApBynD,EAAStH,EAAI,GAAmBtE,EAAOgM,EAAI,GAAKJ,EAAStH,EAAI,GAAKtE,EAAOgM,EAAI,GACzF7jD,CACT,CACAqS,EAAUoxC,EAAS1zC,EAAI,GAE3B,YAAmB/T,IAAZqW,EAAwB,GAAKA,CACtC,GACF,kBC3CA,IAAIpV,EAAQ,SAAUg7C,GACpB,OAAOA,GAAMA,EAAGz4C,MAAQA,MAAQy4C,CAClC,EAGAlB,EAAOD,QAEL75C,EAA2B,iBAAd6mD,YAA0BA,aACvC7mD,EAAuB,iBAAVrG,QAAsBA,SAEnCqG,EAAqB,iBAARzB,MAAoBA,OACjCyB,EAAuB,iBAAV,EAAA8mD,GAAsB,EAAAA,IAEnC,WAAe,OAAO3oD,IAAO,CAA7B,IAAoConD,SAAS,cAATA,mBCbtC,IAAIzI,EAAc,EAAQ,MACtB3B,EAAW,EAAQ,MAEnBvnB,EAAiBkpB,EAAY,CAAC,EAAElpB,gBAKpCkmB,EAAOD,QAAU16C,OAAO2/C,QAAU,SAAgB9D,EAAI57C,GACpD,OAAOw0B,EAAeunB,EAASH,GAAK57C,EACtC,YCVA06C,EAAOD,QAAU,CAAC,iBCAlB,IAAIhgD,EAAS,EAAQ,MAErBigD,EAAOD,QAAU,SAAUvvC,EAAGC,GAC5B,IAAIY,EAAUtR,EAAOsR,QACjBA,GAAWA,EAAQC,QACD,GAApBsD,UAAUpR,OAAc6N,EAAQC,MAAMd,GAAKa,EAAQC,MAAMd,EAAGC,GAEhE,iBCPA,IAAI04C,EAAa,EAAQ,MAEzBnJ,EAAOD,QAAUoJ,EAAW,WAAY,mCCFxC,IAAItG,EAAc,EAAQ,MACtBF,EAAQ,EAAQ,MAChB34C,EAAgB,EAAQ,KAG5Bg2C,EAAOD,SAAW8C,IAAgBF,GAAM,WAEtC,OAEQ,GAFDt9C,OAAO4P,eAAejL,EAAc,OAAQ,IAAK,CACtDpF,IAAK,WAAc,OAAO,CAAG,IAC5B4L,CACL,oBCVA,IAAIwyC,EAAc,EAAQ,MACtBL,EAAQ,EAAQ,MAChBsG,EAAU,EAAQ,MAElBtE,EAAUt/C,OACVlE,EAAQ6hD,EAAY,GAAG7hD,OAG3B6+C,EAAOD,QAAU4C,GAAM,WAGrB,OAAQgC,EAAQ,KAAKsI,qBAAqB,EAC5C,IAAK,SAAU/L,GACb,MAAsB,UAAf+H,EAAQ/H,GAAkB//C,EAAM+/C,EAAI,IAAMyD,EAAQzD,EAC3D,EAAIyD,kBCdJ,IAAIzE,EAAa,EAAQ,KACrBkB,EAAW,EAAQ,KACnB8L,EAAiB,EAAQ,MAG7BlN,EAAOD,QAAU,SAAU0C,EAAO0K,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEJ,GAEAhN,EAAWmN,EAAYF,EAAMvwC,cAC7BywC,IAAcD,GACdhM,EAASkM,EAAqBD,EAAU9+C,YACxC++C,IAAuBF,EAAQ7+C,WAC/B2+C,EAAezK,EAAO6K,GACjB7K,CACT,kBCjBA,IAAIO,EAAc,EAAQ,MACtB9C,EAAa,EAAQ,KACrBqN,EAAQ,EAAQ,MAEhBC,EAAmBxK,EAAYyI,SAASrsC,UAGvC8gC,EAAWqN,EAAME,iBACpBF,EAAME,cAAgB,SAAUvM,GAC9B,OAAOsM,EAAiBtM,EAC1B,GAGFlB,EAAOD,QAAUwN,EAAME,8BCbvB,IAYI9oD,EAAKC,EAAKgC,EAZV8mD,EAAkB,EAAQ,MAC1B3tD,EAAS,EAAQ,MACjBqhD,EAAW,EAAQ,KACnBmI,EAA8B,EAAQ,MACtCvE,EAAS,EAAQ,MACjB2I,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,MAErBC,EAA6B,6BAC7BzN,EAAYtgD,EAAOsgD,UACnB0N,EAAUhuD,EAAOguD,QAgBrB,GAAIL,GAAmBC,EAAO3sD,MAAO,CACnC,IAAIusD,EAAQI,EAAO3sD,QAAU2sD,EAAO3sD,MAAQ,IAAI+sD,GAEhDR,EAAM3oD,IAAM2oD,EAAM3oD,IAClB2oD,EAAM3mD,IAAM2mD,EAAM3mD,IAClB2mD,EAAM5oD,IAAM4oD,EAAM5oD,IAElBA,EAAM,SAAUu8C,EAAI8M,GAClB,GAAIT,EAAM3mD,IAAIs6C,GAAK,MAAMb,EAAUyN,GAGnC,OAFAE,EAASC,OAAS/M,EAClBqM,EAAM5oD,IAAIu8C,EAAI8M,GACPA,CACT,EACAppD,EAAM,SAAUs8C,GACd,OAAOqM,EAAM3oD,IAAIs8C,IAAO,CAAC,CAC3B,EACAt6C,EAAM,SAAUs6C,GACd,OAAOqM,EAAM3mD,IAAIs6C,EACnB,CACF,KAAO,CACL,IAAIgN,EAAQN,EAAU,SACtBC,EAAWK,IAAS,EACpBvpD,EAAM,SAAUu8C,EAAI8M,GAClB,GAAIhJ,EAAO9D,EAAIgN,GAAQ,MAAM7N,EAAUyN,GAGvC,OAFAE,EAASC,OAAS/M,EAClBqI,EAA4BrI,EAAIgN,EAAOF,GAChCA,CACT,EACAppD,EAAM,SAAUs8C,GACd,OAAO8D,EAAO9D,EAAIgN,GAAShN,EAAGgN,GAAS,CAAC,CAC1C,EACAtnD,EAAM,SAAUs6C,GACd,OAAO8D,EAAO9D,EAAIgN,EACpB,CACF,CAEAlO,EAAOD,QAAU,CACfp7C,IAAKA,EACLC,IAAKA,EACLgC,IAAKA,EACLunD,QArDY,SAAUjN,GACtB,OAAOt6C,EAAIs6C,GAAMt8C,EAAIs8C,GAAMv8C,EAAIu8C,EAAI,CAAC,EACtC,EAoDEkN,UAlDc,SAAUC,GACxB,OAAO,SAAUnN,GACf,IAAIlgD,EACJ,IAAKogD,EAASF,KAAQlgD,EAAQ4D,EAAIs8C,IAAKn/C,OAASssD,EAC9C,MAAMhO,EAAU,0BAA4BgO,EAAO,aACnD,OAAOrtD,CACX,CACF,mBCzBA,IAAI0/C,EAAkB,EAAQ,MAC1B2L,EAAY,EAAQ,MAEpBtI,EAAWrD,EAAgB,YAC3BG,EAAiBp3C,MAAM8E,UAG3ByxC,EAAOD,QAAU,SAAUmB,GACzB,YAAcj8C,IAAPi8C,IAAqBmL,EAAU5iD,QAAUy3C,GAAML,EAAekD,KAAc7C,EACrF,kBCTA,IAAI+H,EAAU,EAAQ,MAKtBjJ,EAAOD,QAAUt2C,MAAMC,SAAW,SAAiB42C,GACjD,MAA4B,SAArB2I,EAAQ3I,EACjB,iBCPA,IAAIgO,EAAe,EAAQ,MAEvBhI,EAAcgI,EAAalb,IAI/B4M,EAAOD,QAAUuO,EAAa/H,WAAa,SAAUjG,GACnD,MAA0B,mBAAZA,GAA0BA,IAAagG,CACvD,EAAI,SAAUhG,GACZ,MAA0B,mBAAZA,CAChB,kBCVA,IAAI0C,EAAc,EAAQ,MACtBL,EAAQ,EAAQ,MAChBzC,EAAa,EAAQ,KACrB+I,EAAU,EAAQ,KAClBE,EAAa,EAAQ,MACrBsE,EAAgB,EAAQ,MAExBc,EAAO,WAA0B,EACjCnlB,EAAQ,GACRolB,EAAYrF,EAAW,UAAW,aAClCsF,EAAoB,2BACpBtK,EAAOnB,EAAYyL,EAAkBtK,MACrCuK,GAAuBD,EAAkBtK,KAAKoK,GAE9CI,EAAsB,SAAuBrO,GAC/C,IAAKJ,EAAWI,GAAW,OAAO,EAClC,IAEE,OADAkO,EAAUD,EAAMnlB,EAAOkX,IAChB,CAGT,CAFE,MAAOhvC,GACP,OAAO,CACT,CACF,EAEIs9C,EAAsB,SAAuBtO,GAC/C,IAAKJ,EAAWI,GAAW,OAAO,EAClC,OAAQ2I,EAAQ3I,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,OAAOoO,KAAyBvK,EAAKsK,EAAmBhB,EAAcnN,GAGxE,CAFE,MAAOhvC,GACP,OAAO,CACT,CACF,EAEAs9C,EAAoB1E,MAAO,EAI3BlK,EAAOD,SAAWyO,GAAa7L,GAAM,WACnC,IAAIsB,EACJ,OAAO0K,EAAoBA,EAAoB3qD,QACzC2qD,EAAoBtpD,UACpBspD,GAAoB,WAAc1K,GAAS,CAAM,KAClDA,CACP,IAAK2K,EAAsBD,kBCnD3B,IAAIhM,EAAQ,EAAQ,MAChBzC,EAAa,EAAQ,KAErB0M,EAAc,kBAEdnD,EAAW,SAAUoF,EAASC,GAChC,IAAIvpD,EAAQiyB,EAAKu3B,EAAUF,IAC3B,OAAOtpD,GAASypD,GACZzpD,GAAS0pD,IACT/O,EAAW4O,GAAanM,EAAMmM,KAC5BA,EACR,EAEIC,EAAYtF,EAASsF,UAAY,SAAUG,GAC7C,OAAOzO,OAAOyO,GAAQjyC,QAAQ2vC,EAAa,KAAKtzC,aAClD,EAEIke,EAAOiyB,EAASjyB,KAAO,CAAC,EACxBy3B,EAASxF,EAASwF,OAAS,IAC3BD,EAAWvF,EAASuF,SAAW,IAEnChP,EAAOD,QAAU0J,YCnBjBzJ,EAAOD,QAAU,SAAUmB,GACzB,OAAOA,OACT,iBCJA,IAAIhB,EAAa,EAAQ,KACrBoO,EAAe,EAAQ,MAEvBhI,EAAcgI,EAAalb,IAE/B4M,EAAOD,QAAUuO,EAAa/H,WAAa,SAAUrF,GACnD,MAAoB,iBAANA,EAAwB,OAAPA,EAAchB,EAAWgB,IAAOA,IAAOoF,CACxE,EAAI,SAAUpF,GACZ,MAAoB,iBAANA,EAAwB,OAAPA,EAAchB,EAAWgB,EAC1D,YCTAlB,EAAOD,SAAU,kBCAjB,IAAIqB,EAAW,EAAQ,KACnB6H,EAAU,EAAQ,MAGlBkG,EAFkB,EAAQ,KAElBzO,CAAgB,SAI5BV,EAAOD,QAAU,SAAUmB,GACzB,IAAIkO,EACJ,OAAOhO,EAASF,UAAmCj8C,KAA1BmqD,EAAWlO,EAAGiO,MAA0BC,EAA0B,UAAfnG,EAAQ/H,GACtF,kBCXA,IAAIiI,EAAa,EAAQ,MACrBjJ,EAAa,EAAQ,KACrBe,EAAgB,EAAQ,MACxBoO,EAAoB,EAAQ,MAE5B1K,EAAUt/C,OAEd26C,EAAOD,QAAUsP,EAAoB,SAAUnO,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIoO,EAAUnG,EAAW,UACzB,OAAOjJ,EAAWoP,IAAYrO,EAAcqO,EAAQ/gD,UAAWo2C,EAAQzD,GACzE,iBCZA,IAAIv7C,EAAO,EAAQ,MACf3B,EAAO,EAAQ,MACf4/C,EAAW,EAAQ,MACnBzD,EAAc,EAAQ,MACtBoB,EAAwB,EAAQ,MAChCC,EAAoB,EAAQ,MAC5BP,EAAgB,EAAQ,MACxBS,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAC5BkC,EAAgB,EAAQ,MAExBzD,EAAaC,UAEbkP,EAAS,SAAUC,EAASn6B,GAC9BhxB,KAAKmrD,QAAUA,EACfnrD,KAAKgxB,OAASA,CAChB,EAEIo6B,EAAkBF,EAAOhhD,UAE7ByxC,EAAOD,QAAU,SAAU2P,EAAUC,EAAiBzvD,GACpD,IAMIiiD,EAAUyN,EAAQnsD,EAAOD,EAAQ6xB,EAAQiG,EAAM9R,EAN/CoiC,EAAO1rD,GAAWA,EAAQ0rD,KAC1BiE,KAAgB3vD,IAAWA,EAAQ2vD,YACnCC,KAAe5vD,IAAWA,EAAQ4vD,WAClCC,KAAiB7vD,IAAWA,EAAQ6vD,aACpCC,KAAiB9vD,IAAWA,EAAQ8vD,aACpCh6C,EAAKrQ,EAAKgqD,EAAiB/D,GAG3BqE,EAAO,SAAUC,GAEnB,OADI/N,GAAU0B,EAAc1B,EAAU,SAAU+N,GACzC,IAAIX,GAAO,EAAMW,EAC1B,EAEIC,EAAS,SAAU5qD,GACrB,OAAIsqD,GACFjM,EAASr+C,GACFyqD,EAAch6C,EAAGzQ,EAAM,GAAIA,EAAM,GAAI0qD,GAAQj6C,EAAGzQ,EAAM,GAAIA,EAAM,KAChEyqD,EAAch6C,EAAGzQ,EAAO0qD,GAAQj6C,EAAGzQ,EAC9C,EAEA,GAAIuqD,EACF3N,EAAWuN,EAASvN,cACf,GAAI4N,EACT5N,EAAWuN,MACN,CAEL,KADAE,EAASjO,EAAkB+N,IACd,MAAMtP,EAAWD,EAAYuP,GAAY,oBAEtD,GAAInO,EAAsBqO,GAAS,CACjC,IAAKnsD,EAAQ,EAAGD,EAASg+C,EAAkBkO,GAAWlsD,EAASC,EAAOA,IAEpE,IADA4xB,EAAS86B,EAAOT,EAASjsD,MACXw9C,EAAcwO,EAAiBp6B,GAAS,OAAOA,EAC7D,OAAO,IAAIk6B,GAAO,EACtB,CACApN,EAAWT,EAAYgO,EAAUE,EACnC,CAGA,IADAt0B,EAAOw0B,EAAYJ,EAASp0B,KAAO6mB,EAAS7mB,OACnC9R,EAAOxlB,EAAKs3B,EAAM6mB,IAAWp+C,MAAM,CAC1C,IACEsxB,EAAS86B,EAAO3mC,EAAKjkB,MAGvB,CAFE,MAAO+L,GACPuyC,EAAc1B,EAAU,QAAS7wC,EACnC,CACA,GAAqB,iBAAV+jB,GAAsBA,GAAU4rB,EAAcwO,EAAiBp6B,GAAS,OAAOA,CAC5F,CAAE,OAAO,IAAIk6B,GAAO,EACtB,kBCnEA,IAAIvrD,EAAO,EAAQ,MACf4/C,EAAW,EAAQ,MACnBuI,EAAY,EAAQ,MAExBnM,EAAOD,QAAU,SAAUoC,EAAUiO,EAAM7qD,GACzC,IAAI8qD,EAAaC,EACjB1M,EAASzB,GACT,IAEE,KADAkO,EAAclE,EAAUhK,EAAU,WAChB,CAChB,GAAa,UAATiO,EAAkB,MAAM7qD,EAC5B,OAAOA,CACT,CACA8qD,EAAcrsD,EAAKqsD,EAAalO,EAIlC,CAHE,MAAO7wC,GACPg/C,GAAa,EACbD,EAAc/+C,CAChB,CACA,GAAa,UAAT8+C,EAAkB,MAAM7qD,EAC5B,GAAI+qD,EAAY,MAAMD,EAEtB,OADAzM,EAASyM,GACF9qD,CACT,+BCrBA,IAAIgrD,EAAoB,0BACpB5P,EAAS,EAAQ,IACjB4E,EAA2B,EAAQ,MACnCiL,EAAiB,EAAQ,MACzBnE,EAAY,EAAQ,MAEpBoE,EAAa,WAAc,OAAOpsD,IAAM,EAE5C27C,EAAOD,QAAU,SAAU2Q,EAAqBC,EAAMr1B,EAAMs1B,GAC1D,IAAIlM,EAAgBiM,EAAO,YAI3B,OAHAD,EAAoBniD,UAAYoyC,EAAO4P,EAAmB,CAAEj1B,KAAMiqB,IAA2BqL,EAAiBt1B,KAC9Gk1B,EAAeE,EAAqBhM,GAAe,GAAO,GAC1D2H,EAAU3H,GAAiB+L,EACpBC,CACT,+BCdA,IAAIG,EAAI,EAAQ,MACZ7sD,EAAO,EAAQ,MACf8sD,EAAU,EAAQ,MAClBC,EAAe,EAAQ,MACvB7Q,EAAa,EAAQ,KACrB8Q,EAA4B,EAAQ,MACpC1L,EAAiB,EAAQ,MACzB4H,EAAiB,EAAQ,MACzBsD,EAAiB,EAAQ,MACzBjH,EAA8B,EAAQ,MACtCnD,EAAgB,EAAQ,MACxB1F,EAAkB,EAAQ,MAC1B2L,EAAY,EAAQ,MACpB4E,EAAgB,EAAQ,MAExBC,EAAuBH,EAAajF,OACpCqF,EAA6BJ,EAAahF,aAC1CwE,EAAoBU,EAAcV,kBAClCa,EAAyBH,EAAcG,uBACvCrN,EAAWrD,EAAgB,YAC3B2Q,EAAO,OACPC,EAAS,SACTxN,EAAU,UAEV2M,EAAa,WAAc,OAAOpsD,IAAM,EAE5C27C,EAAOD,QAAU,SAAUwR,EAAUZ,EAAMD,EAAqBp1B,EAAMk2B,EAASC,EAAQlH,GACrFyG,EAA0BN,EAAqBC,EAAMr1B,GAErD,IAkBIo2B,EAA0B1G,EAASV,EAlBnCqH,EAAqB,SAAUC,GACjC,GAAIA,IAASJ,GAAWK,EAAiB,OAAOA,EAChD,IAAKT,GAA0BQ,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKP,EACL,KAAKC,EACL,KAAKxN,EAAS,OAAO,WAAqB,OAAO,IAAI4M,EAAoBrsD,KAAMutD,EAAO,EACtF,OAAO,WAAc,OAAO,IAAIlB,EAAoBrsD,KAAO,CAC/D,EAEIqgD,EAAgBiM,EAAO,YACvBoB,GAAwB,EACxBD,EAAoBP,EAAShjD,UAC7ByjD,EAAiBF,EAAkB/N,IAClC+N,EAAkB,eAClBN,GAAWM,EAAkBN,GAC9BK,GAAmBT,GAA0BY,GAAkBL,EAAmBH,GAClFS,EAA4B,SAARtB,GAAkBmB,EAAkBpuD,SAA4BsuD,EA+BxF,GA3BIC,IACFP,EAA2BpM,EAAe2M,EAAkBjuD,KAAK,IAAIutD,OACpClsD,OAAOkJ,WAAamjD,EAAyBp2B,OACvEw1B,GAAWxL,EAAeoM,KAA8BnB,IACvDrD,EACFA,EAAewE,EAA0BnB,GAC/BrQ,EAAWwR,EAAyB3N,KAC9CqC,EAAcsL,EAA0B3N,EAAU0M,IAItDD,EAAekB,EAA0BhN,GAAe,GAAM,GAC1DoM,IAASzE,EAAU3H,GAAiB+L,IAKxCS,GAAwBM,GAAWF,GAAUU,GAAkBA,EAAeztD,OAAS+sD,KACpFR,GAAWK,EACd5H,EAA4BuI,EAAmB,OAAQR,IAEvDS,GAAwB,EACxBF,EAAkB,WAAoB,OAAO7tD,EAAKguD,EAAgB3tD,KAAO,IAKzEmtD,EAMF,GALAxG,EAAU,CACRkH,OAAQP,EAAmBL,GAC3Bl9C,KAAMq9C,EAASI,EAAkBF,EAAmBN,GACpD3tD,QAASiuD,EAAmB7N,IAE1ByG,EAAQ,IAAKD,KAAOU,GAClBoG,GAA0BW,KAA2BzH,KAAOwH,KAC9D1L,EAAc0L,EAAmBxH,EAAKU,EAAQV,SAE3CuG,EAAE,CAAEl8C,OAAQg8C,EAAMwB,OAAO,EAAMlI,OAAQmH,GAA0BW,GAAyB/G,GASnG,OALM8F,IAAWvG,GAAWuH,EAAkB/N,KAAc8N,GAC1DzL,EAAc0L,EAAmB/N,EAAU8N,EAAiB,CAAEttD,KAAMitD,IAEtEnF,EAAUsE,GAAQkB,EAEX7G,CACT,+BCjGA,IAcIuF,EAAmB6B,EAAmCC,EAdtD1P,EAAQ,EAAQ,MAChBzC,EAAa,EAAQ,KACrBkB,EAAW,EAAQ,KACnBT,EAAS,EAAQ,IACjB2E,EAAiB,EAAQ,MACzBc,EAAgB,EAAQ,MACxB1F,EAAkB,EAAQ,MAC1BoQ,EAAU,EAAQ,MAElB/M,EAAWrD,EAAgB,YAC3B0Q,GAAyB,EAOzB,GAAGh9C,OAGC,SAFNi+C,EAAgB,GAAGj+C,SAIjBg+C,EAAoC9M,EAAeA,EAAe+M,OACxBhtD,OAAOkJ,YAAWgiD,EAAoB6B,GAHlDhB,GAAyB,IAO7BhQ,EAASmP,IAAsB5N,GAAM,WACjE,IAAIvyC,EAAO,CAAC,EAEZ,OAAOmgD,EAAkBxM,GAAU//C,KAAKoM,KAAUA,CACpD,IAE4BmgD,EAAoB,CAAC,EACxCO,IAASP,EAAoB5P,EAAO4P,IAIxCrQ,EAAWqQ,EAAkBxM,KAChCqC,EAAcmK,EAAmBxM,GAAU,WACzC,OAAO1/C,IACT,IAGF27C,EAAOD,QAAU,CACfwQ,kBAAmBA,EACnBa,uBAAwBA,aC/C1BpR,EAAOD,QAAU,CAAC,kBCAlB,IAAIuS,EAAW,EAAQ,MAIvBtS,EAAOD,QAAU,SAAU/8C,GACzB,OAAOsvD,EAAStvD,EAAIQ,OACtB,kBCNA,IAAIm/C,EAAQ,EAAQ,MAChBzC,EAAa,EAAQ,KACrB8E,EAAS,EAAQ,MACjBnC,EAAc,EAAQ,MACtBsO,EAA6B,qBAC7B1D,EAAgB,EAAQ,MACxB8E,EAAsB,EAAQ,MAE9BC,EAAuBD,EAAoBpE,QAC3CsE,EAAmBF,EAAoB3tD,IAEvCqQ,EAAiB5P,OAAO4P,eAExBy9C,EAAsB7P,IAAgBF,GAAM,WAC9C,OAAsF,IAA/E1tC,GAAe,WAA0B,GAAG,SAAU,CAAE1P,MAAO,IAAK/B,MAC7E,IAEImvD,EAAWlS,OAAOA,QAAQt/C,MAAM,UAEhCwkD,EAAc3F,EAAOD,QAAU,SAAUx6C,EAAOhB,EAAMrE,GACvB,YAA7BugD,OAAOl8C,GAAMyK,MAAM,EAAG,KACxBzK,EAAO,IAAMk8C,OAAOl8C,GAAM0Y,QAAQ,qBAAsB,MAAQ,KAE9D/c,GAAWA,EAAQ2lD,SAAQthD,EAAO,OAASA,GAC3CrE,GAAWA,EAAQ4lD,SAAQvhD,EAAO,OAASA,KAC1CygD,EAAOz/C,EAAO,SAAY4rD,GAA8B5rD,EAAMhB,OAASA,KACtEs+C,EAAa5tC,EAAe1P,EAAO,OAAQ,CAAEA,MAAOhB,EAAM2Q,cAAc,IACvE3P,EAAMhB,KAAOA,GAEhBmuD,GAAuBxyD,GAAW8kD,EAAO9kD,EAAS,UAAYqF,EAAM/B,SAAWtD,EAAQ0yD,OACzF39C,EAAe1P,EAAO,SAAU,CAAEA,MAAOrF,EAAQ0yD,QAEnD,IACM1yD,GAAW8kD,EAAO9kD,EAAS,gBAAkBA,EAAQ0c,YACnDimC,GAAa5tC,EAAe1P,EAAO,YAAa,CAAE4P,UAAU,IAEvD5P,EAAMgJ,YAAWhJ,EAAMgJ,eAAYtJ,EAClB,CAA5B,MAAOqM,GAAqB,CAC9B,IAAItQ,EAAQwxD,EAAqBjtD,GAG/B,OAFGy/C,EAAOhkD,EAAO,YACjBA,EAAM6T,OAAS89C,EAASvkD,KAAoB,iBAAR7J,EAAmBA,EAAO,KACvDgB,CACX,EAIAkmD,SAASl9C,UAAU6Q,SAAWumC,GAAY,WACxC,OAAOzF,EAAW77C,OAASouD,EAAiBpuD,MAAMwQ,QAAU44C,EAAcppD,KAC5E,GAAG,sBChDH,IAAI6rC,EAAOznC,KAAKynC,KACZD,EAAQxnC,KAAKwnC,MAKjB+P,EAAOD,QAAUt3C,KAAKoqD,OAAS,SAAezuD,GAC5C,IAAI4U,GAAK5U,EACT,OAAQ4U,EAAI,EAAIi3B,EAAQC,GAAMl3B,EAChC,kBCTA,IAiBI85C,EAAO9e,EAAMb,EAAM4f,EAAQ/sB,EAAQl8B,EAAMkpD,EAASj3C,EAjBlDhc,EAAS,EAAQ,MACjB4F,EAAO,EAAQ,MACf6O,EAA2B,UAC3By+C,EAAY,WACZC,EAAS,EAAQ,MACjBC,EAAgB,EAAQ,MACxBC,EAAkB,EAAQ,MAC1BxK,EAAU,EAAQ,MAElBhnD,EAAmB7B,EAAO6B,kBAAoB7B,EAAOszD,uBACrDhyD,EAAWtB,EAAOsB,SAClB6nD,EAAUnpD,EAAOmpD,QACjB3wB,EAAUx4B,EAAOw4B,QAEjB+6B,EAA2B9+C,EAAyBzU,EAAQ,kBAC5DwzD,EAAiBD,GAA4BA,EAAyB/tD,MAKrEguD,IACHT,EAAQ,WACN,IAAIz3B,EAAQrlB,EAEZ,IADI4yC,IAAYvtB,EAAS6tB,EAAQsK,SAASn4B,EAAOo4B,OAC1Czf,GAAM,CACXh+B,EAAKg+B,EAAKh+B,GACVg+B,EAAOA,EAAK1Y,KACZ,IACEtlB,GAKF,CAJE,MAAO1E,GAGP,MAFI0iC,EAAM+e,IACL5f,OAAOluC,EACNqM,CACR,CACF,CAAE6hC,OAAOluC,EACLo2B,GAAQA,EAAOq4B,OACrB,EAIKR,GAAWtK,GAAYwK,IAAmBxxD,IAAoBP,GAQvD8xD,GAAiB56B,GAAWA,EAAQC,UAE9Cw6B,EAAUz6B,EAAQC,aAAQvzB,IAElB2X,YAAc2b,EACtBxc,EAAOpW,EAAKqtD,EAAQj3C,KAAMi3C,GAC1BD,EAAS,WACPh3C,EAAK+2C,EACP,GAESlK,EACTmK,EAAS,WACP7J,EAAQyK,SAASb,EACnB,GASAG,EAAYttD,EAAKstD,EAAWlzD,GAC5BgzD,EAAS,WACPE,EAAUH,EACZ,IAhCA9sB,GAAS,EACTl8B,EAAOzI,EAASuyD,eAAe,IAC/B,IAAIhyD,EAAiBkxD,GAAOtwD,QAAQsH,EAAM,CAAEpH,eAAe,IAC3DqwD,EAAS,WACPjpD,EAAK0tB,KAAOwO,GAAUA,CACxB,IA+BJga,EAAOD,QAAUwT,GAAkB,SAAUv9C,GAC3C,IAAI69C,EAAO,CAAE79C,GAAIA,EAAIslB,UAAMr2B,GACvBkuC,IAAMA,EAAK7X,KAAOu4B,GACjB7f,IACHA,EAAO6f,EACPd,KACA5f,EAAO0gB,CACX,+BCnFA,IAAIlI,EAAY,EAAQ,MAEpBvL,EAAaC,UAEbyT,EAAoB,SAAUC,GAChC,IAAIv7B,EAASma,EACbtuC,KAAK2uD,QAAU,IAAIe,GAAE,SAAUC,EAAWC,GACxC,QAAgBhvD,IAAZuzB,QAAoCvzB,IAAX0tC,EAAsB,MAAMyN,EAAW,2BACpE5nB,EAAUw7B,EACVrhB,EAASshB,CACX,IACA5vD,KAAKm0B,QAAUmzB,EAAUnzB,GACzBn0B,KAAKsuC,OAASgZ,EAAUhZ,EAC1B,EAIAqN,EAAOD,QAAQqF,EAAI,SAAU2O,GAC3B,OAAO,IAAID,EAAkBC,EAC/B,+BCnBA,IAAIlR,EAAc,EAAQ,MACtBG,EAAc,EAAQ,MACtBh/C,EAAO,EAAQ,MACf2+C,EAAQ,EAAQ,MAChBuR,EAAa,EAAQ,MACrBC,EAA8B,EAAQ,MACtCC,EAA6B,EAAQ,MACrC/S,EAAW,EAAQ,MACnBgT,EAAgB,EAAQ,MAGxBC,EAAUjvD,OAAOoxB,OAEjBxhB,EAAiB5P,OAAO4P,eACxBtB,EAASqvC,EAAY,GAAGrvC,QAI5BqsC,EAAOD,SAAWuU,GAAW3R,GAAM,WAEjC,GAAIE,GAQiB,IARFyR,EAAQ,CAAE7jD,EAAG,GAAK6jD,EAAQr/C,EAAe,CAAC,EAAG,IAAK,CACnER,YAAY,EACZ7P,IAAK,WACHqQ,EAAe5Q,KAAM,IAAK,CACxBkB,MAAO,EACPkP,YAAY,GAEhB,IACE,CAAEhE,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAI8jD,EAAI,CAAC,EACLC,EAAI,CAAC,EAELC,EAASC,SACTC,EAAW,uBAGf,OAFAJ,EAAEE,GAAU,EACZE,EAASxzD,MAAM,IAAIkS,SAAQ,SAAUuhD,GAAOJ,EAAEI,GAAOA,CAAK,IACzB,GAA1BN,EAAQ,CAAC,EAAGC,GAAGE,IAAgBP,EAAWI,EAAQ,CAAC,EAAGE,IAAIpmD,KAAK,KAAOumD,CAC/E,IAAK,SAAgBhgD,EAAQE,GAM3B,IALA,IAAIggD,EAAIxT,EAAS1sC,GACbqtC,EAAkBptC,UAAUpR,OAC5BC,EAAQ,EACR4Q,EAAwB8/C,EAA4B/O,EACpD6H,EAAuBmH,EAA2BhP,EAC/CpD,EAAkBv+C,GAMvB,IALA,IAII6B,EAJAy7C,EAAIsT,EAAcz/C,UAAUnR,MAC5B2Q,EAAOC,EAAwBV,EAAOugD,EAAWnT,GAAI1sC,EAAsB0sC,IAAMmT,EAAWnT,GAC5Fv9C,EAAS4Q,EAAK5Q,OACd+/C,EAAI,EAED//C,EAAS+/C,GACdj+C,EAAM8O,EAAKmvC,KACNV,IAAe7+C,EAAKipD,EAAsBlM,EAAGz7C,KAAMuvD,EAAEvvD,GAAOy7C,EAAEz7C,IAErE,OAAOuvD,CACX,EAAIP,gBCvDJ,IAmDIQ,EAnDAlR,EAAW,EAAQ,MACnBmR,EAAyB,EAAQ,MACjCC,EAAc,EAAQ,KACtBnH,EAAa,EAAQ,MACrBlyB,EAAO,EAAQ,KACf6sB,EAAwB,EAAQ,KAChCoF,EAAY,EAAQ,MAMpBqH,EAAWrH,EAAU,YAErBsH,EAAmB,WAA0B,EAE7CC,EAAY,SAAUhrD,GACxB,MAAOirD,WAAmBjrD,EAAnBirD,cACT,EAGIC,EAA4B,SAAUP,GACxCA,EAAgBQ,MAAMH,EAAU,KAChCL,EAAgB5nB,QAChB,IAAIqoB,EAAOT,EAAgBU,aAAanwD,OAExC,OADAyvD,EAAkB,KACXS,CACT,EAyBIE,EAAkB,WACpB,IACEX,EAAkB,IAAIY,cAAc,WACP,CAA7B,MAAOpkD,GAAsB,CAzBF,IAIzBqkD,EAFAC,EAwBJH,EAAqC,oBAAZp0D,SACrBA,SAASmyD,QAAUsB,EACjBO,EAA0BP,KA1B5Bc,EAASpN,EAAsB,WAG5B5/C,MAAMmgC,QAAU,OACvBpN,EAAKsY,YAAY2hB,GAEjBA,EAAO7qD,IAAM01C,OALJ,gBAMTkV,EAAiBC,EAAOC,cAAcx0D,UACvB4rC,OACf0oB,EAAeL,MAAMH,EAAU,sBAC/BQ,EAAezoB,QACRyoB,EAAetQ,GAiBlBgQ,EAA0BP,GAE9B,IADA,IAAItxD,EAASwxD,EAAYxxD,OAClBA,YAAiBiyD,EAAyB,UAAET,EAAYxxD,IAC/D,OAAOiyD,GACT,EAEA5H,EAAWoH,IAAY,EAKvBjV,EAAOD,QAAU16C,OAAOs7C,QAAU,SAAgBmB,EAAGgU,GACnD,IAAIzgC,EAQJ,OAPU,OAANysB,GACFoT,EAA0B,UAAItR,EAAS9B,GACvCzsB,EAAS,IAAI6/B,EACbA,EAA0B,UAAI,KAE9B7/B,EAAO4/B,GAAYnT,GACdzsB,EAASogC,SACMxwD,IAAf6wD,EAA2BzgC,EAAS0/B,EAAuB3P,EAAE/vB,EAAQygC,EAC9E,kBClFA,IAAIjT,EAAc,EAAQ,MACtBkT,EAA0B,EAAQ,MAClC7Q,EAAuB,EAAQ,MAC/BtB,EAAW,EAAQ,MACnBvB,EAAkB,EAAQ,MAC1B6R,EAAa,EAAQ,MAKzBnU,EAAQqF,EAAIvC,IAAgBkT,EAA0B1wD,OAAO2P,iBAAmB,SAA0B8sC,EAAGgU,GAC3GlS,EAAS9B,GAMT,IALA,IAIIx8C,EAJA0wD,EAAQ3T,EAAgByT,GACxB1hD,EAAO8/C,EAAW4B,GAClBtyD,EAAS4Q,EAAK5Q,OACdC,EAAQ,EAELD,EAASC,GAAOyhD,EAAqBE,EAAEtD,EAAGx8C,EAAM8O,EAAK3Q,KAAUuyD,EAAM1wD,IAC5E,OAAOw8C,CACT,kBCnBA,IAAIe,EAAc,EAAQ,MACtBoT,EAAiB,EAAQ,MACzBF,EAA0B,EAAQ,MAClCnS,EAAW,EAAQ,MACnB6B,EAAgB,EAAQ,MAExBrF,EAAaC,UAEb6V,EAAkB7wD,OAAO4P,eAEzBkhD,EAA4B9wD,OAAOmP,yBACnC4hD,EAAa,aACbrK,EAAe,eACfsK,EAAW,WAIftW,EAAQqF,EAAIvC,EAAckT,EAA0B,SAAwBjU,EAAGuE,EAAGiQ,GAIhF,GAHA1S,EAAS9B,GACTuE,EAAIZ,EAAcY,GAClBzC,EAAS0S,GACQ,mBAANxU,GAA0B,cAANuE,GAAqB,UAAWiQ,GAAcD,KAAYC,IAAeA,EAAmB,SAAG,CAC5H,IAAI5wC,EAAUywC,EAA0BrU,EAAGuE,GACvC3gC,GAAWA,EAAgB,WAC7Bo8B,EAAEuE,GAAKiQ,EAAW/wD,MAClB+wD,EAAa,CACXphD,aAAc62C,KAAgBuK,EAAaA,EAAuB,aAAI5wC,EAAoB,aAC1FjR,WAAY2hD,KAAcE,EAAaA,EAAqB,WAAI5wC,EAAkB,WAClFvQ,UAAU,GAGhB,CAAE,OAAO+gD,EAAgBpU,EAAGuE,EAAGiQ,EACjC,EAAIJ,EAAkB,SAAwBpU,EAAGuE,EAAGiQ,GAIlD,GAHA1S,EAAS9B,GACTuE,EAAIZ,EAAcY,GAClBzC,EAAS0S,GACLL,EAAgB,IAClB,OAAOC,EAAgBpU,EAAGuE,EAAGiQ,EACD,CAA5B,MAAOhlD,GAAqB,CAC9B,GAAI,QAASglD,GAAc,QAASA,EAAY,MAAMlW,EAAW,2BAEjE,MADI,UAAWkW,IAAYxU,EAAEuE,GAAKiQ,EAAW/wD,OACtCu8C,CACT,kBC1CA,IAAIe,EAAc,EAAQ,MACtB7+C,EAAO,EAAQ,MACfowD,EAA6B,EAAQ,MACrC7O,EAA2B,EAAQ,MACnClD,EAAkB,EAAQ,MAC1BoD,EAAgB,EAAQ,MACxBT,EAAS,EAAQ,MACjBiR,EAAiB,EAAQ,MAGzBE,EAA4B9wD,OAAOmP,yBAIvCurC,EAAQqF,EAAIvC,EAAcsT,EAA4B,SAAkCrU,EAAGuE,GAGzF,GAFAvE,EAAIO,EAAgBP,GACpBuE,EAAIZ,EAAcY,GACd4P,EAAgB,IAClB,OAAOE,EAA0BrU,EAAGuE,EACR,CAA5B,MAAO/0C,GAAqB,CAC9B,GAAI0zC,EAAOlD,EAAGuE,GAAI,OAAOd,GAA0BvhD,EAAKowD,EAA2BhP,EAAGtD,EAAGuE,GAAIvE,EAAEuE,GACjG,kBCrBA,IAAIkQ,EAAqB,EAAQ,MAG7B1I,EAFc,EAAQ,KAEGl6C,OAAO,SAAU,aAK9CosC,EAAQqF,EAAI//C,OAAOmxD,qBAAuB,SAA6B1U,GACrE,OAAOyU,EAAmBzU,EAAG+L,EAC/B,gBCTA9N,EAAQqF,EAAI//C,OAAOgP,sCCDnB,IAAI2wC,EAAS,EAAQ,MACjB9E,EAAa,EAAQ,KACrBmB,EAAW,EAAQ,MACnBuM,EAAY,EAAQ,MACpB6I,EAA2B,EAAQ,MAEnCxB,EAAWrH,EAAU,YACrBjJ,EAAUt/C,OACVqxD,EAAkB/R,EAAQp2C,UAK9ByxC,EAAOD,QAAU0W,EAA2B9R,EAAQW,eAAiB,SAAUxD,GAC7E,IAAI5tC,EAASmtC,EAASS,GACtB,GAAIkD,EAAO9wC,EAAQ+gD,GAAW,OAAO/gD,EAAO+gD,GAC5C,IAAIr4C,EAAc1I,EAAO0I,YACzB,OAAIsjC,EAAWtjC,IAAgB1I,aAAkB0I,EACxCA,EAAYrO,UACZ2F,aAAkBywC,EAAU+R,EAAkB,IACzD,kBCpBA,IAAI1T,EAAc,EAAQ,MAE1BhD,EAAOD,QAAUiD,EAAY,CAAC,EAAE/B,+BCFhC,IAAI+B,EAAc,EAAQ,MACtBgC,EAAS,EAAQ,MACjB3C,EAAkB,EAAQ,MAC1B1sC,EAAU,gBACVk4C,EAAa,EAAQ,MAErB5qD,EAAO+/C,EAAY,GAAG//C,MAE1B+8C,EAAOD,QAAU,SAAU7rC,EAAQyiD,GACjC,IAGIrxD,EAHAw8C,EAAIO,EAAgBnuC,GACpBzC,EAAI,EACJ4jB,EAAS,GAEb,IAAK/vB,KAAOw8C,GAAIkD,EAAO6I,EAAYvoD,IAAQ0/C,EAAOlD,EAAGx8C,IAAQrC,EAAKoyB,EAAQ/vB,GAE1E,KAAOqxD,EAAMnzD,OAASiO,GAAOuzC,EAAOlD,EAAGx8C,EAAMqxD,EAAMllD,SAChDkE,EAAQ0f,EAAQ/vB,IAAQrC,EAAKoyB,EAAQ/vB,IAExC,OAAO+vB,CACT,kBCnBA,IAAIkhC,EAAqB,EAAQ,MAC7BvB,EAAc,EAAQ,KAK1BhV,EAAOD,QAAU16C,OAAO+O,MAAQ,SAAc0tC,GAC5C,OAAOyU,EAAmBzU,EAAGkT,EAC/B,6BCPA,IAAI4B,EAAwB,CAAC,EAAE3J,qBAE3Bz4C,EAA2BnP,OAAOmP,yBAGlCqiD,EAAcriD,IAA6BoiD,EAAsB5yD,KAAK,CAAE,EAAG,GAAK,GAIpF+7C,EAAQqF,EAAIyR,EAAc,SAA8BtK,GACtD,IAAI3G,EAAapxC,EAAyBnQ,KAAMkoD,GAChD,QAAS3G,GAAcA,EAAWnxC,UACpC,EAAImiD,kBCZJ,IAAI5T,EAAc,EAAQ,MACtBY,EAAW,EAAQ,MACnBkT,EAAqB,EAAQ,MAMjC9W,EAAOD,QAAU16C,OAAO6nD,iBAAmB,aAAe,CAAC,EAAI,WAC7D,IAEIpH,EAFAiR,GAAiB,EACjB3mD,EAAO,CAAC,EAEZ,KAEE01C,EAAS9C,EAAY39C,OAAOmP,yBAAyBnP,OAAOkJ,UAAW,aAAa5J,MAC7EyL,EAAM,IACb2mD,EAAiB3mD,aAAgB3G,KACL,CAA5B,MAAO6H,GAAqB,CAC9B,OAAO,SAAwBwwC,EAAGqQ,GAKhC,OAJAvO,EAAS9B,GACTgV,EAAmB3E,GACf4E,EAAgBjR,EAAOhE,EAAGqQ,GACzBrQ,EAAEkV,UAAY7E,EACZrQ,CACT,CACF,CAjB+D,QAiBzD78C,mBC1BN,IAAIjB,EAAO,EAAQ,MACfk8C,EAAa,EAAQ,KACrBkB,EAAW,EAAQ,KAEnBhB,EAAaC,UAIjBL,EAAOD,QAAU,SAAU9Z,EAAOgxB,GAChC,IAAIjhD,EAAIo5B,EACR,GAAa,WAAT6nB,GAAqB/W,EAAWlqC,EAAKiwB,EAAM7mB,YAAcgiC,EAAShS,EAAMprC,EAAKgS,EAAIiwB,IAAS,OAAOmJ,EACrG,GAAI8Q,EAAWlqC,EAAKiwB,EAAMixB,WAAa9V,EAAShS,EAAMprC,EAAKgS,EAAIiwB,IAAS,OAAOmJ,EAC/E,GAAa,WAAT6nB,GAAqB/W,EAAWlqC,EAAKiwB,EAAM7mB,YAAcgiC,EAAShS,EAAMprC,EAAKgS,EAAIiwB,IAAS,OAAOmJ,EACrG,MAAMgR,EAAW,0CACnB,kBCdA,IAAI+I,EAAa,EAAQ,MACrBnG,EAAc,EAAQ,MACtBmU,EAA4B,EAAQ,MACpChD,EAA8B,EAAQ,MACtCvQ,EAAW,EAAQ,MAEnBjwC,EAASqvC,EAAY,GAAGrvC,QAG5BqsC,EAAOD,QAAUoJ,EAAW,UAAW,YAAc,SAAiBjI,GACpE,IAAI9sC,EAAO+iD,EAA0B/R,EAAExB,EAAS1C,IAC5C7sC,EAAwB8/C,EAA4B/O,EACxD,OAAO/wC,EAAwBV,EAAOS,EAAMC,EAAsB6sC,IAAO9sC,CAC3E,YCbA4rC,EAAOD,QAAU,SAAUoE,GACzB,IACE,MAAO,CAAE7yC,OAAO,EAAO/L,MAAO4+C,IAGhC,CAFE,MAAO7yC,GACP,MAAO,CAAEA,OAAO,EAAM/L,MAAO+L,EAC/B,CACF,kBCNA,IAAIvR,EAAS,EAAQ,MACjBq3D,EAA2B,EAAQ,MACnClX,EAAa,EAAQ,KACrBuJ,EAAW,EAAQ,MACnBgE,EAAgB,EAAQ,MACxB/M,EAAkB,EAAQ,MAC1B2W,EAAa,EAAQ,MACrB1O,EAAU,EAAQ,MAClBmI,EAAU,EAAQ,MAClBwG,EAAa,EAAQ,MAErBC,EAAyBH,GAA4BA,EAAyB7oD,UAC9E67C,EAAU1J,EAAgB,WAC1B8W,GAAc,EACdC,EAAiCvX,EAAWngD,EAAO23D,uBAEnDC,EAA6BlO,EAAS,WAAW,WACnD,IAAImO,EAA6BnK,EAAc2J,GAC3CS,EAAyBD,IAA+BnX,OAAO2W,GAInE,IAAKS,GAAyC,KAAfP,EAAmB,OAAO,EAEzD,GAAIxG,KAAayG,EAA8B,QAAKA,EAAgC,SAAI,OAAO,EAI/F,IAAKD,GAAcA,EAAa,KAAO,cAAclnD,KAAKwnD,GAA6B,CAErF,IAAI5E,EAAU,IAAIoE,GAAyB,SAAU5+B,GAAWA,EAAQ,EAAI,IACxEs/B,EAAc,SAAU3T,GAC1BA,GAAK,WAA0B,IAAG,WAA0B,GAC9D,EAIA,IAHkB6O,EAAQp2C,YAAc,CAAC,GAC7BwtC,GAAW0N,IACvBN,EAAcxE,EAAQj3C,MAAK,WAA0B,cAAc+7C,GACjD,OAAO,CAE3B,CAAE,OAAQD,IAA2BR,GAAc1O,KAAa8O,CAClE,IAEAzX,EAAOD,QAAU,CACfgY,YAAaJ,EACbK,gBAAiBP,EACjBD,YAAaA,mBC7Cf,IAAIz3D,EAAS,EAAQ,MAErBigD,EAAOD,QAAUhgD,EAAOw4B,wBCFxB,IAAIqrB,EAAW,EAAQ,MACnBxC,EAAW,EAAQ,KACnB6W,EAAuB,EAAQ,MAEnCjY,EAAOD,QAAU,SAAUgU,EAAG3vD,GAE5B,GADAw/C,EAASmQ,GACL3S,EAASh9C,IAAMA,EAAEwY,cAAgBm3C,EAAG,OAAO3vD,EAC/C,IAAI8zD,EAAoBD,EAAqB7S,EAAE2O,GAG/C,OADAv7B,EADc0/B,EAAkB1/B,SACxBp0B,GACD8zD,EAAkBlF,OAC3B,iBCXA,IAAIoE,EAA2B,EAAQ,MACnCe,EAA8B,EAAQ,MACtCR,EAA6B,oBAEjC3X,EAAOD,QAAU4X,IAA+BQ,GAA4B,SAAUzI,GACpF0H,EAAyBhkB,IAAIsc,GAAU3zC,UAAK9W,GAAW,WAA0B,GACnF,oBCNA,IAAIgQ,EAAiB,UAErB+qC,EAAOD,QAAU,SAAUqY,EAAQC,EAAQ/yD,GACzCA,KAAO8yD,GAAUnjD,EAAemjD,EAAQ9yD,EAAK,CAC3C4P,cAAc,EACdtQ,IAAK,WAAc,OAAOyzD,EAAO/yD,EAAM,EACvCX,IAAK,SAAUu8C,GAAMmX,EAAO/yD,GAAO47C,CAAI,GAE3C,YCRA,IAAIoX,EAAQ,WACVj0D,KAAK2vC,KAAO,KACZ3vC,KAAKk0D,KAAO,IACd,EAEAD,EAAM/pD,UAAY,CAChBjH,IAAK,SAAUyL,GACb,IAAI2R,EAAQ,CAAE3R,KAAMA,EAAMuoB,KAAM,MAC5Bj3B,KAAK2vC,KAAM3vC,KAAKk0D,KAAKj9B,KAAO5W,EAC3BrgB,KAAK2vC,KAAOtvB,EACjBrgB,KAAKk0D,KAAO7zC,CACd,EACA9f,IAAK,WACH,IAAI8f,EAAQrgB,KAAK2vC,KACjB,GAAItvB,EAGF,OAFArgB,KAAK2vC,KAAOtvB,EAAM4W,KACdj3B,KAAKk0D,OAAS7zC,IAAOrgB,KAAKk0D,KAAO,MAC9B7zC,EAAM3R,IAEjB,GAGFitC,EAAOD,QAAUuY,kBCtBjB,IAAIt0D,EAAO,EAAQ,MACf4/C,EAAW,EAAQ,MACnB1D,EAAa,EAAQ,KACrB+I,EAAU,EAAQ,MAClBkB,EAAa,EAAQ,MAErB/J,EAAaC,UAIjBL,EAAOD,QAAU,SAAUyY,EAAGzX,GAC5B,IAAIoD,EAAOqU,EAAErU,KACb,GAAIjE,EAAWiE,GAAO,CACpB,IAAI9uB,EAASrxB,EAAKmgD,EAAMqU,EAAGzX,GAE3B,OADe,OAAX1rB,GAAiBuuB,EAASvuB,GACvBA,CACT,CACA,GAAmB,WAAf4zB,EAAQuP,GAAiB,OAAOx0D,EAAKmmD,EAAYqO,EAAGzX,GACxD,MAAMX,EAAW,8CACnB,+BChBA,IAoBMqY,EACAC,EArBF10D,EAAO,EAAQ,MACfg/C,EAAc,EAAQ,MACtB5jC,EAAW,EAAQ,MACnBu5C,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBjL,EAAS,EAAQ,MACjBhN,EAAS,EAAQ,IACjB8R,EAAmB,YACnBoG,EAAsB,EAAQ,MAC9BC,EAAkB,EAAQ,MAE1BC,EAAgBpL,EAAO,wBAAyBlN,OAAOlyC,UAAU0O,SACjE+7C,EAAazlB,OAAOhlC,UAAU41C,KAC9B8U,EAAcD,EACdlY,EAASkC,EAAY,GAAGlC,QACxBnrC,EAAUqtC,EAAY,GAAGrtC,SACzBsH,EAAU+lC,EAAY,GAAG/lC,SACzBsnC,EAAcvB,EAAY,GAAGh0C,OAE7BkqD,GAEER,EAAM,MACV10D,EAAKg1D,EAFDP,EAAM,IAEY,KACtBz0D,EAAKg1D,EAAYN,EAAK,KACG,IAAlBD,EAAIpe,WAAqC,IAAlBqe,EAAIre,WAGhC8e,EAAgBP,EAAcQ,aAG9BC,OAAuCp0D,IAAvB,OAAOk/C,KAAK,IAAI,IAExB+U,GAA4BG,GAAiBF,GAAiBN,GAAuBC,KAG/FG,EAAc,SAAc/J,GAC1B,IAII75B,EAAQikC,EAAQjf,EAAWpxC,EAAOwI,EAAGyC,EAAQgF,EAJ7C2xC,EAAKxmD,KACLrD,EAAQyxD,EAAiB5H,GACzBhhD,EAAMuV,EAAS8vC,GACfqK,EAAMv4D,EAAMu4D,IAGhB,GAAIA,EAIF,OAHAA,EAAIlf,UAAYwQ,EAAGxQ,UACnBhlB,EAASrxB,EAAKi1D,EAAaM,EAAK1vD,GAChCghD,EAAGxQ,UAAYkf,EAAIlf,UACZhlB,EAGT,IAAIxP,EAAS7kB,EAAM6kB,OACf2zC,EAASL,GAAiBtO,EAAG2O,OAC7B1O,EAAQ9mD,EAAK20D,EAAa9N,GAC1Bh2C,EAASg2C,EAAGh2C,OACZ4kD,EAAa,EACbC,EAAU7vD,EA+Cd,GA7CI2vD,IACF1O,EAAQ7tC,EAAQ6tC,EAAO,IAAK,KACC,IAAzBn1C,EAAQm1C,EAAO,OACjBA,GAAS,KAGX4O,EAAUnV,EAAY16C,EAAKghD,EAAGxQ,WAE1BwQ,EAAGxQ,UAAY,KAAOwQ,EAAG8O,WAAa9O,EAAG8O,WAA+C,OAAlC7Y,EAAOj3C,EAAKghD,EAAGxQ,UAAY,MACnFxlC,EAAS,OAASA,EAAS,IAC3B6kD,EAAU,IAAMA,EAChBD,KAIFH,EAAS,IAAI/lB,OAAO,OAAS1+B,EAAS,IAAKi2C,IAGzCuO,IACFC,EAAS,IAAI/lB,OAAO,IAAM1+B,EAAS,WAAYi2C,IAE7CoO,IAA0B7e,EAAYwQ,EAAGxQ,WAE7CpxC,EAAQjF,EAAKg1D,EAAYQ,EAASF,EAASzO,EAAI6O,GAE3CF,EACEvwD,GACFA,EAAMg9B,MAAQse,EAAYt7C,EAAMg9B,MAAOwzB,GACvCxwD,EAAM,GAAKs7C,EAAYt7C,EAAM,GAAIwwD,GACjCxwD,EAAMxF,MAAQonD,EAAGxQ,UACjBwQ,EAAGxQ,WAAapxC,EAAM,GAAGzF,QACpBqnD,EAAGxQ,UAAY,EACb6e,GAA4BjwD,IACrC4hD,EAAGxQ,UAAYwQ,EAAG9qD,OAASkJ,EAAMxF,MAAQwF,EAAM,GAAGzF,OAAS62C,GAEzDgf,GAAiBpwD,GAASA,EAAMzF,OAAS,GAG3CQ,EAAK+0D,EAAe9vD,EAAM,GAAIqwD,GAAQ,WACpC,IAAK7nD,EAAI,EAAGA,EAAImD,UAAUpR,OAAS,EAAGiO,SACfxM,IAAjB2P,UAAUnD,KAAkBxI,EAAMwI,QAAKxM,EAE/C,IAGEgE,GAAS4c,EAEX,IADA5c,EAAM4c,OAAS3R,EAASysC,EAAO,MAC1BlvC,EAAI,EAAGA,EAAIoU,EAAOriB,OAAQiO,IAE7ByC,GADAgF,EAAQ2M,EAAOpU,IACF,IAAMxI,EAAMiQ,EAAM,IAInC,OAAOjQ,CACT,GAGF+2C,EAAOD,QAAUkZ,+BCnHjB,IAAIrV,EAAW,EAAQ,MAIvB5D,EAAOD,QAAU,WACf,IAAI6L,EAAOhI,EAASv/C,MAChBgxB,EAAS,GASb,OARIu2B,EAAKgO,aAAYvkC,GAAU,KAC3Bu2B,EAAK7rD,SAAQs1B,GAAU,KACvBu2B,EAAKiO,aAAYxkC,GAAU,KAC3Bu2B,EAAK+N,YAAWtkC,GAAU,KAC1Bu2B,EAAKkO,SAAQzkC,GAAU,KACvBu2B,EAAK5K,UAAS3rB,GAAU,KACxBu2B,EAAKmO,cAAa1kC,GAAU,KAC5Bu2B,EAAK4N,SAAQnkC,GAAU,KACpBA,CACT,kBCjBA,IAAIrxB,EAAO,EAAQ,MACfghD,EAAS,EAAQ,MACjB/D,EAAgB,EAAQ,MACxB+Y,EAAc,EAAQ,MAEtB3P,EAAkB9W,OAAOhlC,UAE7ByxC,EAAOD,QAAU,SAAUyY,GACzB,IAAI1N,EAAQ0N,EAAE1N,MACd,YAAiB7lD,IAAV6lD,GAAyB,UAAWT,GAAqBrF,EAAOwT,EAAG,WAAYvX,EAAcoJ,EAAiBmO,GAC1F1N,EAAvB9mD,EAAKg2D,EAAaxB,EACxB,kBCXA,IAAI7V,EAAQ,EAAQ,MAIhBsX,EAHS,EAAQ,MAGA1mB,OAEjB4lB,EAAgBxW,GAAM,WACxB,IAAIkI,EAAKoP,EAAQ,IAAK,KAEtB,OADApP,EAAGxQ,UAAY,EACW,MAAnBwQ,EAAG1G,KAAK,OACjB,IAII+V,EAAgBf,GAAiBxW,GAAM,WACzC,OAAQsX,EAAQ,IAAK,KAAKT,MAC5B,IAEIJ,EAAeD,GAAiBxW,GAAM,WAExC,IAAIkI,EAAKoP,EAAQ,KAAM,MAEvB,OADApP,EAAGxQ,UAAY,EACU,MAAlBwQ,EAAG1G,KAAK,MACjB,IAEAnE,EAAOD,QAAU,CACfqZ,aAAcA,EACdc,cAAeA,EACff,cAAeA,mBC5BjB,IAAIxW,EAAQ,EAAQ,MAIhBsX,EAHS,EAAQ,MAGA1mB,OAErByM,EAAOD,QAAU4C,GAAM,WACrB,IAAIkI,EAAKoP,EAAQ,IAAK,KACtB,QAASpP,EAAGiP,QAAUjP,EAAG1G,KAAK,OAAsB,MAAb0G,EAAGC,MAC5C,oBCTA,IAAInI,EAAQ,EAAQ,MAIhBsX,EAHS,EAAQ,MAGA1mB,OAErByM,EAAOD,QAAU4C,GAAM,WACrB,IAAIkI,EAAKoP,EAAQ,UAAW,KAC5B,MAAiC,MAA1BpP,EAAG1G,KAAK,KAAKt+B,OAAOrV,GACI,OAA7B,IAAIyM,QAAQ4tC,EAAI,QACpB,oBCVA,IAAIuB,EAAoB,EAAQ,MAE5BhM,EAAaC,UAIjBL,EAAOD,QAAU,SAAUmB,GACzB,GAAIkL,EAAkBlL,GAAK,MAAMd,EAAW,wBAA0Bc,GACtE,OAAOA,CACT,+BCRA,IAAIiI,EAAa,EAAQ,MACrBjE,EAAuB,EAAQ,MAC/BxE,EAAkB,EAAQ,MAC1BmC,EAAc,EAAQ,MAEtBuH,EAAU1J,EAAgB,WAE9BV,EAAOD,QAAU,SAAUoa,GACzB,IAAIC,EAAcjR,EAAWgR,GACzBllD,EAAiBiwC,EAAqBE,EAEtCvC,GAAeuX,IAAgBA,EAAYhQ,IAC7Cn1C,EAAemlD,EAAahQ,EAAS,CACnCl1C,cAAc,EACdtQ,IAAK,WAAc,OAAOP,IAAM,GAGtC,kBClBA,IAAI4Q,EAAiB,UACjB+vC,EAAS,EAAQ,MAGjBN,EAFkB,EAAQ,KAEVhE,CAAgB,eAEpCV,EAAOD,QAAU,SAAUprC,EAAQ0lD,EAAKvQ,GAClCn1C,IAAWm1C,IAAQn1C,EAASA,EAAOpG,WACnCoG,IAAWqwC,EAAOrwC,EAAQ+vC,IAC5BzvC,EAAeN,EAAQ+vC,EAAe,CAAExvC,cAAc,EAAM3P,MAAO80D,GAEvE,kBCXA,IAAI1M,EAAS,EAAQ,MACjBpkD,EAAM,EAAQ,MAEd6K,EAAOu5C,EAAO,QAElB3N,EAAOD,QAAU,SAAUz6C,GACzB,OAAO8O,EAAK9O,KAAS8O,EAAK9O,GAAOiE,EAAIjE,GACvC,kBCPA,IAAIvF,EAAS,EAAQ,MACjBgmD,EAAuB,EAAQ,MAE/BuU,EAAS,qBACT/M,EAAQxtD,EAAOu6D,IAAWvU,EAAqBuU,EAAQ,CAAC,GAE5Dta,EAAOD,QAAUwN,kBCNjB,IAAIuD,EAAU,EAAQ,MAClBvD,EAAQ,EAAQ,OAEnBvN,EAAOD,QAAU,SAAUz6C,EAAKC,GAC/B,OAAOgoD,EAAMjoD,KAASioD,EAAMjoD,QAAiBL,IAAVM,EAAsBA,EAAQ,CAAC,EACpE,GAAG,WAAY,IAAItC,KAAK,CACtB6lD,QAAS,SACTrQ,KAAMqY,EAAU,OAAS,SACzByJ,UAAW,4CACXC,QAAS,2DACT3lD,OAAQ,wDCVV,IAAI+uC,EAAW,EAAQ,MACnB6W,EAAe,EAAQ,MACvBrO,EAAoB,EAAQ,MAG5BhC,EAFkB,EAAQ,KAEhB1J,CAAgB,WAI9BV,EAAOD,QAAU,SAAU+B,EAAG4Y,GAC5B,IACI3Z,EADAgT,EAAInQ,EAAS9B,GAAGllC,YAEpB,YAAa3X,IAAN8uD,GAAmB3H,EAAkBrL,EAAI6C,EAASmQ,GAAG3J,IAAYsQ,EAAqBD,EAAa1Z,EAC5G,kBCbA,IAAIiC,EAAc,EAAQ,MACtB2X,EAAsB,EAAQ,MAC9Bv7C,EAAW,EAAQ,MACnBw7C,EAAyB,EAAQ,MAEjC9Z,EAASkC,EAAY,GAAGlC,QACxB+Z,EAAa7X,EAAY,GAAG6X,YAC5BtW,EAAcvB,EAAY,GAAGh0C,OAE7BuzC,EAAe,SAAUuY,GAC3B,OAAO,SAAUrY,EAAO/U,GACtB,IAGIoM,EAAOihB,EAHPha,EAAI3hC,EAASw7C,EAAuBnY,IACpC1uB,EAAW4mC,EAAoBjtB,GAC/BvmC,EAAO45C,EAAEv9C,OAEb,OAAIuwB,EAAW,GAAKA,GAAY5sB,EAAa2zD,EAAoB,QAAK71D,GACtE60C,EAAQ+gB,EAAW9Z,EAAGhtB,IACP,OAAU+lB,EAAQ,OAAU/lB,EAAW,IAAM5sB,IACtD4zD,EAASF,EAAW9Z,EAAGhtB,EAAW,IAAM,OAAUgnC,EAAS,MAC3DD,EACEha,EAAOC,EAAGhtB,GACV+lB,EACFghB,EACEvW,EAAYxD,EAAGhtB,EAAUA,EAAW,GACVgnC,EAAS,OAAlCjhB,EAAQ,OAAU,IAA0B,KACvD,CACF,EAEAkG,EAAOD,QAAU,CAGfib,OAAQzY,GAAa,GAGrBzB,OAAQyB,GAAa,iCChCvB,IAAIS,EAAc,EAAQ,MAEtBiY,EAAS,WASTC,EAAgB,eAChBC,EAAkB,yBAClBC,EAAiB,kDAGjBC,EAAcC,WACdnX,EAAOnB,EAAYmY,EAAgBhX,MACnClU,EAAQxnC,KAAKwnC,MACbsrB,EAAe9a,OAAO8a,aACtBV,EAAa7X,EAAY,GAAG6X,YAC5BzsD,EAAO40C,EAAY,GAAG50C,MACtBnL,EAAO+/C,EAAY,GAAG//C,MACtBga,EAAU+lC,EAAY,GAAG/lC,SACzB9b,EAAQ6hD,EAAY,GAAG7hD,OACvBmY,EAAc0pC,EAAY,GAAG1pC,aAoC7BkiD,EAAe,SAAUC,GAG3B,OAAOA,EAAQ,GAAK,IAAMA,EAAQ,GACpC,EAMIC,EAAQ,SAAUlzD,EAAOmzD,EAAWC,GACtC,IAAI/gB,EAAI,EAGR,IAFAryC,EAAQozD,EAAY3rB,EAAMznC,EAlEjB,KAkEiCA,GAAS,EACnDA,GAASynC,EAAMznC,EAAQmzD,GAChBnzD,EAAQqzD,KACbrzD,EAAQynC,EAAMznC,EA9DEszD,IA+DhBjhB,GA1EO,GA4ET,OAAO5K,EAAM4K,EAAI,GAAsBryC,GAASA,EAzEvC,IA0EX,EAMIuzD,EAAS,SAAU91B,GACrB,IAAI+1B,EAAS,GAGb/1B,EAxDe,SAAUipB,GAIzB,IAHA,IAAI8M,EAAS,GACTC,EAAU,EACVz4D,EAAS0rD,EAAO1rD,OACby4D,EAAUz4D,GAAQ,CACvB,IAAI+B,EAAQs1D,EAAW3L,EAAQ+M,KAC/B,GAAI12D,GAAS,OAAUA,GAAS,OAAU02D,EAAUz4D,EAAQ,CAE1D,IAAI04D,EAAQrB,EAAW3L,EAAQ+M,KACP,QAAX,MAARC,GACHj5D,EAAK+4D,IAAkB,KAARz2D,IAAkB,KAAe,KAAR22D,GAAiB,QAIzDj5D,EAAK+4D,EAAQz2D,GACb02D,IAEJ,MACEh5D,EAAK+4D,EAAQz2D,EAEjB,CACA,OAAOy2D,CACT,CAkCUG,CAAWl2B,GAGnB,IAMIx0B,EAAG2qD,EANHC,EAAcp2B,EAAMziC,OAGpBwV,EAvFS,IAwFTxQ,EAAQ,EACR8zD,EA1FY,GA8FhB,IAAK7qD,EAAI,EAAGA,EAAIw0B,EAAMziC,OAAQiO,KAC5B2qD,EAAen2B,EAAMx0B,IACF,KACjBxO,EAAK+4D,EAAQT,EAAaa,IAI9B,IAAIG,EAAcP,EAAOx4D,OACrBg5D,EAAiBD,EAQrB,IALIA,GACFt5D,EAAK+4D,EAxGO,KA4GPQ,EAAiBH,GAAa,CAEnC,IAAI3kC,EAAIujC,EACR,IAAKxpD,EAAI,EAAGA,EAAIw0B,EAAMziC,OAAQiO,KAC5B2qD,EAAen2B,EAAMx0B,KACDuH,GAAKojD,EAAe1kC,IACtCA,EAAI0kC,GAKR,IAAIK,EAAwBD,EAAiB,EAC7C,GAAI9kC,EAAI1e,EAAIi3B,GAAOgrB,EAASzyD,GAASi0D,GACnC,MAAMpB,EAAYD,GAMpB,IAHA5yD,IAAUkvB,EAAI1e,GAAKyjD,EACnBzjD,EAAI0e,EAECjmB,EAAI,EAAGA,EAAIw0B,EAAMziC,OAAQiO,IAAK,CAEjC,IADA2qD,EAAen2B,EAAMx0B,IACFuH,KAAOxQ,EAAQyyD,EAChC,MAAMI,EAAYD,GAEpB,GAAIgB,GAAgBpjD,EAAG,CAIrB,IAFA,IAAI0jD,EAAIl0D,EACJqyC,EA9ID,KA+IU,CACX,IAAI8hB,EAAI9hB,GAAKyhB,EA/IZ,EA+I2BzhB,GAAKyhB,EA9IhC,MA8IqDzhB,EAAIyhB,EAC1D,GAAII,EAAIC,EAAG,MACX,IAAIC,EAAUF,EAAIC,EACdE,EAnJH,GAmJuBF,EACxB15D,EAAK+4D,EAAQT,EAAaC,EAAamB,EAAIC,EAAUC,KACrDH,EAAIzsB,EAAM2sB,EAAUC,GACpBhiB,GAtJC,EAuJH,CAEA53C,EAAK+4D,EAAQT,EAAaC,EAAakB,KACvCJ,EAAOZ,EAAMlzD,EAAOi0D,EAAuBD,GAAkBD,GAC7D/zD,EAAQ,EACRg0D,GACF,CACF,CAEAh0D,IACAwQ,GACF,CACA,OAAO5K,EAAK4tD,EAAQ,GACtB,EAEAhc,EAAOD,QAAU,SAAU9Z,GACzB,IAEIx0B,EAAGy0B,EAFH42B,EAAU,GACVld,EAASz+C,EAAM8b,EAAQ3D,EAAY2sB,GAAQk1B,EAAiB,KAAW,KAE3E,IAAK1pD,EAAI,EAAGA,EAAImuC,EAAOp8C,OAAQiO,IAC7By0B,EAAQ0Z,EAAOnuC,GACfxO,EAAK65D,EAAS3Y,EAAK+W,EAAeh1B,GAAS,OAAS61B,EAAO71B,GAASA,GAEtE,OAAO93B,EAAK0uD,EAAS,IACvB,kBCpLA,IAAI5L,EAAuB,eACvBvO,EAAQ,EAAQ,MAChBoa,EAAc,EAAQ,MAM1B/c,EAAOD,QAAU,SAAU6C,GACzB,OAAOD,GAAM,WACX,QAASoa,EAAYna,MANf,cAOGA,MACHsO,GAAwB6L,EAAYna,GAAar+C,OAASq+C,CAClE,GACF,kBCdA,IAAII,EAAc,EAAQ,MACtB4X,EAAyB,EAAQ,MACjCx7C,EAAW,EAAQ,MACnB29C,EAAc,EAAQ,MAEtB9/C,EAAU+lC,EAAY,GAAG/lC,SACzB+/C,EAAa,IAAMD,EAAc,IACjCE,EAAQ1pB,OAAO,IAAMypB,EAAaA,EAAa,KAC/CE,EAAQ3pB,OAAOypB,EAAaA,EAAa,MAGzCza,EAAe,SAAU8L,GAC3B,OAAO,SAAU5L,GACf,IAAIyM,EAAS9vC,EAASw7C,EAAuBnY,IAG7C,OAFW,EAAP4L,IAAUa,EAASjyC,EAAQiyC,EAAQ+N,EAAO,KACnC,EAAP5O,IAAUa,EAASjyC,EAAQiyC,EAAQgO,EAAO,KACvChO,CACT,CACF,EAEAlP,EAAOD,QAAU,CAGf/5C,MAAOu8C,EAAa,GAGpB5tB,IAAK4tB,EAAa,GAGlBr4C,KAAMq4C,EAAa,oBC5BrB,IAAI+U,EAAa,EAAQ,MACrB3U,EAAQ,EAAQ,MAGpB3C,EAAOD,UAAY16C,OAAOgP,wBAA0BsuC,GAAM,WACxD,IAAI8R,EAASC,SAGb,OAAQjU,OAAOgU,MAAapvD,OAAOovD,aAAmBC,UAEnDA,OAAOxK,MAAQoN,GAAcA,EAAa,EAC/C,mBCZA,IAuBI6F,EAAWzyD,EAAO0yD,EAASC,EAvB3Bt9D,EAAS,EAAQ,MACjBkP,EAAQ,EAAQ,MAChBtJ,EAAO,EAAQ,MACfu6C,EAAa,EAAQ,KACrB8E,EAAS,EAAQ,MACjBrC,EAAQ,EAAQ,MAChBhnB,EAAO,EAAQ,KACfsnB,EAAa,EAAQ,KACrBj5C,EAAgB,EAAQ,KACxBszD,EAA0B,EAAQ,MAClCpK,EAAS,EAAQ,MACjBtK,EAAU,EAAQ,MAElBjkD,EAAM5E,EAAOw9D,aACbC,EAAQz9D,EAAO09D,eACfvU,EAAUnpD,EAAOmpD,QACjBwU,EAAW39D,EAAO29D,SAClBjS,EAAW1rD,EAAO0rD,SAClBkS,EAAiB59D,EAAO49D,eACxBld,EAAS1gD,EAAO0gD,OAChBwb,EAAU,EACVvzC,EAAQ,CAAC,EACTk1C,EAAqB,qBAGzB,IAEET,EAAYp9D,EAAOulB,QACS,CAA5B,MAAOhU,GAAqB,CAE9B,IAAIusD,EAAM,SAAUC,GAClB,GAAI9Y,EAAOt8B,EAAOo1C,GAAK,CACrB,IAAI9nD,EAAK0S,EAAMo1C,UACRp1C,EAAMo1C,GACb9nD,GACF,CACF,EAEI+nD,EAAS,SAAUD,GACrB,OAAO,WACLD,EAAIC,EACN,CACF,EAEIE,EAAW,SAAUvnD,GACvBonD,EAAIpnD,EAAM+gB,KACZ,EAEIymC,EAAO,SAAUH,GAEnB/9D,EAAOm+D,YAAYzd,EAAOqd,GAAKX,EAAUz0B,SAAW,KAAOy0B,EAAU1qD,KACvE,EAGK9N,GAAQ64D,IACX74D,EAAM,SAAsBurB,GAC1BotC,EAAwB1oD,UAAUpR,OAAQ,GAC1C,IAAIwS,EAAKkqC,EAAWhwB,GAAWA,EAAUu7B,EAASv7B,GAC9C4F,EAAOmtB,EAAWruC,UAAW,GAKjC,OAJA8T,IAAQuzC,GAAW,WACjBhtD,EAAM+G,OAAI/Q,EAAW6wB,EACvB,EACAprB,EAAMuxD,GACCA,CACT,EACAuB,EAAQ,SAAwBM,UACvBp1C,EAAMo1C,EACf,EAEIlV,EACFl+C,EAAQ,SAAUozD,GAChB5U,EAAQyK,SAASoK,EAAOD,GAC1B,EAESJ,GAAYA,EAASS,IAC9BzzD,EAAQ,SAAUozD,GAChBJ,EAASS,IAAIJ,EAAOD,GACtB,EAGSH,IAAmBzK,GAE5BmK,GADAD,EAAU,IAAIO,GACCS,MACfhB,EAAQiB,MAAMC,UAAYN,EAC1BtzD,EAAQ/E,EAAK03D,EAAKa,YAAab,IAI/Bt9D,EAAO2B,kBACPw+C,EAAWngD,EAAOm+D,eACjBn+D,EAAOw+D,eACRpB,GAAoC,UAAvBA,EAAUz0B,WACtBia,EAAMsb,IAEPvzD,EAAQuzD,EACRl+D,EAAO2B,iBAAiB,UAAWs8D,GAAU,IAG7CtzD,EADSkzD,KAAsB5zD,EAAc,UACrC,SAAU8zD,GAChBniC,EAAKsY,YAAYjqC,EAAc,WAA6B,mBAAI,WAC9D2xB,EAAK6iC,YAAYn6D,MACjBw5D,EAAIC,EACN,CACF,EAGQ,SAAUA,GAChBlyD,WAAWmyD,EAAOD,GAAK,EACzB,GAIJ9d,EAAOD,QAAU,CACfp7C,IAAKA,EACL64D,MAAOA,mBClHT,IAAI7C,EAAsB,EAAQ,MAE9B95C,EAAMpY,KAAKoY,IACXb,EAAMvX,KAAKuX,IAKfggC,EAAOD,QAAU,SAAUt8C,EAAOD,GAChC,IAAIi7D,EAAU9D,EAAoBl3D,GAClC,OAAOg7D,EAAU,EAAI59C,EAAI49C,EAAUj7D,EAAQ,GAAKwc,EAAIy+C,EAASj7D,EAC/D,kBCVA,IAAI6wD,EAAgB,EAAQ,MACxBuG,EAAyB,EAAQ,MAErC5a,EAAOD,QAAU,SAAUmB,GACzB,OAAOmT,EAAcuG,EAAuB1Z,GAC9C,kBCNA,IAAI2R,EAAQ,EAAQ,MAIpB7S,EAAOD,QAAU,SAAUO,GACzB,IAAIoe,GAAUpe,EAEd,OAAOoe,GAAWA,GAAqB,IAAXA,EAAe,EAAI7L,EAAM6L,EACvD,kBCRA,IAAI/D,EAAsB,EAAQ,MAE9B36C,EAAMvX,KAAKuX,IAIfggC,EAAOD,QAAU,SAAUO,GACzB,OAAOA,EAAW,EAAItgC,EAAI26C,EAAoBra,GAAW,kBAAoB,CAC/E,kBCRA,IAAIsa,EAAyB,EAAQ,MAEjCjW,EAAUt/C,OAId26C,EAAOD,QAAU,SAAUO,GACzB,OAAOqE,EAAQiW,EAAuBta,GACxC,kBCRA,IAAIt8C,EAAO,EAAQ,MACfo9C,EAAW,EAAQ,KACnBud,EAAW,EAAQ,MACnBxS,EAAY,EAAQ,MACpByS,EAAsB,EAAQ,MAC9Ble,EAAkB,EAAQ,MAE1BN,EAAaC,UACbwe,EAAene,EAAgB,eAInCV,EAAOD,QAAU,SAAU9Z,EAAOgxB,GAChC,IAAK7V,EAASnb,IAAU04B,EAAS14B,GAAQ,OAAOA,EAChD,IACI5Q,EADAypC,EAAe3S,EAAUlmB,EAAO44B,GAEpC,GAAIC,EAAc,CAGhB,QAFa75D,IAATgyD,IAAoBA,EAAO,WAC/B5hC,EAASrxB,EAAK86D,EAAc74B,EAAOgxB,IAC9B7V,EAAS/rB,IAAWspC,EAAStpC,GAAS,OAAOA,EAClD,MAAM+qB,EAAW,0CACnB,CAEA,YADan7C,IAATgyD,IAAoBA,EAAO,UACxB2H,EAAoB34B,EAAOgxB,EACpC,kBCxBA,IAAI8H,EAAc,EAAQ,MACtBJ,EAAW,EAAQ,MAIvB3e,EAAOD,QAAU,SAAUO,GACzB,IAAIh7C,EAAMy5D,EAAYze,EAAU,UAChC,OAAOqe,EAASr5D,GAAOA,EAAMA,EAAM,EACrC,kBCRA,IAGI8K,EAAO,CAAC,EAEZA,EALsB,EAAQ,KAEVswC,CAAgB,gBAGd,IAEtBV,EAAOD,QAA2B,eAAjBU,OAAOrwC,mBCPxB,IAAI64C,EAAU,EAAQ,KAElBzI,EAAUC,OAEdT,EAAOD,QAAU,SAAUO,GACzB,GAA0B,WAAtB2I,EAAQ3I,GAAwB,MAAMD,UAAU,6CACpD,OAAOG,EAAQF,EACjB,YCPA,IAAIE,EAAUC,OAEdT,EAAOD,QAAU,SAAUO,GACzB,IACE,OAAOE,EAAQF,EAGjB,CAFE,MAAOhvC,GACP,MAAO,QACT,CACF,kBCRA,IAAI0xC,EAAc,EAAQ,MAEtB8a,EAAK,EACLkB,EAAUv2D,KAAKw2D,SACf7/C,EAAW4jC,EAAY,GAAI5jC,UAE/B4gC,EAAOD,QAAU,SAAUz6C,GACzB,MAAO,gBAAqBL,IAARK,EAAoB,GAAKA,GAAO,KAAO8Z,IAAW0+C,EAAKkB,EAAS,GACtF,kBCRA,IAAIrc,EAAQ,EAAQ,MAChBjC,EAAkB,EAAQ,MAC1BoQ,EAAU,EAAQ,MAElB/M,EAAWrD,EAAgB,YAE/BV,EAAOD,SAAW4C,GAAM,WAEtB,IAAIn4C,EAAM,IAAIgpC,IAAI,gBAAiB,YAC/BC,EAAejpC,EAAIipC,aACnBpe,EAAS,GAMb,OALA7qB,EAAIgsC,SAAW,QACf/C,EAAapgC,SAAQ,SAAU9N,EAAOD,GACpCmuC,EAAqB,OAAE,KACvBpe,GAAU/vB,EAAMC,CAClB,IACQurD,IAAYtmD,EAAI00D,SAClBzrB,EAAalgC,MACD,2BAAb/I,EAAIunC,MACsB,MAA1B0B,EAAa7uC,IAAI,MACuB,QAAxC67C,OAAO,IAAI/M,gBAAgB,WAC1BD,EAAasQ,IAEsB,MAApC,IAAIvQ,IAAI,eAAe2rB,UACsC,MAA7D,IAAIzrB,gBAAgB,IAAIA,gBAAgB,QAAQ9uC,IAAI,MAEpB,eAAhC,IAAI4uC,IAAI,eAAe/gC,MAEQ,YAA/B,IAAI+gC,IAAI,cAAc1wB,MAEX,SAAXuS,GAEwC,MAAxC,IAAIme,IAAI,gBAAYvuC,GAAWwN,IACtC,oBChCA,IAAI2sD,EAAgB,EAAQ,MAE5Bpf,EAAOD,QAAUqf,IACX1K,OAAOxK,MACkB,iBAAnBwK,OAAOvS,yBCLnB,IAAIU,EAAc,EAAQ,MACtBF,EAAQ,EAAQ,MAIpB3C,EAAOD,QAAU8C,GAAeF,GAAM,WAEpC,OAGgB,IAHTt9C,OAAO4P,gBAAe,WAA0B,GAAG,YAAa,CACrE1P,MAAO,GACP4P,UAAU,IACT5G,SACL,cCXA,IAAI6xC,EAAaC,UAEjBL,EAAOD,QAAU,SAAUsf,EAAQC,GACjC,GAAID,EAASC,EAAU,MAAMlf,EAAW,wBACxC,OAAOif,CACT,kBCLA,IAAIt/D,EAAS,EAAQ,MACjBmgD,EAAa,EAAQ,KAErB6N,EAAUhuD,EAAOguD,QAErB/N,EAAOD,QAAUG,EAAW6N,IAAY,cAAc39C,KAAKqwC,OAAOsN,oBCLlE,IAAIhuD,EAAS,EAAQ,MACjB4tD,EAAS,EAAQ,MACjB3I,EAAS,EAAQ,MACjBz7C,EAAM,EAAQ,MACd61D,EAAgB,EAAQ,MACxB/P,EAAoB,EAAQ,MAE5BkQ,EAAwB5R,EAAO,OAC/B+G,EAAS30D,EAAO20D,OAChB8K,EAAY9K,GAAUA,EAAY,IAClC+K,EAAwBpQ,EAAoBqF,EAASA,GAAUA,EAAOgL,eAAiBn2D,EAE3Fy2C,EAAOD,QAAU,SAAUx7C,GACzB,IAAKygD,EAAOua,EAAuBh7D,KAAW66D,GAAuD,iBAA/BG,EAAsBh7D,GAAoB,CAC9G,IAAIo7D,EAAc,UAAYp7D,EAC1B66D,GAAiBpa,EAAO0P,EAAQnwD,GAClCg7D,EAAsBh7D,GAAQmwD,EAAOnwD,GAErCg7D,EAAsBh7D,GADb8qD,GAAqBmQ,EACAA,EAAUG,GAEVF,EAAsBE,EAExD,CAAE,OAAOJ,EAAsBh7D,EACjC,YCtBAy7C,EAAOD,QAAU,6ECAjB,IAAI8Q,EAAI,EAAQ,MACZ+O,EAAY,iBACZjd,EAAQ,EAAQ,MAChBkd,EAAmB,EAAQ,MAS/BhP,EAAE,CAAEl8C,OAAQ,QAASw9C,OAAO,EAAMlI,OANXtH,GAAM,WAC3B,OAAQl5C,MAAM,GAAGrI,UACnB,KAI8D,CAC5DA,SAAU,SAAkBoD,GAC1B,OAAOo7D,EAAUv7D,KAAMG,EAAIoQ,UAAUpR,OAAS,EAAIoR,UAAU,QAAK3P,EACnE,IAIF46D,EAAiB,yCCnBjB,IAAIxd,EAAkB,EAAQ,MAC1Bwd,EAAmB,EAAQ,MAC3BxT,EAAY,EAAQ,MACpBkG,EAAsB,EAAQ,MAC9Bt9C,EAAiB,UACjB6qD,EAAiB,EAAQ,MACzBC,EAAyB,EAAQ,MACjCjP,EAAU,EAAQ,MAClBjO,EAAc,EAAQ,MAEtBmd,EAAiB,iBACjBC,EAAmB1N,EAAoB5tD,IACvC8tD,EAAmBF,EAAoBnE,UAAU4R,GAYrDhgB,EAAOD,QAAU+f,EAAer2D,MAAO,SAAS,SAAUy2D,EAAU9P,GAClE6P,EAAiB57D,KAAM,CACrBtC,KAAMi+D,EACNrrD,OAAQ0tC,EAAgB6d,GACxBz8D,MAAO,EACP2sD,KAAMA,GAIV,IAAG,WACD,IAAIpvD,EAAQyxD,EAAiBpuD,MACzBsQ,EAAS3T,EAAM2T,OACfy7C,EAAOpvD,EAAMovD,KACb3sD,EAAQzC,EAAMyC,QAClB,OAAKkR,GAAUlR,GAASkR,EAAOnR,QAC7BxC,EAAM2T,YAAS1P,EACR86D,OAAuB96D,GAAW,IAEhB86D,EAAf,QAAR3P,EAA8C3sD,EACtC,UAAR2sD,EAAgDz7C,EAAOlR,GAC7B,CAACA,EAAOkR,EAAOlR,KAFY,EAG3D,GAAG,UAKH,IAAIyuD,EAAS7F,EAAU8T,UAAY9T,EAAU5iD,MAQ7C,GALAo2D,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAGZ/O,GAAWjO,GAA+B,WAAhBqP,EAAO3tD,KAAmB,IACvD0Q,EAAei9C,EAAQ,OAAQ,CAAE3sD,MAAO,UACZ,CAA5B,MAAO+L,GAAqB,+BC5D9B,IAAIu/C,EAAI,EAAQ,MACZxP,EAAW,EAAQ,MACnBG,EAAoB,EAAQ,MAC5B4e,EAAiB,EAAQ,MACzBC,EAA2B,EAAQ,MAGnCC,EAFQ,EAAQ,KAEM3d,EAAM,WAC9B,OAAoD,aAA7C,GAAG1/C,KAAKe,KAAK,CAAER,OAAQ,YAAe,EAC/C,IAII+8D,GAAiC,WACnC,IAEEl7D,OAAO4P,eAAe,GAAI,SAAU,CAAEE,UAAU,IAASlS,MAG3D,CAFE,MAAOqO,GACP,OAAOA,aAAiB+uC,SAC1B,CACF,CAPqC,GAWrCwQ,EAAE,CAAEl8C,OAAQ,QAASw9C,OAAO,EAAMS,MAAO,EAAG3I,OAAQqW,GAAuBC,GAAiC,CAE1Gt9D,KAAM,SAAc8P,GAClB,IAAI+uC,EAAIT,EAASh9C,MACb80B,EAAMqoB,EAAkBM,GACxB0e,EAAW5rD,UAAUpR,OACzB68D,EAAyBlnC,EAAMqnC,GAC/B,IAAK,IAAI/uD,EAAI,EAAGA,EAAI+uD,EAAU/uD,IAC5BqwC,EAAE3oB,GAAOvkB,UAAUnD,GACnB0nB,IAGF,OADAinC,EAAete,EAAG3oB,GACXA,CACT,iCCrCF,IAAI03B,EAAI,EAAQ,MACZ7N,EAAc,EAAQ,MACtBt5C,EAAU,EAAQ,MAElB+2D,EAAgBzd,EAAY,GAAG/pC,SAC/B7I,EAAO,CAAC,EAAG,GAMfygD,EAAE,CAAEl8C,OAAQ,QAASw9C,OAAO,EAAMlI,OAAQxJ,OAAOrwC,KAAUqwC,OAAOrwC,EAAK6I,YAAc,CACnFA,QAAS,WAGP,OADIvP,EAAQrF,QAAOA,KAAKb,OAASa,KAAKb,QAC/Bi9D,EAAcp8D,KACvB,iCChBF,IAAIwsD,EAAI,EAAQ,MACZ7N,EAAc,EAAQ,MACtB2I,EAAY,EAAQ,MACpBtK,EAAW,EAAQ,MACnBG,EAAoB,EAAQ,MAC5Bkf,EAAwB,EAAQ,MAChCthD,EAAW,EAAQ,MACnBujC,EAAQ,EAAQ,MAChBge,EAAe,EAAQ,MACvBC,EAAsB,EAAQ,MAC9BC,EAAK,EAAQ,MACbC,EAAa,EAAQ,KACrBC,EAAK,EAAQ,MACbC,EAAS,EAAQ,MAEjB5wD,EAAO,GACP6wD,EAAaje,EAAY5yC,EAAKmD,MAC9BtQ,EAAO+/C,EAAY5yC,EAAKnN,MAGxBi+D,EAAqBve,GAAM,WAC7BvyC,EAAKmD,UAAKtO,EACZ,IAEIk8D,EAAgBxe,GAAM,WACxBvyC,EAAKmD,KAAK,KACZ,IAEI6tD,EAAgBR,EAAoB,QAEpCS,GAAe1e,GAAM,WAEvB,GAAIoe,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACIM,EAAM1M,EAAKrvD,EAAO9B,EADlB4xB,EAAS,GAIb,IAAKisC,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFA1M,EAAMnU,OAAO8a,aAAa+F,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI/7D,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAK9B,EAAQ,EAAGA,EAAQ,GAAIA,IAC1B2M,EAAKnN,KAAK,CAAE43C,EAAG+Z,EAAMnxD,EAAO09B,EAAG57B,GAEnC,CAIA,IAFA6K,EAAKmD,MAAK,SAAU/C,EAAGC,GAAK,OAAOA,EAAE0wB,EAAI3wB,EAAE2wB,CAAG,IAEzC19B,EAAQ,EAAGA,EAAQ2M,EAAK5M,OAAQC,IACnCmxD,EAAMxkD,EAAK3M,GAAOo3C,EAAEiG,OAAO,GACvBzrB,EAAOyrB,OAAOzrB,EAAO7xB,OAAS,KAAOoxD,IAAKv/B,GAAUu/B,GAG1D,MAAkB,gBAAXv/B,CA7BiB,CA8B1B,IAeAw7B,EAAE,CAAEl8C,OAAQ,QAASw9C,OAAO,EAAMlI,OAbrBiX,IAAuBC,IAAkBC,IAAkBC,GAapB,CAClD9tD,KAAM,SAAc6vC,QACAn+C,IAAdm+C,GAAyBuI,EAAUvI,GAEvC,IAAID,EAAQ9B,EAASh9C,MAErB,GAAIg9D,EAAa,YAAqBp8D,IAAdm+C,EAA0B6d,EAAW9d,GAAS8d,EAAW9d,EAAOC,GAExF,IAEIme,EAAa99D,EAFb6rB,EAAQ,GACRkyC,EAAchgB,EAAkB2B,GAGpC,IAAK1/C,EAAQ,EAAGA,EAAQ+9D,EAAa/9D,IAC/BA,KAAS0/C,GAAOlgD,EAAKqsB,EAAO6zB,EAAM1/C,IAQxC,IALAk9D,EAAarxC,EA3BI,SAAU8zB,GAC7B,OAAO,SAAUh/C,EAAGiE,GAClB,YAAUpD,IAANoD,GAAyB,OACnBpD,IAANb,EAAwB,OACVa,IAAdm+C,GAAiCA,EAAUh/C,EAAGiE,IAAM,EACjD+W,EAAShb,GAAKgb,EAAS/W,GAAK,GAAK,CAC1C,CACF,CAoBwBo5D,CAAere,IAEnCme,EAAc/f,EAAkBlyB,GAChC7rB,EAAQ,EAEDA,EAAQ89D,GAAape,EAAM1/C,GAAS6rB,EAAM7rB,KACjD,KAAOA,EAAQ+9D,GAAad,EAAsBvd,EAAO1/C,KAEzD,OAAO0/C,CACT,gCCvGF,IAAI0N,EAAI,EAAQ,MACZxP,EAAW,EAAQ,MACnBG,EAAoB,EAAQ,MAC5B4e,EAAiB,EAAQ,MACzBM,EAAwB,EAAQ,MAChCL,EAA2B,EAAQ,MAGnCqB,EAAqC,IAAlB,GAAGxyD,QAAQ,GAG9BqxD,GAAiC,WACnC,IAEEl7D,OAAO4P,eAAe,GAAI,SAAU,CAAEE,UAAU,IAASjG,SAG3D,CAFE,MAAOoC,GACP,OAAOA,aAAiB+uC,SAC1B,CACF,CAPqC,GAWrCwQ,EAAE,CAAEl8C,OAAQ,QAASw9C,OAAO,EAAMS,MAAO,EAAG3I,OAAQyX,GAAoBnB,GAAiC,CAEvGrxD,QAAS,SAAiB6D,GACxB,IAAI+uC,EAAIT,EAASh9C,MACb80B,EAAMqoB,EAAkBM,GACxB0e,EAAW5rD,UAAUpR,OACzB,GAAIg9D,EAAU,CACZH,EAAyBlnC,EAAMqnC,GAE/B,IADA,IAAI3lB,EAAI1hB,EACD0hB,KAAK,CACV,IAAI8mB,EAAK9mB,EAAI2lB,EACT3lB,KAAKiH,EAAGA,EAAE6f,GAAM7f,EAAEjH,GACjB6lB,EAAsB5e,EAAG6f,EAChC,CACA,IAAK,IAAIpe,EAAI,EAAGA,EAAIid,EAAUjd,IAC5BzB,EAAEyB,GAAK3uC,UAAU2uC,EAErB,CAAE,OAAO6c,EAAete,EAAG3oB,EAAMqnC,EACnC,gCCxCF,IAAI3P,EAAI,EAAQ,MACZ7sD,EAAO,EAAQ,MACf2nD,EAAY,EAAQ,MACpBiW,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,KAKtBjR,EAAE,CAAEl8C,OAAQ,UAAWo1C,MAAM,EAAME,OAJO,EAAQ,MAIgC,CAChF7W,IAAK,SAAasc,GAChB,IAAIqE,EAAI1vD,KACJ09D,EAAaH,EAA2Bxc,EAAE2O,GAC1Cv7B,EAAUupC,EAAWvpC,QACrBma,EAASovB,EAAWpvB,OACpBtd,EAASwsC,GAAQ,WACnB,IAAIG,EAAkBrW,EAAUoI,EAAEv7B,SAC9B05B,EAAS,GACT+J,EAAU,EACVgG,EAAY,EAChBH,EAAQpS,GAAU,SAAUsD,GAC1B,IAAIvvD,EAAQw4D,IACRiG,GAAgB,EACpBD,IACAj+D,EAAKg+D,EAAiBjO,EAAGf,GAASj3C,MAAK,SAAUxW,GAC3C28D,IACJA,GAAgB,EAChBhQ,EAAOzuD,GAAS8B,IACd08D,GAAazpC,EAAQ05B,GACzB,GAAGvf,EACL,MACEsvB,GAAazpC,EAAQ05B,EACzB,IAEA,OADI78B,EAAO/jB,OAAOqhC,EAAOtd,EAAO9vB,OACzBw8D,EAAW/O,OACpB,iCCpCF,IAAInC,EAAI,EAAQ,MACZC,EAAU,EAAQ,MAClB6G,EAA6B,oBAC7BP,EAA2B,EAAQ,MACnCjO,EAAa,EAAQ,MACrBjJ,EAAa,EAAQ,KACrBkG,EAAgB,EAAQ,MAExBmR,EAAyBH,GAA4BA,EAAyB7oD,UAWlF,GAPAsiD,EAAE,CAAEl8C,OAAQ,UAAWw9C,OAAO,EAAMlI,OAAQ0N,EAA4BwK,MAAM,GAAQ,CACpF,MAAS,SAAUC,GACjB,OAAO/9D,KAAK0X,UAAK9W,EAAWm9D,EAC9B,KAIGtR,GAAW5Q,EAAWkX,GAA2B,CACpD,IAAI7kB,EAAS4W,EAAW,WAAW56C,UAAiB,MAChDgpD,EAA8B,QAAMhlB,GACtC6T,EAAcmR,EAAwB,QAAShlB,EAAQ,CAAE0T,QAAQ,GAErE,+BCxBA,IAgDIoc,EAAUC,EAAsCC,EAhDhD1R,EAAI,EAAQ,MACZC,EAAU,EAAQ,MAClBlI,EAAU,EAAQ,MAClB7oD,EAAS,EAAQ,MACjBiE,EAAO,EAAQ,MACfoiD,EAAgB,EAAQ,MACxB8G,EAAiB,EAAQ,MACzBsD,EAAiB,EAAQ,MACzBgS,EAAa,EAAQ,MACrB7W,EAAY,EAAQ,MACpBzL,EAAa,EAAQ,KACrBkB,EAAW,EAAQ,KACnBqhB,EAAa,EAAQ,MACrBC,EAAqB,EAAQ,MAC7B7O,EAAO,WACP8O,EAAY,EAAQ,MACpBC,EAAmB,EAAQ,KAC3Bf,EAAU,EAAQ,MAClBvJ,EAAQ,EAAQ,MAChB/F,EAAsB,EAAQ,MAC9B6E,EAA2B,EAAQ,MACnCyL,EAA8B,EAAQ,MACtCjB,EAA6B,EAAQ,MAErCkB,EAAU,UACVnL,EAA6BkL,EAA4B9K,YACzDN,EAAiCoL,EAA4B7K,gBAC7D+K,EAA6BF,EAA4BrL,YACzDwL,EAA0BzQ,EAAoBnE,UAAU0U,GACxD7C,EAAmB1N,EAAoB5tD,IACvC4yD,EAAyBH,GAA4BA,EAAyB7oD,UAC9E00D,EAAqB7L,EACrB8L,EAAmB3L,EACnBlX,EAAYtgD,EAAOsgD,UACnBh/C,EAAWtB,EAAOsB,SAClB6nD,EAAUnpD,EAAOmpD,QACjB+O,EAAuB2J,EAA2Bxc,EAClD+d,EAA8BlL,EAE9BmL,KAAoB/hE,GAAYA,EAASgiE,aAAetjE,EAAO2N,eAC/D41D,EAAsB,qBAWtBC,EAAa,SAAUriB,GACzB,IAAInlC,EACJ,SAAOqlC,EAASF,KAAOhB,EAAWnkC,EAAOmlC,EAAGnlC,QAAQA,CACtD,EAEIynD,EAAe,SAAUC,EAAUziE,GACrC,IAMIq0B,EAAQtZ,EAAM2nD,EANdn+D,EAAQvE,EAAMuE,MACdktC,EAfU,GAeLzxC,EAAMA,MACXkvB,EAAUuiB,EAAKgxB,EAAShxB,GAAKgxB,EAASE,KACtCnrC,EAAUirC,EAASjrC,QACnBma,EAAS8wB,EAAS9wB,OAClB6gB,EAASiQ,EAASjQ,OAEtB,IACMtjC,GACGuiB,IApBK,IAqBJzxC,EAAM4iE,WAAyBC,EAAkB7iE,GACrDA,EAAM4iE,UAvBA,IAyBQ,IAAZ1zC,EAAkBmF,EAAS9vB,GAEzBiuD,GAAQA,EAAOE,QACnBr+B,EAASnF,EAAQ3qB,GACbiuD,IACFA,EAAOC,OACPiQ,GAAS,IAGTruC,IAAWouC,EAASzQ,QACtBrgB,EAAO0N,EAAU,yBACRtkC,EAAOwnD,EAAWluC,IAC3BrxB,EAAK+X,EAAMsZ,EAAQmD,EAASma,GACvBna,EAAQnD,IACVsd,EAAOptC,EAIhB,CAHE,MAAO+L,GACHkiD,IAAWkQ,GAAQlQ,EAAOC,OAC9B9gB,EAAOrhC,EACT,CACF,EAEIyhD,EAAS,SAAU/xD,EAAO8iE,GACxB9iE,EAAM+iE,WACV/iE,EAAM+iE,UAAW,EACjBpB,GAAU,WAGR,IAFA,IACIc,EADAO,EAAYhjE,EAAMgjE,UAEfP,EAAWO,EAAUp/D,OAC1B4+D,EAAaC,EAAUziE,GAEzBA,EAAM+iE,UAAW,EACbD,IAAa9iE,EAAM4iE,WAAWK,EAAYjjE,EAChD,IACF,EAEI0M,EAAgB,SAAUnJ,EAAMyuD,EAASkR,GAC3C,IAAIztD,EAAOyZ,EACPkzC,IACF3sD,EAAQpV,EAASgiE,YAAY,UACvBrQ,QAAUA,EAChBv8C,EAAMytD,OAASA,EACfztD,EAAM0tD,UAAU5/D,GAAM,GAAO,GAC7BxE,EAAO2N,cAAc+I,IAChBA,EAAQ,CAAEu8C,QAASA,EAASkR,OAAQA,IACtCzM,IAAmCvnC,EAAUnwB,EAAO,KAAOwE,IAAQ2rB,EAAQzZ,GACvElS,IAAS++D,GAAqBV,EAAiB,8BAA+BsB,EACzF,EAEID,EAAc,SAAUjjE,GAC1BgD,EAAK6vD,EAAM9zD,GAAQ,WACjB,IAGIs1B,EAHA29B,EAAUhyD,EAAMitD,OAChB1oD,EAAQvE,EAAMuE,MAGlB,GAFmB6+D,EAAYpjE,KAG7Bq0B,EAASwsC,GAAQ,WACXjZ,EACFM,EAAQmb,KAAK,qBAAsB9+D,EAAOytD,GACrCtlD,EAAc41D,EAAqBtQ,EAASztD,EACrD,IAEAvE,EAAM4iE,UAAYhb,GAAWwb,EAAYpjE,GArF/B,EADF,EAuFJq0B,EAAO/jB,OAAO,MAAM+jB,EAAO9vB,KAEnC,GACF,EAEI6+D,EAAc,SAAUpjE,GAC1B,OA7FY,IA6FLA,EAAM4iE,YAA0B5iE,EAAMq6B,MAC/C,EAEIwoC,EAAoB,SAAU7iE,GAChCgD,EAAK6vD,EAAM9zD,GAAQ,WACjB,IAAIizD,EAAUhyD,EAAMitD,OAChBrF,EACFM,EAAQmb,KAAK,mBAAoBrR,GAC5BtlD,EAzGa,mBAyGoBslD,EAAShyD,EAAMuE,MACzD,GACF,EAEII,EAAO,SAAUqQ,EAAIhV,EAAOsjE,GAC9B,OAAO,SAAU/+D,GACfyQ,EAAGhV,EAAOuE,EAAO++D,EACnB,CACF,EAEIC,EAAiB,SAAUvjE,EAAOuE,EAAO++D,GACvCtjE,EAAM+C,OACV/C,EAAM+C,MAAO,EACTugE,IAAQtjE,EAAQsjE,GACpBtjE,EAAMuE,MAAQA,EACdvE,EAAMA,MArHO,EAsHb+xD,EAAO/xD,GAAO,GAChB,EAEIwjE,GAAkB,SAAUxjE,EAAOuE,EAAO++D,GAC5C,IAAItjE,EAAM+C,KAAV,CACA/C,EAAM+C,MAAO,EACTugE,IAAQtjE,EAAQsjE,GACpB,IACE,GAAItjE,EAAMitD,SAAW1oD,EAAO,MAAM86C,EAAU,oCAC5C,IAAItkC,EAAOwnD,EAAWh+D,GAClBwW,EACF4mD,GAAU,WACR,IAAI8B,EAAU,CAAE1gE,MAAM,GACtB,IACEC,EAAK+X,EAAMxW,EACTI,EAAK6+D,GAAiBC,EAASzjE,GAC/B2E,EAAK4+D,EAAgBE,EAASzjE,GAIlC,CAFE,MAAOsQ,GACPizD,EAAeE,EAASnzD,EAAOtQ,EACjC,CACF,KAEAA,EAAMuE,MAAQA,EACdvE,EAAMA,MA/II,EAgJV+xD,EAAO/xD,GAAO,GAIlB,CAFE,MAAOsQ,GACPizD,EAAe,CAAExgE,MAAM,GAASuN,EAAOtQ,EACzC,CAzBsB,CA0BxB,EAGA,GAAI22D,IAcFuL,GAZAD,EAAqB,SAAiByB,GACpCjC,EAAWp+D,KAAM6+D,GACjBvX,EAAU+Y,GACV1gE,EAAKq+D,EAAUh+D,MACf,IAAIrD,EAAQgiE,EAAwB3+D,MACpC,IACEqgE,EAAS/+D,EAAK6+D,GAAiBxjE,GAAQ2E,EAAK4+D,EAAgBvjE,GAG9D,CAFE,MAAOsQ,GACPizD,EAAevjE,EAAOsQ,EACxB,CACF,GAEsC/C,WAGtC8zD,EAAW,SAAiBqC,GAC1BzE,EAAiB57D,KAAM,CACrBtC,KAAM+gE,EACN/+D,MAAM,EACNggE,UAAU,EACV1oC,QAAQ,EACR2oC,UAAW,IAAI1L,EACfsL,WAAW,EACX5iE,MAlLQ,EAmLRuE,WAAON,GAEX,GAISsJ,UAAY63C,EAAc8c,EAAkB,QAAQ,SAAcyB,EAAavC,GACtF,IAAIphE,EAAQgiE,EAAwB3+D,MAChCo/D,EAAWxL,EAAqByK,EAAmBr+D,KAAM4+D,IAS7D,OARAjiE,EAAMq6B,QAAS,EACfooC,EAAShxB,IAAKyN,EAAWykB,IAAeA,EACxClB,EAASE,KAAOzjB,EAAWkiB,IAAeA,EAC1CqB,EAASjQ,OAAS5K,EAAUM,EAAQsK,YAASvuD,EA/LnC,GAgMNjE,EAAMA,MAAkBA,EAAMgjE,UAAU18D,IAAIm8D,GAC3Cd,GAAU,WACba,EAAaC,EAAUziE,EACzB,IACOyiE,EAASzQ,OAClB,IAEAsP,EAAuB,WACrB,IAAItP,EAAU,IAAIqP,EACdrhE,EAAQgiE,EAAwBhQ,GACpC3uD,KAAK2uD,QAAUA,EACf3uD,KAAKm0B,QAAU7yB,EAAK6+D,GAAiBxjE,GACrCqD,KAAKsuC,OAAShtC,EAAK4+D,EAAgBvjE,EACrC,EAEA4gE,EAA2Bxc,EAAI6S,EAAuB,SAAUlE,GAC9D,OAAOA,IAAMkP,GA1MmB2B,YA0MG7Q,EAC/B,IAAIuO,EAAqBvO,GACzBoP,EAA4BpP,EAClC,GAEKjD,GAAW5Q,EAAWkX,IAA6BG,IAA2BlyD,OAAOkJ,WAAW,CACnGg0D,EAAahL,EAAuBx7C,KAE/BgnD,GAEH3c,EAAcmR,EAAwB,QAAQ,SAAcoN,EAAavC,GACvE,IAAIxW,EAAOvnD,KACX,OAAO,IAAI4+D,GAAmB,SAAUzqC,EAASma,GAC/C3uC,EAAKu+D,EAAY3W,EAAMpzB,EAASma,EAClC,IAAG52B,KAAK4oD,EAAavC,EAEvB,GAAG,CAAEnc,QAAQ,IAIf,WACSsR,EAAuB36C,WACF,CAA5B,MAAOtL,GAAqB,CAG1B47C,GACFA,EAAeqK,EAAwB2L,EAE3C,CAGFrS,EAAE,CAAE9wD,QAAQ,EAAM6c,aAAa,EAAMk8B,MAAM,EAAMmR,OAAQ0N,GAA8B,CACrFp/B,QAAS0qC,IAGXzS,EAAeyS,EAAoBH,GAAS,GAAO,GACnDN,EAAWM,mBC9RX,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,mCCLR,IAAIjS,EAAI,EAAQ,MACZ7sD,EAAO,EAAQ,MACf2nD,EAAY,EAAQ,MACpBiW,EAA6B,EAAQ,MACrCC,EAAU,EAAQ,MAClBC,EAAU,EAAQ,KAKtBjR,EAAE,CAAEl8C,OAAQ,UAAWo1C,MAAM,EAAME,OAJO,EAAQ,MAIgC,CAChF4a,KAAM,SAAcnV,GAClB,IAAIqE,EAAI1vD,KACJ09D,EAAaH,EAA2Bxc,EAAE2O,GAC1CphB,EAASovB,EAAWpvB,OACpBtd,EAASwsC,GAAQ,WACnB,IAAIG,EAAkBrW,EAAUoI,EAAEv7B,SAClCspC,EAAQpS,GAAU,SAAUsD,GAC1BhvD,EAAKg+D,EAAiBjO,EAAGf,GAASj3C,KAAKgmD,EAAWvpC,QAASma,EAC7D,GACF,IAEA,OADItd,EAAO/jB,OAAOqhC,EAAOtd,EAAO9vB,OACzBw8D,EAAW/O,OACpB,gCCvBF,IAAInC,EAAI,EAAQ,MACZ7sD,EAAO,EAAQ,MACf49D,EAA6B,EAAQ,MAKzC/Q,EAAE,CAAEl8C,OAAQ,UAAWo1C,MAAM,EAAME,OAJF,qBAIwC,CACvEtX,OAAQ,SAAgBmyB,GACtB,IAAI/C,EAAaH,EAA2Bxc,EAAE/gD,MAE9C,OADAL,EAAK+9D,EAAWpvB,YAAQ1tC,EAAW6/D,GAC5B/C,EAAW/O,OACpB,iCCZF,IAAInC,EAAI,EAAQ,MACZ1H,EAAa,EAAQ,MACrB2H,EAAU,EAAQ,MAClBsG,EAA2B,EAAQ,MACnCO,EAA6B,oBAC7BoN,EAAiB,EAAQ,MAEzBC,EAA4B7b,EAAW,WACvC8b,EAAgBnU,IAAY6G,EAIhC9G,EAAE,CAAEl8C,OAAQ,UAAWo1C,MAAM,EAAME,OAAQ6G,GAAW6G,GAA8B,CAClFn/B,QAAS,SAAiBp0B,GACxB,OAAO2gE,EAAeE,GAAiB5gE,OAAS2gE,EAA4B5N,EAA2B/yD,KAAMD,EAC/G,oBChBF,IAAIy+C,EAAc,EAAQ,MACtB9iD,EAAS,EAAQ,MACjBijD,EAAc,EAAQ,MACtByG,EAAW,EAAQ,MACnByb,EAAoB,EAAQ,MAC5B3b,EAA8B,EAAQ,MACtCiN,EAAsB,UACtBvV,EAAgB,EAAQ,MACxBmO,EAAW,EAAQ,MACnBhwC,EAAW,EAAQ,MACnB+lD,EAAiB,EAAQ,MACzBvM,EAAgB,EAAQ,MACxBwM,EAAgB,EAAQ,MACxBhf,EAAgB,EAAQ,MACxBzD,EAAQ,EAAQ,MAChBqC,EAAS,EAAQ,MACjBwN,EAAuB,gBACvBgQ,EAAa,EAAQ,MACrB9hB,EAAkB,EAAQ,MAC1BmY,EAAsB,EAAQ,MAC9BC,EAAkB,EAAQ,MAE1B3J,EAAQzO,EAAgB,SACxB2kB,EAAetlE,EAAOwzC,OACtB8W,EAAkBgb,EAAa92D,UAC/B+2D,EAAcvlE,EAAOulE,YACrBnhB,EAAOnB,EAAYqH,EAAgBlG,MACnCrD,EAASkC,EAAY,GAAGlC,QACxB7jC,EAAU+lC,EAAY,GAAG/lC,SACzBsoD,EAAgBviB,EAAY,GAAGrtC,SAC/B4uC,EAAcvB,EAAY,GAAGh0C,OAE7Bw2D,EAAS,2CACT/M,EAAM,KACNC,EAAM,KAGN+M,EAAc,IAAIJ,EAAa5M,KAASA,EAExCyB,EAAgBtB,EAAcsB,cAC9Bf,EAAgBP,EAAcO,cAE9BuM,EAAc7iB,KACd4iB,GAAevL,GAAiBrB,GAAuBC,GAAmBnW,GAAM,WAGhF,OAFA+V,EAAIvJ,IAAS,EAENkW,EAAa5M,IAAQA,GAAO4M,EAAa3M,IAAQA,GAAiC,QAA1B2M,EAAa5M,EAAK,IACnF,KAwEF,GAAIhP,EAAS,SAAUic,GAAc,CA4DnC,IA3DA,IAAIC,EAAgB,SAAgBC,EAAS9a,GAC3C,IAKI+a,EAAU/L,EAAQN,EAAQsM,EAASzwC,EAAQr0B,EAL3C+kE,EAAe9kB,EAAcoJ,EAAiBhmD,MAC9C2hE,EAAkB5W,EAASwW,GAC3BK,OAA8BhhE,IAAV6lD,EACpBjlC,EAAS,GACTqgD,EAAaN,EAGjB,IAAKG,GAAgBC,GAAmBC,GAAqBL,EAAQhpD,cAAgB+oD,EACnF,OAAOC,EA0CT,IAvCII,GAAmB/kB,EAAcoJ,EAAiBub,MACpDA,EAAUA,EAAQ/wD,OACdoxD,IAAmBnb,EAAQqa,EAAee,KAGhDN,OAAsB3gE,IAAZ2gE,EAAwB,GAAKxmD,EAASwmD,GAChD9a,OAAkB7lD,IAAV6lD,EAAsB,GAAK1rC,EAAS0rC,GAC5Cob,EAAaN,EAET/M,GAAuB,WAAYJ,IACrCqB,IAAWhP,GAASya,EAAcza,EAAO,MAAQ,KACrCA,EAAQ7tC,EAAQ6tC,EAAO,KAAM,KAG3C+a,EAAW/a,EAEPoP,GAAiB,WAAYzB,IAC/Be,IAAW1O,GAASya,EAAcza,EAAO,MAAQ,IACnCqO,IAAerO,EAAQ7tC,EAAQ6tC,EAAO,KAAM,KAGxDgO,IACFgN,EAjFU,SAAU5W,GAWxB,IAVA,IASI0F,EATApxD,EAAS0rD,EAAO1rD,OAChBC,EAAQ,EACR4xB,EAAS,GACT8wC,EAAQ,GACRxP,EAAQ,CAAC,EACTyP,GAAW,EACXC,GAAM,EACNC,EAAU,EACVC,EAAY,GAET9iE,GAASD,EAAQC,IAAS,CAE/B,GAAY,QADZmxD,EAAM9T,EAAOoO,EAAQzrD,IAEnBmxD,GAAY9T,EAAOoO,IAAUzrD,QACxB,GAAY,MAARmxD,EACTwR,GAAW,OACN,IAAKA,EAAU,QAAQ,GAC5B,IAAa,MAARxR,EACHwR,GAAW,EACX,MACF,IAAa,MAARxR,EACCzQ,EAAKqhB,EAAQjhB,EAAY2K,EAAQzrD,EAAQ,MAC3CA,GAAS,EACT4iE,GAAM,GAERhxC,GAAUu/B,EACV0R,IACA,SACF,IAAa,MAAR1R,GAAeyR,EAClB,GAAkB,KAAdE,GAAoBvhB,EAAO2R,EAAO4P,GACpC,MAAM,IAAIjB,EAAY,8BAExB3O,EAAM4P,IAAa,EACnBJ,EAAMA,EAAM3iE,QAAU,CAAC+iE,EAAWD,GAClCD,GAAM,EACNE,EAAY,GACZ,SAEAF,EAAKE,GAAa3R,EACjBv/B,GAAUu/B,CACjB,CAAE,MAAO,CAACv/B,EAAQ8wC,EACpB,CAuCgBK,CAAUZ,GACpBA,EAAUE,EAAQ,GAClBjgD,EAASigD,EAAQ,IAGnBzwC,EAAS6vC,EAAkBG,EAAaO,EAAS9a,GAAQib,EAAe1hE,KAAOgmD,EAAiBsb,IAE5F7L,GAAUN,GAAU3zC,EAAOriB,UAC7BxC,EAAQwxD,EAAqBn9B,GACzBykC,IACF94D,EAAM84D,QAAS,EACf94D,EAAMu4D,IAAMoM,EApHD,SAAUzW,GAM3B,IALA,IAII0F,EAJApxD,EAAS0rD,EAAO1rD,OAChBC,EAAQ,EACR4xB,EAAS,GACT+wC,GAAW,EAER3iE,GAASD,EAAQC,IAEV,QADZmxD,EAAM9T,EAAOoO,EAAQzrD,IAKhB2iE,GAAoB,MAARxR,GAGH,MAARA,EACFwR,GAAW,EACM,MAARxR,IACTwR,GAAW,GACX/wC,GAAUu/B,GANZv/B,GAAU,WAJVA,GAAUu/B,EAAM9T,EAAOoO,IAAUzrD,GAYnC,OAAO4xB,CACX,CA8FkCoxC,CAAab,GAAUC,IAE/CrM,IAAQx4D,EAAMw4D,QAAS,GACvB3zC,EAAOriB,SAAQxC,EAAM6kB,OAASA,IAGhC+/C,IAAYM,EAAY,IAE1B3c,EAA4Bl0B,EAAQ,SAAyB,KAAf6wC,EAAoB,OAASA,EAC/C,CAA5B,MAAO50D,GAAqB,CAE9B,OAAO+jB,CACT,EAESjhB,EAAOoiD,EAAoB6O,GAAe5hE,EAAQ,EAAG2Q,EAAK5Q,OAASC,GAC1E2hE,EAAcO,EAAeN,EAAcjxD,EAAK3Q,MAGlD4mD,EAAgBztC,YAAc+oD,EAC9BA,EAAcp3D,UAAY87C,EAC1BjE,EAAcrmD,EAAQ,SAAU4lE,EAAe,CAAE/oD,aAAa,GAChE,CAGA4lD,EAAW,0BC7LX,IAAI3f,EAAc,EAAQ,MACtBgW,EAAsB,EAAQ,MAC9B5P,EAAU,EAAQ,MAClByd,EAAwB,EAAQ,MAChCjU,EAAmB,YAEnBpI,EAAkB9W,OAAOhlC,UACzB6xC,EAAaC,UAIbwC,GAAegW,GACjB6N,EAAsBrc,EAAiB,SAAU,CAC/Cn1C,cAAc,EACdtQ,IAAK,WACH,GAAIP,OAASgmD,EAAb,CAGA,GAAsB,WAAlBpB,EAAQ5kD,MACV,QAASouD,EAAiBpuD,MAAMy1D,OAElC,MAAM1Z,EAAW,yCAN6B,CAOhD,iCCrBJ,IAAIyQ,EAAI,EAAQ,MACZ1M,EAAO,EAAQ,MAInB0M,EAAE,CAAEl8C,OAAQ,SAAUw9C,OAAO,EAAMlI,OAAQ,IAAI9F,OAASA,GAAQ,CAC9DA,KAAMA,iCCNR,IAAIrD,EAAS,eACT1hC,EAAW,EAAQ,MACnBmzC,EAAsB,EAAQ,MAC9BuN,EAAiB,EAAQ,MACzBC,EAAyB,EAAQ,MAEjC4G,EAAkB,kBAClB1G,EAAmB1N,EAAoB5tD,IACvC8tD,EAAmBF,EAAoBnE,UAAUuY,GAIrD7G,EAAerf,OAAQ,UAAU,SAAUyf,GACzCD,EAAiB57D,KAAM,CACrBtC,KAAM4kE,EACNzX,OAAQ9vC,EAAS8gD,GACjBz8D,MAAO,GAIX,IAAG,WACD,IAGImjE,EAHA5lE,EAAQyxD,EAAiBpuD,MACzB6qD,EAASluD,EAAMkuD,OACfzrD,EAAQzC,EAAMyC,MAElB,OAAIA,GAASyrD,EAAO1rD,OAAeu8D,OAAuB96D,GAAW,IACrE2hE,EAAQ9lB,EAAOoO,EAAQzrD,GACvBzC,EAAMyC,OAASmjE,EAAMpjE,OACdu8D,EAAuB6G,GAAO,GACvC,iCC7BA,IAAI33D,EAAQ,EAAQ,MAChBjL,EAAO,EAAQ,MACfg/C,EAAc,EAAQ,MACtB6jB,EAAgC,EAAQ,MACxClkB,EAAQ,EAAQ,MAChBiB,EAAW,EAAQ,MACnB1D,EAAa,EAAQ,KACrBkM,EAAoB,EAAQ,MAC5BuO,EAAsB,EAAQ,MAC9BrI,EAAW,EAAQ,MACnBlzC,EAAW,EAAQ,MACnBw7C,EAAyB,EAAQ,MACjCkM,EAAqB,EAAQ,MAC7B3a,EAAY,EAAQ,MACpB4a,EAAkB,EAAQ,KAC1BC,EAAa,EAAQ,MAGrBC,EAFkB,EAAQ,KAEhBvmB,CAAgB,WAC1B7/B,EAAMpY,KAAKoY,IACXb,EAAMvX,KAAKuX,IACXrM,EAASqvC,EAAY,GAAGrvC,QACxB1Q,EAAO+/C,EAAY,GAAG//C,MACtBsiE,EAAgBviB,EAAY,GAAGrtC,SAC/B4uC,EAAcvB,EAAY,GAAGh0C,OAQ7Bk4D,EAEgC,OAA3B,IAAIjqD,QAAQ,IAAK,MAItBkqD,IACE,IAAIF,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAiB7BJ,EAA8B,WAAW,SAAUO,EAAGrO,EAAesO,GACnE,IAAIC,EAAoBH,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBI,EAAaC,GAC5B,IAAI1lB,EAAI8Y,EAAuBv2D,MAC3BojE,EAAWrb,EAAkBmb,QAAetiE,EAAYknD,EAAUob,EAAaN,GACnF,OAAOQ,EACHzjE,EAAKyjE,EAAUF,EAAazlB,EAAG0lB,GAC/BxjE,EAAK+0D,EAAe35C,EAAS0iC,GAAIylB,EAAaC,EACpD,EAGA,SAAUtY,EAAQsY,GAChB,IAAIE,EAAK9jB,EAASv/C,MACd08C,EAAI3hC,EAAS8vC,GAEjB,GACyB,iBAAhBsY,IAC6C,IAApDjC,EAAciC,EAAcF,KACW,IAAvC/B,EAAciC,EAAc,MAC5B,CACA,IAAIG,EAAMN,EAAgBtO,EAAe2O,EAAI3mB,EAAGymB,GAChD,GAAIG,EAAI5jE,KAAM,OAAO4jE,EAAIpiE,KAC3B,CAEA,IAAIqiE,EAAoB1nB,EAAWsnB,GAC9BI,IAAmBJ,EAAepoD,EAASooD,IAEhD,IAAIznE,EAAS2nE,EAAG3nE,OAChB,GAAIA,EAAQ,CACV,IAAI8nE,EAAcH,EAAG1mB,QACrB0mB,EAAGrtB,UAAY,CACjB,CAEA,IADA,IAAIrQ,EAAU,KACD,CACX,IAAI3U,EAAS2xC,EAAWU,EAAI3mB,GAC5B,GAAe,OAAX1rB,EAAiB,MAGrB,GADApyB,EAAK+mC,EAAS3U,IACTt1B,EAAQ,MAGI,KADFqf,EAASiW,EAAO,MACVqyC,EAAGrtB,UAAYysB,EAAmB/lB,EAAGuR,EAASoV,EAAGrtB,WAAYwtB,GACpF,CAIA,IAFA,IA/EwB3mB,EA+EpB4mB,EAAoB,GACpBC,EAAqB,EAChBt2D,EAAI,EAAGA,EAAIu4B,EAAQxmC,OAAQiO,IAAK,CAWvC,IARA,IAAI0pB,EAAU/b,GAFdiW,EAAS2U,EAAQv4B,IAEa,IAC1BsiB,EAAWlT,EAAIb,EAAI26C,EAAoBtlC,EAAO5xB,OAAQs9C,EAAEv9C,QAAS,GACjEkpD,EAAW,GAMNnJ,EAAI,EAAGA,EAAIluB,EAAO7xB,OAAQ+/C,IAAKtgD,EAAKypD,OA3FrCznD,KADci8C,EA4F+C7rB,EAAOkuB,IA3FxDrC,EAAKT,OAAOS,IA4FhC,IAAIyL,EAAgBt3B,EAAOxP,OAC3B,GAAI+hD,EAAmB,CACrB,IAAII,EAAer0D,EAAO,CAACwnB,GAAUuxB,EAAU34B,EAAUgtB,QACnC97C,IAAlB0nD,GAA6B1pD,EAAK+kE,EAAcrb,GACpD,IAAIC,EAAcxtC,EAASnQ,EAAMu4D,OAAcviE,EAAW+iE,GAC5D,MACEpb,EAAcma,EAAgB5rC,EAAS4lB,EAAGhtB,EAAU24B,EAAUC,EAAe6a,GAE3EzzC,GAAYg0C,IACdD,GAAqBvjB,EAAYxD,EAAGgnB,EAAoBh0C,GAAY64B,EACpEmb,EAAqBh0C,EAAWoH,EAAQ33B,OAE5C,CACA,OAAOskE,EAAoBvjB,EAAYxD,EAAGgnB,EAC5C,EAEJ,KA1FqCplB,GAAM,WACzC,IAAIkI,EAAK,IAOT,OANAA,EAAG1G,KAAO,WACR,IAAI9uB,EAAS,GAEb,OADAA,EAAOxP,OAAS,CAAErV,EAAG,KACd6kB,CACT,EAEkC,MAA3B,GAAGpY,QAAQ4tC,EAAI,OACxB,MAiFsCqc,GAAoBC,gCCvI1D,IAAItW,EAAI,EAAQ,MACZoX,EAAQ,aAKZpX,EAAE,CAAEl8C,OAAQ,SAAUw9C,OAAO,EAAMlI,OAJN,EAAQ,KAIMie,CAAuB,SAAW,CAC3Eh+D,KAAM,WACJ,OAAO+9D,EAAM5jE,KACf,oBCVF,IAAItE,EAAS,EAAQ,MACjBooE,EAAe,EAAQ,MACvB1f,EAAwB,EAAQ,MAChC2f,EAAuB,EAAQ,MAC/B7e,EAA8B,EAAQ,MACtC7I,EAAkB,EAAQ,MAE1BqD,EAAWrD,EAAgB,YAC3BgE,EAAgBhE,EAAgB,eAChC2nB,EAAcD,EAAqBlW,OAEnCoW,EAAkB,SAAUC,EAAqBC,GACnD,GAAID,EAAqB,CAEvB,GAAIA,EAAoBxkB,KAAcskB,EAAa,IACjD9e,EAA4Bgf,EAAqBxkB,EAAUskB,EAG7D,CAFE,MAAO/2D,GACPi3D,EAAoBxkB,GAAYskB,CAClC,CAIA,GAHKE,EAAoB7jB,IACvB6E,EAA4Bgf,EAAqB7jB,EAAe8jB,GAE9DL,EAAaK,GAAkB,IAAK,IAAI5lB,KAAewlB,EAEzD,GAAIG,EAAoB3lB,KAAiBwlB,EAAqBxlB,GAAc,IAC1E2G,EAA4Bgf,EAAqB3lB,EAAawlB,EAAqBxlB,GAGrF,CAFE,MAAOtxC,GACPi3D,EAAoB3lB,GAAewlB,EAAqBxlB,EAC1D,CAEJ,CACF,EAEA,IAAK,IAAI4lB,KAAmBL,EAC1BG,EAAgBvoE,EAAOyoE,IAAoBzoE,EAAOyoE,GAAiBj6D,UAAWi6D,GAGhFF,EAAgB7f,EAAuB,6CCnCvC,EAAQ,MACR,IAAIoI,EAAI,EAAQ,MACZ9wD,EAAS,EAAQ,MACjBiE,EAAO,EAAQ,MACfg/C,EAAc,EAAQ,MACtBH,EAAc,EAAQ,MACtB4lB,EAAiB,EAAQ,MACzBriB,EAAgB,EAAQ,MACxBsiB,EAAiB,EAAQ,MACzBlY,EAAiB,EAAQ,MACzBQ,EAA4B,EAAQ,MACpCuB,EAAsB,EAAQ,MAC9BkQ,EAAa,EAAQ,MACrBviB,EAAa,EAAQ,KACrB8E,EAAS,EAAQ,MACjBr/C,EAAO,EAAQ,MACfsjD,EAAU,EAAQ,KAClBrF,EAAW,EAAQ,MACnBxC,EAAW,EAAQ,KACnBunB,EAAY,EAAQ,MACpBhoB,EAAS,EAAQ,IACjB4E,EAA2B,EAAQ,MACnC7D,EAAc,EAAQ,MACtBC,EAAoB,EAAQ,MAC5B2b,EAA0B,EAAQ,MAClC5c,EAAkB,EAAQ,MAC1BkoB,EAAY,EAAQ,MAEpB7kB,EAAWrD,EAAgB,YAC3BmoB,EAAoB,kBACpBC,EAA6BD,0BAC7B5I,EAAmB1N,EAAoB5tD,IACvCokE,EAAyBxW,EAAoBnE,UAAUya,GACvDG,EAA2BzW,EAAoBnE,UAAU0a,GAEzDt0D,EAA2BnP,OAAOmP,yBAGlCy0D,EAAiB,SAAU1kE,GAC7B,IAAKs+C,EAAa,OAAO9iD,EAAOwE,GAChC,IAAIqhD,EAAapxC,EAAyBzU,EAAQwE,GAClD,OAAOqhD,GAAcA,EAAWrgD,KAClC,EAEI2jE,EAAcD,EAAe,SAC7BE,EAAgBF,EAAe,WAC/BG,EAAUH,EAAe,WACzBI,EAAmBF,GAAiBA,EAAc56D,UAClD+6D,EAAmBF,GAAWA,EAAQ76D,UACtCglC,EAASxzC,EAAOwzC,OAChB8M,EAAYtgD,EAAOsgD,UACnBkpB,EAAqBxpE,EAAOwpE,mBAC5BrhD,EAAqBnoB,EAAOmoB,mBAC5B44B,EAASkC,EAAY,GAAGlC,QACxB1yC,EAAO40C,EAAY,GAAG50C,MACtBnL,EAAO+/C,EAAY,GAAG//C,MACtBga,EAAU+lC,EAAY,GAAG/lC,SACzB3N,EAAQ0zC,EAAY,GAAG1zC,OACvBsG,EAASotC,EAAY,GAAGptC,QACxBzU,EAAQ6hD,EAAY,GAAG7hD,OACvBojD,EAAcvB,EAAY,GAAGh0C,OAE7Bw6D,GAAO,MACPC,GAAYhgE,MAAM,GAElBigE,GAAkB,SAAUC,GAC9B,OAAOF,GAAUE,EAAQ,KAAOF,GAAUE,EAAQ,GAAKp2B,EAAO,qBAAuBo2B,EAAQ,KAAM,MACrG,EAEIC,GAAgB,SAAUC,GAC5B,IACE,OAAON,EAAmBM,EAG5B,CAFE,MAAOv4D,GACP,OAAOu4D,CACT,CACF,EAEIC,GAAc,SAAU5oB,GAC1B,IAAI7rB,EAASpY,EAAQikC,EAAIsoB,GAAM,KAC3BG,EAAQ,EACZ,IACE,OAAOJ,EAAmBl0C,EAM5B,CALE,MAAO/jB,GACP,KAAOq4D,GACLt0C,EAASpY,EAAQoY,EAAQq0C,GAAgBC,KAAUC,IAErD,OAAOv0C,CACT,CACF,EAEItd,GAAO,eAEPgyD,GAAe,CACjB,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGLtC,GAAW,SAAUx+D,GACvB,OAAO8gE,GAAa9gE,EACtB,EAEI+gE,GAAY,SAAU9oB,GACxB,OAAOjkC,EAAQiL,EAAmBg5B,GAAKnpC,GAAM0vD,GAC/C,EAEIwC,GAA0BjZ,GAA0B,SAAkB16C,EAAQ85C,GAChF6P,EAAiB57D,KAAM,CACrBtC,KAAM+mE,EACN3mB,SAAUT,EAAYqnB,EAAuBzyD,GAAQ5S,SACrD0sD,KAAMA,GAEV,GAAG,YAAY,WACb,IAAIpvD,EAAQgoE,EAAyB3kE,MACjC+rD,EAAOpvD,EAAMovD,KACb5mC,EAAOxoB,EAAMmhD,SAAS7mB,OACtB5W,EAAQ8E,EAAKjkB,MAGf,OAFGikB,EAAKzlB,OACRylB,EAAKjkB,MAAiB,SAAT6qD,EAAkB1rC,EAAMpf,IAAe,WAAT8qD,EAAoB1rC,EAAMnf,MAAQ,CAACmf,EAAMpf,IAAKof,EAAMnf,QACxFikB,CACX,IAAG,GAEC0gD,GAAuB,SAAUC,GACnC9lE,KAAKX,QAAU,GACfW,KAAKmG,IAAM,UAEEvF,IAATklE,IACE/oB,EAAS+oB,GAAO9lE,KAAK+lE,YAAYD,GAChC9lE,KAAKgmE,WAA0B,iBAARF,EAAuC,MAApBrpB,EAAOqpB,EAAM,GAAa5lB,EAAY4lB,EAAM,GAAKA,EAAOxB,EAAUwB,IAErH,EAEAD,GAAqB37D,UAAY,CAC/BxM,KAAM8mE,EACNyB,QAAS,SAAU9/D,GACjBnG,KAAKmG,IAAMA,EACXnG,KAAK2zB,QACP,EACAoyC,YAAa,SAAUl2D,GACrB,IACIiuC,EAAU7mB,EAAM9R,EAAM+gD,EAAeC,EAAW1wB,EAAOihB,EADvD3Y,EAAiBT,EAAkBztC,GAGvC,GAAIkuC,EAGF,IADA9mB,GADA6mB,EAAWT,EAAYxtC,EAAQkuC,IACf9mB,OACP9R,EAAOxlB,EAAKs3B,EAAM6mB,IAAWp+C,MAAM,CAG1C,GADAymE,GADAD,EAAgB7oB,EAAYkC,EAASp6B,EAAKjkB,SAChB+1B,MAEvBwe,EAAQ91C,EAAKwmE,EAAWD,IAAgBxmE,OACxCg3D,EAAS/2D,EAAKwmE,EAAWD,IAAgBxmE,OACzCC,EAAKwmE,EAAWD,GAAexmE,KAChC,MAAMs8C,EAAU,mCAClBp9C,EAAKoB,KAAKX,QAAS,CAAE4B,IAAKqjE,EAAU7uB,EAAMv0C,OAAQA,MAAOojE,EAAU5N,EAAOx1D,QAC5E,MACK,IAAK,IAAID,KAAO4O,EAAY8wC,EAAO9wC,EAAQ5O,IAChDrC,EAAKoB,KAAKX,QAAS,CAAE4B,IAAKA,EAAKC,MAAOojE,EAAUz0D,EAAO5O,KAE3D,EACA+kE,WAAY,SAAUn+D,GACpB,GAAIA,EAIF,IAHA,IAEI42B,EAAWpe,EAFX/hB,EAAaxB,EAAM+K,EAAO,KAC1BzI,EAAQ,EAELA,EAAQd,EAAWa,SACxBs/B,EAAYngC,EAAWc,MACTD,SACZkhB,EAAQvjB,EAAM2hC,EAAW,KACzB7/B,EAAKoB,KAAKX,QAAS,CACjB4B,IAAKwkE,GAAYx6D,EAAMoV,IACvBnf,MAAOukE,GAAY17D,EAAKsW,EAAO,QAKzC,EACAslD,UAAW,WAKT,IAJA,IAGItlD,EAHAhhB,EAAUW,KAAKX,QACf2xB,EAAS,GACT5xB,EAAQ,EAELA,EAAQC,EAAQF,QACrBkhB,EAAQhhB,EAAQD,KAChBR,EAAKoyB,EAAQ20C,GAAUtlD,EAAMpf,KAAO,IAAM0kE,GAAUtlD,EAAMnf,QAC1D,OAAO6I,EAAKinB,EAAQ,IACxB,EACA2C,OAAQ,WACN3zB,KAAKX,QAAQF,OAAS,EACtBa,KAAKgmE,WAAWhmE,KAAKmG,IAAI0B,MAC3B,EACAu+D,UAAW,WACLpmE,KAAKmG,KAAKnG,KAAKmG,IAAIwtB,QACzB,GAKF,IAAI0yC,GAA6B,WAC/BjI,EAAWp+D,KAAMsmE,IACjB,IAAIR,EAAOv1D,UAAUpR,OAAS,EAAIoR,UAAU,QAAK3P,EACjDg7D,EAAiB57D,KAAM,IAAI6lE,GAAqBC,GAClD,EAEIQ,GAA2BD,GAA2Bn8D,UAwI1D,GAtIAm6D,EAAeiC,GAA0B,CAGvC1/D,OAAQ,SAAgB1G,EAAMgB,GAC5B+3D,EAAwB1oD,UAAUpR,OAAQ,GAC1C,IAAIxC,EAAQ+nE,EAAuB1kE,MACnCpB,EAAKjC,EAAM0C,QAAS,CAAE4B,IAAKqjE,EAAUpkE,GAAOgB,MAAOojE,EAAUpjE,KAC7DvE,EAAMypE,WACR,EAGA,OAAU,SAAUlmE,GAClB+4D,EAAwB1oD,UAAUpR,OAAQ,GAK1C,IAJA,IAAIxC,EAAQ+nE,EAAuB1kE,MAC/BX,EAAU1C,EAAM0C,QAChB4B,EAAMqjE,EAAUpkE,GAChBd,EAAQ,EACLA,EAAQC,EAAQF,QACjBE,EAAQD,GAAO6B,MAAQA,EAAKsQ,EAAOlS,EAASD,EAAO,GAClDA,IAEPzC,EAAMypE,WACR,EAGA7lE,IAAK,SAAaL,GAChB+4D,EAAwB1oD,UAAUpR,OAAQ,GAI1C,IAHA,IAAIE,EAAUqlE,EAAuB1kE,MAAMX,QACvC4B,EAAMqjE,EAAUpkE,GAChBd,EAAQ,EACLA,EAAQC,EAAQF,OAAQC,IAC7B,GAAIC,EAAQD,GAAO6B,MAAQA,EAAK,OAAO5B,EAAQD,GAAO8B,MAExD,OAAO,IACT,EAGAyB,OAAQ,SAAgBzC,GACtB+4D,EAAwB1oD,UAAUpR,OAAQ,GAK1C,IAJA,IAAIE,EAAUqlE,EAAuB1kE,MAAMX,QACvC4B,EAAMqjE,EAAUpkE,GAChB8wB,EAAS,GACT5xB,EAAQ,EACLA,EAAQC,EAAQF,OAAQC,IACzBC,EAAQD,GAAO6B,MAAQA,GAAKrC,EAAKoyB,EAAQ3xB,EAAQD,GAAO8B,OAE9D,OAAO8vB,CACT,EAGAzuB,IAAK,SAAarC,GAChB+4D,EAAwB1oD,UAAUpR,OAAQ,GAI1C,IAHA,IAAIE,EAAUqlE,EAAuB1kE,MAAMX,QACvC4B,EAAMqjE,EAAUpkE,GAChBd,EAAQ,EACLA,EAAQC,EAAQF,QACrB,GAAIE,EAAQD,KAAS6B,MAAQA,EAAK,OAAO,EAE3C,OAAO,CACT,EAGAX,IAAK,SAAaJ,EAAMgB,GACtB+3D,EAAwB1oD,UAAUpR,OAAQ,GAQ1C,IAPA,IAMIkhB,EANA1jB,EAAQ+nE,EAAuB1kE,MAC/BX,EAAU1C,EAAM0C,QAChBiiB,GAAQ,EACRrgB,EAAMqjE,EAAUpkE,GAChB6qC,EAAMu5B,EAAUpjE,GAChB9B,EAAQ,EAELA,EAAQC,EAAQF,OAAQC,KAC7BihB,EAAQhhB,EAAQD,IACN6B,MAAQA,IACZqgB,EAAO/P,EAAOlS,EAASD,IAAS,IAElCkiB,GAAQ,EACRjB,EAAMnf,MAAQ6pC,IAIfzpB,GAAO1iB,EAAKS,EAAS,CAAE4B,IAAKA,EAAKC,MAAO6pC,IAC7CpuC,EAAMypE,WACR,EAGAl3D,KAAM,WACJ,IAAIvS,EAAQ+nE,EAAuB1kE,MACnCukE,EAAU5nE,EAAM0C,SAAS,SAAU8M,EAAGC,GACpC,OAAOD,EAAElL,IAAMmL,EAAEnL,IAAM,GAAK,CAC9B,IACAtE,EAAMypE,WACR,EAEAp3D,QAAS,SAAiB5I,GAKxB,IAJA,IAGIia,EAHAhhB,EAAUqlE,EAAuB1kE,MAAMX,QACvCknE,EAAgBjlE,EAAK8E,EAAUmK,UAAUpR,OAAS,EAAIoR,UAAU,QAAK3P,GACrExB,EAAQ,EAELA,EAAQC,EAAQF,QAErBonE,GADAlmD,EAAQhhB,EAAQD,MACI8B,MAAOmf,EAAMpf,IAAKjB,KAE1C,EAEA+P,KAAM,WACJ,OAAO,IAAI61D,GAAwB5lE,KAAM,OAC3C,EAEA6tD,OAAQ,WACN,OAAO,IAAI+X,GAAwB5lE,KAAM,SAC3C,EAEAX,QAAS,WACP,OAAO,IAAIumE,GAAwB5lE,KAAM,UAC3C,GACC,CAAEoQ,YAAY,IAGjB2xC,EAAcukB,GAA0B5mB,EAAU4mB,GAAyBjnE,QAAS,CAAEa,KAAM,YAI5F6hD,EAAcukB,GAA0B,YAAY,WAClD,OAAO5B,EAAuB1kE,MAAM2lE,WACtC,GAAG,CAAEv1D,YAAY,IAEjB+7C,EAAeka,GAA4B7B,GAE3ChY,EAAE,CAAE9wD,QAAQ,EAAM6c,aAAa,EAAMqtC,QAASwe,GAAkB,CAC9D/0B,gBAAiBg3B,MAIdjC,GAAkBvoB,EAAWkpB,GAAU,CAC1C,IAAIyB,GAAa7nB,EAAYsmB,EAAiB1iE,KAC1CkkE,GAAa9nB,EAAYsmB,EAAiB3kE,KAE1ComE,GAAqB,SAAUZ,GACjC,GAAI/oB,EAAS+oB,GAAO,CAClB,IACIa,EADAhgE,EAAOm/D,EAAKn/D,KAEhB,GAAIi+C,EAAQj+C,KAAU69D,EAKpB,OAJAmC,EAAUb,EAAKa,QAAU,IAAI5B,EAAQe,EAAKa,SAAW,IAAI5B,EACpDyB,GAAWG,EAAS,iBACvBF,GAAWE,EAAS,eAAgB,mDAE/BrqB,EAAOwpB,EAAM,CAClBn/D,KAAMu6C,EAAyB,EAAGojB,EAAU39D,IAC5CggE,QAASzlB,EAAyB,EAAGylB,IAG3C,CAAE,OAAOb,CACX,EAUA,GARIjqB,EAAWgpB,IACbrY,EAAE,CAAE9wD,QAAQ,EAAM0U,YAAY,EAAMu1C,gBAAgB,EAAMC,QAAQ,GAAQ,CACxE3X,MAAO,SAAerM,GACpB,OAAOijC,EAAYjjC,EAAOrxB,UAAUpR,OAAS,EAAIunE,GAAmBn2D,UAAU,IAAM,CAAC,EACvF,IAIAsrC,EAAWipB,GAAgB,CAC7B,IAAI8B,GAAqB,SAAiBhlC,GAExC,OADAw8B,EAAWp+D,KAAMglE,GACV,IAAIF,EAAcljC,EAAOrxB,UAAUpR,OAAS,EAAIunE,GAAmBn2D,UAAU,IAAM,CAAC,EAC7F,EAEAy0D,EAAiBzsD,YAAcquD,GAC/BA,GAAmB18D,UAAY86D,EAE/BxY,EAAE,CAAE9wD,QAAQ,EAAM6c,aAAa,EAAMotC,gBAAgB,EAAMC,QAAQ,GAAQ,CACzEihB,QAASD,IAEb,CACF,CAEAjrB,EAAOD,QAAU,CACfrM,gBAAiBg3B,GACjBS,SAAUpC,mBCrYZ,EAAQ,mCCCR,EAAQ,MACR,IA+DIqC,EA/DAva,EAAI,EAAQ,MACZhO,EAAc,EAAQ,MACtB4lB,EAAiB,EAAQ,MACzB1oE,EAAS,EAAQ,MACjB4F,EAAO,EAAQ,MACfq9C,EAAc,EAAQ,MACtBoD,EAAgB,EAAQ,MACxBsgB,EAAwB,EAAQ,MAChCjE,EAAa,EAAQ,MACrBzd,EAAS,EAAQ,MACjBvuB,EAAS,EAAQ,MACjB40C,EAAY,EAAQ,MACpBpoB,EAAa,EAAQ,MACrB+X,EAAS,eACTsQ,EAAU,EAAQ,MAClB3C,EAAY,EAAQ,MACpBnY,EAAiB,EAAQ,MACzB8M,EAA0B,EAAQ,MAClCiO,EAAwB,EAAQ,MAChChZ,EAAsB,EAAQ,MAE9B0N,EAAmB1N,EAAoB5tD,IACvC6mE,EAAsBjZ,EAAoBnE,UAAU,OACpD1a,EAAkB63B,EAAsB73B,gBACxC+3B,EAA+BF,EAAsBJ,SAErDO,EAAY3rE,EAAOyzC,IACnB6M,EAAYtgD,EAAOsgD,UACnB/vC,EAAWvQ,EAAOuQ,SAClB2/B,EAAQxnC,KAAKwnC,MACboF,EAAM5sC,KAAK4sC,IACXyL,EAASkC,EAAY,GAAGlC,QACxBqD,EAAOnB,EAAY,IAAImB,MACvB/1C,EAAO40C,EAAY,GAAG50C,MACtBu9D,EAAiB3oB,EAAY,GAAI5jC,UACjCwL,EAAMo4B,EAAY,GAAGp4B,KACrB3nB,EAAO+/C,EAAY,GAAG//C,MACtBga,EAAU+lC,EAAY,GAAG/lC,SACzB3N,EAAQ0zC,EAAY,GAAG1zC,OACvBnO,EAAQ6hD,EAAY,GAAG7hD,OACvBojD,EAAcvB,EAAY,GAAGh0C,OAC7BsK,EAAc0pC,EAAY,GAAG1pC,aAC7BpK,EAAU8zC,EAAY,GAAG9zC,SAGzB08D,EAAiB,iBACjBC,EAAe,eACfC,EAAe,eAEfC,EAAQ,SAERC,EAAe,cACfC,EAAQ,KACRC,EAAY,OACZC,EAAM,WACNC,EAAM,QACNC,GAAM,cAENC,GAA4B,6BAC5BC,GAA8C,4BAC9CC,GAA2C,uCAC3CC,GAAmB,YAoJnBC,GAAgB,SAAUj6D,GAC5B,IAAI4iB,EAAQ5xB,EAAOkpE,EAAUC,EAE7B,GAAmB,iBAARn6D,EAAkB,CAE3B,IADA4iB,EAAS,GACJ5xB,EAAQ,EAAGA,EAAQ,EAAGA,IACzByL,EAAQmmB,EAAQ5iB,EAAO,KACvBA,EAAOw9B,EAAMx9B,EAAO,KACpB,OAAOrE,EAAKinB,EAAQ,IAExB,CAAO,GAAmB,iBAAR5iB,EAAkB,CAGlC,IAFA4iB,EAAS,GACTs3C,EAvC0B,SAAUE,GAMtC,IALA,IAAIC,EAAW,KACXC,EAAY,EACZC,EAAY,KACZC,EAAa,EACbxpE,EAAQ,EACLA,EAAQ,EAAGA,IACI,IAAhBopE,EAAKppE,IACHwpE,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEdD,EAAY,KACZC,EAAa,IAEK,OAAdD,IAAoBA,EAAYvpE,KAClCwpE,GAON,OAJIA,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEPH,CACT,CAeeI,CAAwBz6D,GAC9BhP,EAAQ,EAAGA,EAAQ,EAAGA,IACrBmpE,GAA2B,IAAhBn6D,EAAKhP,KAChBmpE,IAASA,GAAU,GACnBD,IAAalpE,GACf4xB,GAAU5xB,EAAQ,IAAM,KACxBmpE,GAAU,IAEVv3C,GAAUs2C,EAAel5D,EAAKhP,GAAQ,IAClCA,EAAQ,IAAG4xB,GAAU,OAG7B,MAAO,IAAMA,EAAS,GACxB,CAAE,OAAO5iB,CACX,EAEI06D,GAA4B,CAAC,EAC7BC,GAA2B32C,EAAO,CAAC,EAAG02C,GAA2B,CACnE,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAEnCE,GAAuB52C,EAAO,CAAC,EAAG22C,GAA0B,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAE3BE,GAA2B72C,EAAO,CAAC,EAAG42C,GAAsB,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAG5EE,GAAgB,SAAU3Y,EAAKjwD,GACjC,IAAI28D,EAAOtG,EAAOpG,EAAK,GACvB,OAAO0M,EAAO,IAAQA,EAAO,MAAStc,EAAOrgD,EAAKiwD,GAAOA,EAAM1sC,mBAAmB0sC,EACpF,EAGI4Y,GAAiB,CACnBC,IAAK,GACLC,KAAM,KACNC,KAAM,GACNC,MAAO,IACPC,GAAI,GACJC,IAAK,KAIHC,GAAuB,SAAU7e,EAAQ8e,GAC3C,IAAIjT,EACJ,OAAwB,GAAjB7L,EAAO1rD,QAAe2gD,EAAK4nB,EAAOjrB,EAAOoO,EAAQ,MAClB,MAA/B6L,EAASja,EAAOoO,EAAQ,MAAgB8e,GAAwB,KAAVjT,EAC/D,EAGIkT,GAA+B,SAAU/e,GAC3C,IAAIgf,EACJ,OAAOhf,EAAO1rD,OAAS,GAAKuqE,GAAqBxpB,EAAY2K,EAAQ,EAAG,MACrD,GAAjBA,EAAO1rD,QAC0B,OAA/B0qE,EAAQptB,EAAOoO,EAAQ,KAAyB,OAAVgf,GAA4B,MAAVA,GAA2B,MAAVA,EAE/E,EAGIC,GAAc,SAAUC,GAC1B,MAAmB,MAAZA,GAA4C,QAAzB90D,EAAY80D,EACxC,EASIC,GAAe,CAAC,EAChBC,GAAS,CAAC,EACVC,GAAY,CAAC,EACbC,GAAgC,CAAC,EACjCC,GAAoB,CAAC,EACrBC,GAAW,CAAC,EACZC,GAAiB,CAAC,EAClBC,GAA4B,CAAC,EAC7BC,GAAmC,CAAC,EACpCC,GAAY,CAAC,EACbC,GAAO,CAAC,EACRC,GAAW,CAAC,EACZC,GAAO,CAAC,EACRC,GAAO,CAAC,EACRC,GAAa,CAAC,EACdC,GAAY,CAAC,EACbC,GAAa,CAAC,EACdC,GAAO,CAAC,EACRC,GAA4B,CAAC,EAC7BC,GAAQ,CAAC,EACTC,GAAW,CAAC,EAEZC,GAAW,SAAUllE,EAAKmlE,EAAQ7T,GACpC,IACI8T,EAAWC,EAASp8B,EADpBq8B,EAAYnH,EAAUn+D,GAE1B,GAAImlE,EAAQ,CAEV,GADAE,EAAUxrE,KAAK0rE,MAAMD,GACR,MAAMzvB,EAAUwvB,GAC7BxrE,KAAKovC,aAAe,IACtB,KAAO,CAGL,QAFaxuC,IAAT62D,IAAoB8T,EAAY,IAAIF,GAAS5T,GAAM,IACvD+T,EAAUxrE,KAAK0rE,MAAMD,EAAW,KAAMF,GACzB,MAAMvvB,EAAUwvB,IAC7Bp8B,EAAeg4B,EAA6B,IAAI/3B,IACnC42B,QAAQjmE,MACrBA,KAAKovC,aAAeA,CACtB,CACF,EAEAi8B,GAASnhE,UAAY,CACnBxM,KAAM,MAGNguE,MAAO,SAAU9pC,EAAO+pC,EAAelU,GACrC,IAOImU,EAAYrb,EAAKsb,EAAkBL,EAzDfzB,EAkDpB5jE,EAAMnG,KACNrD,EAAQgvE,GAAiB3B,GACzB8B,EAAU,EACVC,EAAS,GACTC,GAAS,EACTC,GAAc,EACdC,GAAoB,EAsBxB,IAnBAtqC,EAAQ0iC,EAAU1iC,GAEb+pC,IACHxlE,EAAIgmE,OAAS,GACbhmE,EAAI20D,SAAW,GACf30D,EAAIimE,SAAW,GACfjmE,EAAIiI,KAAO,KACXjI,EAAI6yD,KAAO,KACX7yD,EAAIkmE,KAAO,GACXlmE,EAAI0B,MAAQ,KACZ1B,EAAImmE,SAAW,KACfnmE,EAAIomE,kBAAmB,EACvB3qC,EAAQhpB,EAAQgpB,EAAOumC,GAA0C,KAGnEvmC,EAAQhpB,EAAQgpB,EAAOwmC,GAAkB,IAEzCwD,EAAa5E,EAAUplC,GAEhBkqC,GAAWF,EAAWzsE,QAAQ,CAEnC,OADAoxD,EAAMqb,EAAWE,GACTnvE,GACN,KAAKqtE,GACH,IAAIzZ,IAAOzQ,EAAK4nB,EAAOnX,GAGhB,IAAKob,EAGL,OAAOpE,EAFZ5qE,EAAQutE,GACR,QAC0B,CAL1B6B,GAAU92D,EAAYs7C,GACtB5zD,EAAQstE,GAKV,MAEF,KAAKA,GACH,GAAI1Z,IAAQzQ,EAAK6nB,EAAcpX,IAAe,KAAPA,GAAqB,KAAPA,GAAqB,KAAPA,GACjEwb,GAAU92D,EAAYs7C,OACjB,IAAW,KAAPA,EA0BJ,IAAKob,EAKL,OAAOpE,EAJZwE,EAAS,GACTpvE,EAAQutE,GACR4B,EAAU,EACV,QAC0B,CA9B1B,GAAIH,IACDxlE,EAAIqmE,aAAe7rB,EAAOwoB,GAAgB4C,IAChC,QAAVA,IAAqB5lE,EAAIsmE,uBAAsC,OAAbtmE,EAAI6yD,OACxC,QAAd7yD,EAAIgmE,SAAqBhmE,EAAIiI,MAC7B,OAEH,GADAjI,EAAIgmE,OAASJ,EACTJ,EAEF,YADIxlE,EAAIqmE,aAAerD,GAAehjE,EAAIgmE,SAAWhmE,EAAI6yD,OAAM7yD,EAAI6yD,KAAO,OAG5E+S,EAAS,GACS,QAAd5lE,EAAIgmE,OACNxvE,EAAQkuE,GACC1kE,EAAIqmE,aAAe/U,GAAQA,EAAK0U,QAAUhmE,EAAIgmE,OACvDxvE,EAAQwtE,GACChkE,EAAIqmE,YACb7vE,EAAQ4tE,GAC4B,KAA3BqB,EAAWE,EAAU,IAC9BnvE,EAAQytE,GACR0B,MAEA3lE,EAAIomE,kBAAmB,EACvB3tE,EAAKuH,EAAIkmE,KAAM,IACf1vE,EAAQuuE,GAOgB,CAC5B,MAEF,KAAKhB,GACH,IAAKzS,GAASA,EAAK8U,kBAA2B,KAAPhc,EAAa,OAAOgX,EAC3D,GAAI9P,EAAK8U,kBAA2B,KAAPhc,EAAY,CACvCpqD,EAAIgmE,OAAS1U,EAAK0U,OAClBhmE,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ4vD,EAAK5vD,MACjB1B,EAAImmE,SAAW,GACfnmE,EAAIomE,kBAAmB,EACvB5vE,EAAQyuE,GACR,KACF,CACAzuE,EAAuB,QAAf86D,EAAK0U,OAAmBtB,GAAOR,GACvC,SAEF,KAAKF,GACH,GAAW,KAAP5Z,GAAyC,KAA3Bqb,EAAWE,EAAU,GAGhC,CACLnvE,EAAQ0tE,GACR,QACF,CALE1tE,EAAQ6tE,GACRsB,IAIA,MAEJ,KAAK1B,GACH,GAAW,KAAP7Z,EAAY,CACd5zD,EAAQ8tE,GACR,KACF,CACE9tE,EAAQsuE,GACR,SAGJ,KAAKZ,GAEH,GADAlkE,EAAIgmE,OAAS1U,EAAK0U,OACd5b,GAAOwW,EACT5gE,EAAI20D,SAAWrD,EAAKqD,SACpB30D,EAAIimE,SAAW3U,EAAK2U,SACpBjmE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAI6yD,KAAOvB,EAAKuB,KAChB7yD,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ4vD,EAAK5vD,WACZ,GAAW,KAAP0oD,GAAsB,MAAPA,GAAepqD,EAAIqmE,YAC3C7vE,EAAQ2tE,QACH,GAAW,KAAP/Z,EACTpqD,EAAI20D,SAAWrD,EAAKqD,SACpB30D,EAAIimE,SAAW3U,EAAK2U,SACpBjmE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAI6yD,KAAOvB,EAAKuB,KAChB7yD,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ,GACZlL,EAAQwuE,OACH,IAAW,KAAP5a,EASJ,CACLpqD,EAAI20D,SAAWrD,EAAKqD,SACpB30D,EAAIimE,SAAW3U,EAAK2U,SACpBjmE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAI6yD,KAAOvB,EAAKuB,KAChB7yD,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAIkmE,KAAKltE,SACTxC,EAAQsuE,GACR,QACF,CAjBE9kE,EAAI20D,SAAWrD,EAAKqD,SACpB30D,EAAIimE,SAAW3U,EAAK2U,SACpBjmE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAI6yD,KAAOvB,EAAKuB,KAChB7yD,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ4vD,EAAK5vD,MACjB1B,EAAImmE,SAAW,GACf3vE,EAAQyuE,EAUV,CAAE,MAEJ,KAAKd,GACH,IAAInkE,EAAIqmE,aAAuB,KAAPjc,GAAqB,MAAPA,EAE/B,IAAW,KAAPA,EAEJ,CACLpqD,EAAI20D,SAAWrD,EAAKqD,SACpB30D,EAAIimE,SAAW3U,EAAK2U,SACpBjmE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAI6yD,KAAOvB,EAAKuB,KAChBr8D,EAAQsuE,GACR,QACF,CAREtuE,EAAQ8tE,EAQV,MAVE9tE,EAAQ6tE,GAUR,MAEJ,KAAKD,GAEH,GADA5tE,EAAQ6tE,GACG,KAAPja,GAA6C,KAA/B9T,EAAOsvB,EAAQD,EAAU,GAAW,SACtDA,IACA,MAEF,KAAKtB,GACH,GAAW,KAAPja,GAAqB,MAAPA,EAAa,CAC7B5zD,EAAQ8tE,GACR,QACF,CAAE,MAEJ,KAAKA,GACH,GAAW,KAAPla,EAAY,CACVyb,IAAQD,EAAS,MAAQA,GAC7BC,GAAS,EACTH,EAAmB7E,EAAU+E,GAC7B,IAAK,IAAI3+D,EAAI,EAAGA,EAAIy+D,EAAiB1sE,OAAQiO,IAAK,CAChD,IAAIs/D,EAAYb,EAAiBz+D,GACjC,GAAiB,KAAbs/D,GAAqBR,EAAzB,CAIA,IAAIS,EAAoBzD,GAAcwD,EAAWzD,IAC7CiD,EAAmB/lE,EAAIimE,UAAYO,EAClCxmE,EAAI20D,UAAY6R,CAHrB,MAFET,GAAoB,CAMxB,CACAH,EAAS,EACX,MAAO,GACLxb,GAAOwW,GAAc,KAAPxW,GAAqB,KAAPA,GAAqB,KAAPA,GAClC,MAAPA,GAAepqD,EAAIqmE,YACpB,CACA,GAAIR,GAAoB,IAAVD,EAAc,MAtehB,oBAueZD,GAAW9E,EAAU+E,GAAQ5sE,OAAS,EACtC4sE,EAAS,GACTpvE,EAAQ+tE,EACV,MAAOqB,GAAUxb,EACjB,MAEF,KAAKma,GACL,KAAKC,GACH,GAAIgB,GAA+B,QAAdxlE,EAAIgmE,OAAkB,CACzCxvE,EAAQouE,GACR,QACF,CAAO,GAAW,KAAPxa,GAAe0b,EAOnB,IACL1b,GAAOwW,GAAc,KAAPxW,GAAqB,KAAPA,GAAqB,KAAPA,GAClC,MAAPA,GAAepqD,EAAIqmE,YACpB,CACA,GAAIrmE,EAAIqmE,aAAyB,IAAVT,EAAc,OAAOvE,EAC5C,GAAImE,GAA2B,IAAVI,IAAiB5lE,EAAIsmE,uBAAsC,OAAbtmE,EAAI6yD,MAAgB,OAEvF,GADAwS,EAAUrlE,EAAIymE,UAAUb,GACX,OAAOP,EAGpB,GAFAO,EAAS,GACTpvE,EAAQquE,GACJW,EAAe,OACnB,QACF,CACa,KAAPpb,EAAY0b,GAAc,EACd,KAAP1b,IAAY0b,GAAc,GACnCF,GAAUxb,CACZ,KAvBuC,CACrC,GAAc,IAAVwb,EAAc,OAAOvE,EAEzB,GADAgE,EAAUrlE,EAAIymE,UAAUb,GACX,OAAOP,EAGpB,GAFAO,EAAS,GACTpvE,EAAQiuE,GACJe,GAAiBhB,GAAU,MACjC,CAgBE,MAEJ,KAAKC,GACH,IAAI9qB,EAAK8nB,EAAOrX,GAET,IACLA,GAAOwW,GAAc,KAAPxW,GAAqB,KAAPA,GAAqB,KAAPA,GAClC,MAAPA,GAAepqD,EAAIqmE,aACpBb,EACA,CACA,GAAc,IAAVI,EAAc,CAChB,IAAI/S,EAAO/sD,EAAS8/D,EAAQ,IAC5B,GAAI/S,EAAO,MAAQ,OAAOyO,EAC1BthE,EAAI6yD,KAAQ7yD,EAAIqmE,aAAexT,IAASmQ,GAAehjE,EAAIgmE,QAAW,KAAOnT,EAC7E+S,EAAS,EACX,CACA,GAAIJ,EAAe,OACnBhvE,EAAQquE,GACR,QACF,CAAO,OAAOvD,CAAY,CAfxBsE,GAAUxb,EAgBZ,MAEF,KAAKsa,GAEH,GADA1kE,EAAIgmE,OAAS,OACF,KAAP5b,GAAqB,MAAPA,EAAa5zD,EAAQmuE,OAClC,KAAIrT,GAAuB,QAAfA,EAAK0U,OAyBf,CACLxvE,EAAQsuE,GACR,QACF,CA3BE,GAAI1a,GAAOwW,EACT5gE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ4vD,EAAK5vD,WACZ,GAAW,KAAP0oD,EACTpqD,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ,GACZlL,EAAQwuE,OACH,IAAW,KAAP5a,EAMJ,CACAqZ,GAA6B7/D,EAAK60C,EAAWgtB,EAAYE,GAAU,OACtE3lE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0mE,eAENlwE,EAAQsuE,GACR,QACF,CAbE9kE,EAAIiI,KAAOqpD,EAAKrpD,KAChBjI,EAAIkmE,KAAOztB,EAAW6Y,EAAK4U,MAC3BlmE,EAAI0B,MAAQ4vD,EAAK5vD,MACjB1B,EAAImmE,SAAW,GACf3vE,EAAQyuE,EASV,CAIF,CAAE,MAEJ,KAAKN,GACH,GAAW,KAAPva,GAAqB,MAAPA,EAAa,CAC7B5zD,EAAQouE,GACR,KACF,CACItT,GAAuB,QAAfA,EAAK0U,SAAqBvC,GAA6B7/D,EAAK60C,EAAWgtB,EAAYE,GAAU,OACnGpC,GAAqBjS,EAAK4U,KAAK,IAAI,GAAOztE,EAAKuH,EAAIkmE,KAAM5U,EAAK4U,KAAK,IAClElmE,EAAIiI,KAAOqpD,EAAKrpD,MAEvBzR,EAAQsuE,GACR,SAEF,KAAKF,GACH,GAAIxa,GAAOwW,GAAc,KAAPxW,GAAqB,MAAPA,GAAsB,KAAPA,GAAqB,KAAPA,EAAY,CACvE,IAAKob,GAAiBjC,GAAqBqC,GACzCpvE,EAAQsuE,QACH,GAAc,IAAVc,EAAc,CAEvB,GADA5lE,EAAIiI,KAAO,GACPu9D,EAAe,OACnBhvE,EAAQquE,EACV,KAAO,CAEL,GADAQ,EAAUrlE,EAAIymE,UAAUb,GACX,OAAOP,EAEpB,GADgB,aAAZrlE,EAAIiI,OAAqBjI,EAAIiI,KAAO,IACpCu9D,EAAe,OACnBI,EAAS,GACTpvE,EAAQquE,EACV,CAAE,QACJ,CAAOe,GAAUxb,EACjB,MAEF,KAAKya,GACH,GAAI7kE,EAAIqmE,aAEN,GADA7vE,EAAQsuE,GACG,KAAP1a,GAAqB,MAAPA,EAAa,cAC1B,GAAKob,GAAwB,KAAPpb,EAGtB,GAAKob,GAAwB,KAAPpb,GAGtB,GAAIA,GAAOwW,IAChBpqE,EAAQsuE,GACG,KAAP1a,GAAY,cAJhBpqD,EAAImmE,SAAW,GACf3vE,EAAQyuE,QAJRjlE,EAAI0B,MAAQ,GACZlL,EAAQwuE,GAOR,MAEJ,KAAKF,GACH,GACE1a,GAAOwW,GAAc,KAAPxW,GACN,MAAPA,GAAepqD,EAAIqmE,cAClBb,IAAyB,KAAPpb,GAAqB,KAAPA,GAClC,CAkBA,GAlZS,QADnBwZ,EAAU90D,EADgB80D,EAmYAgC,KAjYa,SAAZhC,GAAkC,SAAZA,GAAkC,WAAZA,GAkY3D5jE,EAAI0mE,cACO,KAAPtc,GAAuB,MAAPA,GAAepqD,EAAIqmE,aACrC5tE,EAAKuH,EAAIkmE,KAAM,KAERvC,GAAYiC,GACV,KAAPxb,GAAuB,MAAPA,GAAepqD,EAAIqmE,aACrC5tE,EAAKuH,EAAIkmE,KAAM,KAGC,QAAdlmE,EAAIgmE,SAAqBhmE,EAAIkmE,KAAKltE,QAAUuqE,GAAqBqC,KAC/D5lE,EAAIiI,OAAMjI,EAAIiI,KAAO,IACzB29D,EAAStvB,EAAOsvB,EAAQ,GAAK,KAE/BntE,EAAKuH,EAAIkmE,KAAMN,IAEjBA,EAAS,GACS,QAAd5lE,EAAIgmE,SAAqB5b,GAAOwW,GAAc,KAAPxW,GAAqB,KAAPA,GACvD,KAAOpqD,EAAIkmE,KAAKltE,OAAS,GAAqB,KAAhBgH,EAAIkmE,KAAK,IACrCphE,EAAM9E,EAAIkmE,MAGH,KAAP9b,GACFpqD,EAAI0B,MAAQ,GACZlL,EAAQwuE,IACQ,KAAP5a,IACTpqD,EAAImmE,SAAW,GACf3vE,EAAQyuE,GAEZ,MACEW,GAAU7C,GAAc3Y,EAAKyY,IAC7B,MAEJ,KAAKkC,GACQ,KAAP3a,GACFpqD,EAAI0B,MAAQ,GACZlL,EAAQwuE,IACQ,KAAP5a,GACTpqD,EAAImmE,SAAW,GACf3vE,EAAQyuE,IACC7a,GAAOwW,IAChB5gE,EAAIkmE,KAAK,IAAMnD,GAAc3Y,EAAKuY,KAClC,MAEJ,KAAKqC,GACEQ,GAAwB,KAAPpb,EAGXA,GAAOwW,IACL,KAAPxW,GAAcpqD,EAAIqmE,YAAarmE,EAAI0B,OAAS,MAC3B1B,EAAI0B,OAAT,KAAP0oD,EAAyB,MAChB2Y,GAAc3Y,EAAKuY,MALrC3iE,EAAImmE,SAAW,GACf3vE,EAAQyuE,IAKR,MAEJ,KAAKA,GACC7a,GAAOwW,IAAK5gE,EAAImmE,UAAYpD,GAAc3Y,EAAKwY,KAIvD+C,GACF,CACF,EAEAc,UAAW,SAAUhrC,GACnB,IAAI5Q,EAAQ46C,EAAYxsE,EACxB,GAAwB,KAApBq9C,EAAO7a,EAAO,GAAW,CAC3B,GAAuC,KAAnC6a,EAAO7a,EAAOA,EAAMziC,OAAS,GAAW,OAAOqoE,EAEnD,GADAx2C,EAznBU,SAAU4Q,GACxB,IAII1gC,EAAO/B,EAAQ2tE,EAAaC,EAAW1S,EAAQ2S,EAAOC,EAJtD/iC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCgjC,EAAa,EACb5E,EAAW,KACXwD,EAAU,EAGVvb,EAAM,WACR,OAAO9T,EAAO7a,EAAOkqC,EACvB,EAEA,GAAa,KAATvb,IAAc,CAChB,GAAwB,KAApB9T,EAAO7a,EAAO,GAAW,OAC7BkqC,GAAW,EAEXxD,IADA4E,CAEF,CACA,KAAO3c,KAAO,CACZ,GAAkB,GAAd2c,EAAiB,OACrB,GAAa,KAAT3c,IAAJ,CAQA,IADArvD,EAAQ/B,EAAS,EACVA,EAAS,GAAK2gD,EAAKkoB,GAAKzX,MAC7BrvD,EAAgB,GAARA,EAAa+K,EAASskD,IAAO,IACrCub,IACA3sE,IAEF,GAAa,KAAToxD,IAAc,CAChB,GAAc,GAAVpxD,EAAa,OAEjB,GADA2sE,GAAW3sE,EACP+tE,EAAa,EAAG,OAEpB,IADAJ,EAAc,EACPvc,KAAO,CAEZ,GADAwc,EAAY,KACRD,EAAc,EAAG,CACnB,KAAa,KAATvc,KAAgBuc,EAAc,GAC7B,OADgChB,GAEvC,CACA,IAAKhsB,EAAK8nB,EAAOrX,KAAQ,OACzB,KAAOzQ,EAAK8nB,EAAOrX,MAAQ,CAEzB,GADA8J,EAASpuD,EAASskD,IAAO,IACP,OAAdwc,EAAoBA,EAAY1S,MAC/B,IAAiB,GAAb0S,EAAgB,OACpBA,EAAwB,GAAZA,EAAiB1S,CAAM,CACxC,GAAI0S,EAAY,IAAK,OACrBjB,GACF,CACA5hC,EAAQgjC,GAAoC,IAAtBhjC,EAAQgjC,GAAoBH,EAE/B,KADnBD,GACuC,GAAfA,GAAkBI,GAC5C,CACA,GAAmB,GAAfJ,EAAkB,OACtB,KACF,CAAO,GAAa,KAATvc,KAET,GADAub,KACKvb,IAAO,YACP,GAAIA,IAAO,OAClBrmB,EAAQgjC,KAAgBhsE,CArCxB,KANA,CACE,GAAiB,OAAbonE,EAAmB,OACvBwD,IAEAxD,IADA4E,CAGF,CAsCF,CACA,GAAiB,OAAb5E,EAGF,IAFA0E,EAAQE,EAAa5E,EACrB4E,EAAa,EACQ,GAAdA,GAAmBF,EAAQ,GAChCC,EAAO/iC,EAAQgjC,GACfhjC,EAAQgjC,KAAgBhjC,EAAQo+B,EAAW0E,EAAQ,GACnD9iC,EAAQo+B,IAAa0E,GAASC,OAE3B,GAAkB,GAAdC,EAAiB,OAC5B,OAAOhjC,CACT,CA+iBeijC,CAAUjtB,EAAYte,EAAO,GAAI,KACrC5Q,EAAQ,OAAOw2C,EACpBxnE,KAAKoO,KAAO4iB,CAEd,MAAO,GAAKhxB,KAAKwsE,YAQV,CAEL,GADA5qC,EAAQqlC,EAAQrlC,GACZke,EAAKmoB,GAA2BrmC,GAAQ,OAAO4lC,EAEnD,GADAx2C,EAhrBU,SAAU4Q,GACxB,IACIwrC,EAAaC,EAASjuE,EAAOkuE,EAAMC,EAAOlT,EAAQmT,EADlDC,EAAQ3wE,EAAM8kC,EAAO,KAMzB,GAJI6rC,EAAMtuE,QAAqC,IAA3BsuE,EAAMA,EAAMtuE,OAAS,IACvCsuE,EAAMtuE,UAERiuE,EAAcK,EAAMtuE,QACF,EAAG,OAAOyiC,EAE5B,IADAyrC,EAAU,GACLjuE,EAAQ,EAAGA,EAAQguE,EAAahuE,IAAS,CAE5C,GAAY,KADZkuE,EAAOG,EAAMruE,IACG,OAAOwiC,EAMvB,GALA2rC,EAAQ,GACJD,EAAKnuE,OAAS,GAAwB,KAAnBs9C,EAAO6wB,EAAM,KAClCC,EAAQztB,EAAK+nB,EAAWyF,GAAQ,GAAK,EACrCA,EAAOptB,EAAYotB,EAAe,GAATC,EAAa,EAAI,IAE/B,KAATD,EACFjT,EAAS,MACJ,CACL,IAAKva,EAAc,IAATytB,EAAcxF,EAAe,GAATwF,EAAazF,EAAME,GAAKsF,GAAO,OAAO1rC,EACpEy4B,EAASpuD,EAASqhE,EAAMC,EAC1B,CACA3uE,EAAKyuE,EAAShT,EAChB,CACA,IAAKj7D,EAAQ,EAAGA,EAAQguE,EAAahuE,IAEnC,GADAi7D,EAASgT,EAAQjuE,GACbA,GAASguE,EAAc,GACzB,GAAI/S,GAAUrpB,EAAI,IAAK,EAAIo8B,GAAc,OAAO,UAC3C,GAAI/S,EAAS,IAAK,OAAO,KAGlC,IADAmT,EAAOjnD,EAAI8mD,GACNjuE,EAAQ,EAAGA,EAAQiuE,EAAQluE,OAAQC,IACtCouE,GAAQH,EAAQjuE,GAAS4xC,EAAI,IAAK,EAAI5xC,GAExC,OAAOouE,CACT,CA4oBeE,CAAU9rC,GACJ,OAAX5Q,EAAiB,OAAOw2C,EAC5BxnE,KAAKoO,KAAO4iB,CACd,KAd8B,CAC5B,GAAI8uB,EAAKooB,GAA6CtmC,GAAQ,OAAO4lC,EAGrE,IAFAx2C,EAAS,GACT46C,EAAa5E,EAAUplC,GAClBxiC,EAAQ,EAAGA,EAAQwsE,EAAWzsE,OAAQC,IACzC4xB,GAAUk4C,GAAc0C,EAAWxsE,GAAQ0pE,IAE7C9oE,KAAKoO,KAAO4iB,CACd,CAOF,EAEA28C,+BAAgC,WAC9B,OAAQ3tE,KAAKoO,MAAQpO,KAAKusE,kBAAmC,QAAfvsE,KAAKmsE,MACrD,EAEAM,oBAAqB,WACnB,MAAwB,IAAjBzsE,KAAK86D,UAAmC,IAAjB96D,KAAKosE,QACrC,EAEAI,UAAW,WACT,OAAO7rB,EAAOwoB,GAAgBnpE,KAAKmsE,OACrC,EAEAU,YAAa,WACX,IAAIR,EAAOrsE,KAAKqsE,KACZuB,EAAWvB,EAAKltE,QAChByuE,GAA4B,QAAf5tE,KAAKmsE,QAAgC,GAAZyB,GAAkBlE,GAAqB2C,EAAK,IAAI,IACxFA,EAAKltE,QAET,EAEAwmE,UAAW,WACT,IAAIx/D,EAAMnG,KACNmsE,EAAShmE,EAAIgmE,OACbrR,EAAW30D,EAAI20D,SACfsR,EAAWjmE,EAAIimE,SACfh+D,EAAOjI,EAAIiI,KACX4qD,EAAO7yD,EAAI6yD,KACXqT,EAAOlmE,EAAIkmE,KACXxkE,EAAQ1B,EAAI0B,MACZykE,EAAWnmE,EAAImmE,SACf3U,EAASwU,EAAS,IAYtB,OAXa,OAAT/9D,GACFupD,GAAU,KACNxxD,EAAIsmE,wBACN9U,GAAUmD,GAAYsR,EAAW,IAAMA,EAAW,IAAM,KAE1DzU,GAAU0Q,GAAcj6D,GACX,OAAT4qD,IAAerB,GAAU,IAAMqB,IAChB,QAAVmT,IAAkBxU,GAAU,MACvCA,GAAUxxD,EAAIomE,iBAAmBF,EAAK,GAAKA,EAAKltE,OAAS,IAAM4K,EAAKsiE,EAAM,KAAO,GACnE,OAAVxkE,IAAgB8vD,GAAU,IAAM9vD,GACnB,OAAbykE,IAAmB3U,GAAU,IAAM2U,GAChC3U,CACT,EAEAkW,QAAS,SAAUngC,GACjB,IAAI89B,EAAUxrE,KAAK0rE,MAAMh+B,GACzB,GAAI89B,EAAS,MAAMxvB,EAAUwvB,GAC7BxrE,KAAKovC,aAAazb,QACpB,EAEAm6C,UAAW,WACT,IAAI3B,EAASnsE,KAAKmsE,OACdnT,EAAOh5D,KAAKg5D,KAChB,GAAc,QAAVmT,EAAkB,IACpB,OAAO,IAAI4B,GAAe5B,EAAOE,KAAK,IAAIt+B,MAG5C,CAFE,MAAO9gC,GACP,MAAO,MACT,CACA,MAAc,QAAVk/D,GAAqBnsE,KAAKwsE,YACvBL,EAAS,MAAQ9D,GAAcroE,KAAKoO,OAAkB,OAAT4qD,EAAgB,IAAMA,EAAO,IAD/B,MAEpD,EAEAgV,YAAa,WACX,OAAOhuE,KAAKmsE,OAAS,GACvB,EACA8B,YAAa,SAAU5pC,GACrBrkC,KAAK0rE,MAAMpH,EAAUjgC,GAAY,IAAK2lC,GACxC,EAEAkE,YAAa,WACX,OAAOluE,KAAK86D,QACd,EACAqT,YAAa,SAAUrT,GACrB,IAAI8Q,EAAa5E,EAAU1C,EAAUxJ,IACrC,IAAI96D,KAAK2tE,iCAAT,CACA3tE,KAAK86D,SAAW,GAChB,IAAK,IAAI1tD,EAAI,EAAGA,EAAIw+D,EAAWzsE,OAAQiO,IACrCpN,KAAK86D,UAAYoO,GAAc0C,EAAWx+D,GAAI67D,GAHC,CAKnD,EAEAmF,YAAa,WACX,OAAOpuE,KAAKosE,QACd,EACAiC,YAAa,SAAUjC,GACrB,IAAIR,EAAa5E,EAAU1C,EAAU8H,IACrC,IAAIpsE,KAAK2tE,iCAAT,CACA3tE,KAAKosE,SAAW,GAChB,IAAK,IAAIh/D,EAAI,EAAGA,EAAIw+D,EAAWzsE,OAAQiO,IACrCpN,KAAKosE,UAAYlD,GAAc0C,EAAWx+D,GAAI67D,GAHC,CAKnD,EAEAqF,QAAS,WACP,IAAIlgE,EAAOpO,KAAKoO,KACZ4qD,EAAOh5D,KAAKg5D,KAChB,OAAgB,OAAT5qD,EAAgB,GACV,OAAT4qD,EAAgBqP,GAAcj6D,GAC9Bi6D,GAAcj6D,GAAQ,IAAM4qD,CAClC,EACAuV,QAAS,SAAUngE,GACbpO,KAAKusE,kBACTvsE,KAAK0rE,MAAMt9D,EAAMs8D,GACnB,EAEA8D,YAAa,WACX,IAAIpgE,EAAOpO,KAAKoO,KAChB,OAAgB,OAATA,EAAgB,GAAKi6D,GAAcj6D,EAC5C,EACAqgE,YAAa,SAAUrzB,GACjBp7C,KAAKusE,kBACTvsE,KAAK0rE,MAAMtwB,EAAUuvB,GACvB,EAEA+D,QAAS,WACP,IAAI1V,EAAOh5D,KAAKg5D,KAChB,OAAgB,OAATA,EAAgB,GAAKsL,EAAUtL,EACxC,EACA2V,QAAS,SAAU3V,GACbh5D,KAAK2tE,mCAEG,KADZ3U,EAAOsL,EAAUtL,IACDh5D,KAAKg5D,KAAO,KACvBh5D,KAAK0rE,MAAM1S,EAAM4R,IACxB,EAEAgE,YAAa,WACX,IAAIvC,EAAOrsE,KAAKqsE,KAChB,OAAOrsE,KAAKusE,iBAAmBF,EAAK,GAAKA,EAAKltE,OAAS,IAAM4K,EAAKsiE,EAAM,KAAO,EACjF,EACAwC,YAAa,SAAU18B,GACjBnyC,KAAKusE,mBACTvsE,KAAKqsE,KAAO,GACZrsE,KAAK0rE,MAAMv5B,EAAU64B,IACvB,EAEA8D,UAAW,WACT,IAAIjnE,EAAQ7H,KAAK6H,MACjB,OAAOA,EAAQ,IAAMA,EAAQ,EAC/B,EACAknE,UAAW,SAAUxtC,GAEL,KADdA,EAAS+iC,EAAU/iC,IAEjBvhC,KAAK6H,MAAQ,MAET,KAAO40C,EAAOlb,EAAQ,KAAIA,EAAS2e,EAAY3e,EAAQ,IAC3DvhC,KAAK6H,MAAQ,GACb7H,KAAK0rE,MAAMnqC,EAAQ4pC,KAErBnrE,KAAKovC,aAAazb,QACpB,EAEAq7C,gBAAiB,WACf,OAAOhvE,KAAKovC,aAAawa,MAC3B,EAEAqlB,QAAS,WACP,IAAI3C,EAAWtsE,KAAKssE,SACpB,OAAOA,EAAW,IAAMA,EAAW,EACrC,EACA4C,QAAS,SAAUzwD,GAEL,KADZA,EAAO6lD,EAAU7lD,KAKb,KAAOg+B,EAAOh+B,EAAM,KAAIA,EAAOyhC,EAAYzhC,EAAM,IACrDze,KAAKssE,SAAW,GAChBtsE,KAAK0rE,MAAMjtD,EAAM2sD,KALfprE,KAAKssE,SAAW,IAMpB,EACA34C,OAAQ,WACN3zB,KAAK6H,MAAQ7H,KAAKovC,aAAau2B,aAAe,IAChD,GAKF,IAAIoI,GAAiB,SAAa5nE,GAChC,IAAIohD,EAAO6W,EAAWp+D,KAAMmvE,IACxB1X,EAAOwB,EAAwB1oD,UAAUpR,OAAQ,GAAK,EAAIoR,UAAU,QAAK3P,EACzEjE,EAAQi/D,EAAiBrU,EAAM,IAAI8jB,GAASllE,GAAK,EAAOsxD,IACvDjZ,IACH+I,EAAK7Z,KAAO/wC,EAAMgpE,YAClBpe,EAAKxZ,OAASpxC,EAAMmxE,YACpBvmB,EAAKljB,SAAW1nC,EAAMqxE,cACtBzmB,EAAKuT,SAAWn+D,EAAMuxE,cACtB3mB,EAAK6kB,SAAWzvE,EAAMyxE,cACtB7mB,EAAKn5C,KAAOzR,EAAM2xE,UAClB/mB,EAAKnM,SAAWz+C,EAAM6xE,cACtBjnB,EAAKyR,KAAOr8D,EAAM+xE,UAClBnnB,EAAKpV,SAAWx1C,EAAMiyE,cACtBrnB,EAAKhmB,OAAS5kC,EAAMmyE,YACpBvnB,EAAKnY,aAAezyC,EAAMqyE,kBAC1BznB,EAAK9oC,KAAO9hB,EAAMsyE,UAEtB,EAEIE,GAAepB,GAAe7jE,UAE9BklE,GAAqB,SAAU5tB,EAAQC,GACzC,MAAO,CACLlhD,IAAK,WACH,OAAO4mE,EAAoBnnE,MAAMwhD,IACnC,EACAlhD,IAAKmhD,GAAU,SAAUvgD,GACvB,OAAOimE,EAAoBnnE,MAAMyhD,GAAQvgD,EAC3C,EACA2P,cAAc,EACdT,YAAY,EAEhB,EAqDA,GAnDIouC,IAGF6jB,EAAsB8M,GAAc,OAAQC,GAAmB,YAAa,YAG5E/M,EAAsB8M,GAAc,SAAUC,GAAmB,cAGjE/M,EAAsB8M,GAAc,WAAYC,GAAmB,cAAe,gBAGlF/M,EAAsB8M,GAAc,WAAYC,GAAmB,cAAe,gBAGlF/M,EAAsB8M,GAAc,WAAYC,GAAmB,cAAe,gBAGlF/M,EAAsB8M,GAAc,OAAQC,GAAmB,UAAW,YAG1E/M,EAAsB8M,GAAc,WAAYC,GAAmB,cAAe,gBAGlF/M,EAAsB8M,GAAc,OAAQC,GAAmB,UAAW,YAG1E/M,EAAsB8M,GAAc,WAAYC,GAAmB,cAAe,gBAGlF/M,EAAsB8M,GAAc,SAAUC,GAAmB,YAAa,cAG9E/M,EAAsB8M,GAAc,eAAgBC,GAAmB,oBAGvE/M,EAAsB8M,GAAc,OAAQC,GAAmB,UAAW,aAK5ErtB,EAAcotB,GAAc,UAAU,WACpC,OAAOhI,EAAoBnnE,MAAM2lE,WACnC,GAAG,CAAEv1D,YAAY,IAIjB2xC,EAAcotB,GAAc,YAAY,WACtC,OAAOhI,EAAoBnnE,MAAM2lE,WACnC,GAAG,CAAEv1D,YAAY,IAEbi3D,EAAW,CACb,IAAIgI,GAAwBhI,EAAUiI,gBAClCC,GAAwBlI,EAAUmI,gBAGlCH,IAAuBttB,EAAcgsB,GAAgB,kBAAmBzsE,EAAK+tE,GAAuBhI,IAGpGkI,IAAuBxtB,EAAcgsB,GAAgB,kBAAmBzsE,EAAKiuE,GAAuBlI,GAC1G,CAEAlb,EAAe4hB,GAAgB,OAE/BvhB,EAAE,CAAE9wD,QAAQ,EAAM6c,aAAa,EAAMqtC,QAASwe,EAAgBve,MAAOrH,GAAe,CAClFrP,IAAK4+B,oBC/gCP,EAAQ,wBCEyDpyB,EAAOD,QAGhE,WAAc,aAEpB,SAAS+zB,EAAmB1wE,GAAO,GAAIqG,MAAMC,QAAQtG,GAAM,CAAE,IAAK,IAAIqO,EAAI,EAAGsiE,EAAOtqE,MAAMrG,EAAII,QAASiO,EAAIrO,EAAII,OAAQiO,IAAOsiE,EAAKtiE,GAAKrO,EAAIqO,GAAM,OAAOsiE,CAAM,CAAS,OAAOtqE,MAAM0C,KAAK/I,EAAQ,CAElM,IAAI02B,EAAiBz0B,OAAOy0B,eACxBozB,EAAiB7nD,OAAO6nD,eACxB8mB,EAAW3uE,OAAO2uE,SAClB1uB,EAAiBjgD,OAAOigD,eACxB9wC,EAA2BnP,OAAOmP,yBAClCy/D,EAAS5uE,OAAO4uE,OAChBC,EAAO7uE,OAAO6uE,KACdvzB,EAASt7C,OAAOs7C,OAEhBzuC,EAA0B,oBAAZw5C,SAA2BA,QACzCz8C,EAAQiD,EAAKjD,MACbu/C,EAAYt8C,EAAKs8C,UAEhBv/C,IACHA,EAAQ,SAAeklE,EAAKC,EAAWt+C,GACrC,OAAOq+C,EAAIllE,MAAMmlE,EAAWt+C,EAC9B,GAGGm+C,IACHA,EAAS,SAAgB7vE,GACvB,OAAOA,CACT,GAGG8vE,IACHA,EAAO,SAAc9vE,GACnB,OAAOA,CACT,GAGGoqD,IACHA,EAAY,SAAmB6lB,EAAMv+C,GACnC,OAAO,IAAK21B,SAASl9C,UAAU5I,KAAKsJ,MAAMolE,EAAM,CAAC,MAAM1gE,OAAOmgE,EAAmBh+C,KACnF,GAGF,IAAIw+C,EAAeC,EAAQ9qE,MAAM8E,UAAU8E,SACvCmhE,EAAWD,EAAQ9qE,MAAM8E,UAAUqc,KACnC6pD,EAAYF,EAAQ9qE,MAAM8E,UAAUtL,MAEpCyxE,EAAoBH,EAAQ9zB,OAAOlyC,UAAU+K,aAC7Cq7D,EAAcJ,EAAQ9zB,OAAOlyC,UAAUtF,OACvC2rE,EAAgBL,EAAQ9zB,OAAOlyC,UAAU0O,SACzCsoD,EAAgBgP,EAAQ9zB,OAAOlyC,UAAUoH,SACzCk/D,EAAaN,EAAQ9zB,OAAOlyC,UAAUrE,MAEtC4qE,EAAaP,EAAQhhC,OAAOhlC,UAAU6B,MAEtC2kE,EAAkBC,EAAY30B,WAElC,SAASk0B,EAAQxzE,GACf,OAAO,SAAUk0E,GACf,IAAK,IAAI5+D,EAAOzB,UAAUpR,OAAQsyB,EAAOrsB,MAAM4M,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9Fuf,EAAKvf,EAAO,GAAK3B,UAAU2B,GAG7B,OAAOtH,EAAMlO,EAAMk0E,EAASn/C,EAC9B,CACF,CAEA,SAASk/C,EAAYj0E,GACnB,OAAO,WACL,IAAK,IAAImX,EAAQtD,UAAUpR,OAAQsyB,EAAOrsB,MAAMyO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF2d,EAAK3d,GAASvD,UAAUuD,GAG1B,OAAOq2C,EAAUztD,EAAM+0B,EACzB,CACF,CAGA,SAASo/C,EAASvwE,EAAKw+C,GACjB+J,GAIFA,EAAevoD,EAAK,MAItB,IADA,IAAIwwE,EAAIhyB,EAAM3/C,OACP2xE,KAAK,CACV,IAAIxmE,EAAUw0C,EAAMgyB,GACpB,GAAuB,iBAAZxmE,EAAsB,CAC/B,IAAIymE,EAAYV,EAAkB/lE,GAC9BymE,IAAczmE,IAEXqlE,EAAS7wB,KACZA,EAAMgyB,GAAKC,GAGbzmE,EAAUymE,EAEd,CAEAzwE,EAAIgK,IAAW,CACjB,CAEA,OAAOhK,CACT,CAGA,SAASu2C,EAAMhnC,GACb,IAAImhE,EAAY10B,EAAO,MAEnB9d,OAAW,EACf,IAAKA,KAAY3uB,EACXjF,EAAM6qB,EAAgB5lB,EAAQ,CAAC2uB,MACjCwyC,EAAUxyC,GAAY3uB,EAAO2uB,IAIjC,OAAOwyC,CACT,CAMA,SAASC,EAAaphE,EAAQqhE,GAC5B,KAAkB,OAAXrhE,GAAiB,CACtB,IAAIshE,EAAOhhE,EAAyBN,EAAQqhE,GAC5C,GAAIC,EAAM,CACR,GAAIA,EAAK5wE,IACP,OAAO2vE,EAAQiB,EAAK5wE,KAGtB,GAA0B,mBAAf4wE,EAAKjwE,MACd,OAAOgvE,EAAQiB,EAAKjwE,MAExB,CAEA2O,EAASoxC,EAAepxC,EAC1B,CAEA,SAASuhE,EAAc9mE,GAErB,OADA0C,QAAQquC,KAAK,qBAAsB/wC,GAC5B,IACT,CAEA,OAAO8mE,CACT,CAEA,IAAI95C,EAAOs4C,EAAO,CAAC,IAAK,OAAQ,UAAW,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,MAAO,MAAO,MAAO,QAAS,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,SAAU,OAAQ,OAAQ,MAAO,WAAY,UAAW,OAAQ,WAAY,KAAM,YAAa,MAAO,UAAW,MAAO,SAAU,MAAO,MAAO,KAAM,KAAM,UAAW,KAAM,WAAY,aAAc,SAAU,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,MAAO,QAAS,MAAO,MAAO,QAAS,SAAU,KAAM,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,QAAS,MAAO,OAAQ,KAAM,WAAY,SAAU,SAAU,IAAK,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,UAAW,SAAU,SAAU,QAAS,SAAU,SAAU,OAAQ,SAAU,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,WAAY,QAAS,KAAM,QAAS,OAAQ,KAAM,QAAS,KAAM,IAAK,KAAM,MAAO,QAAS,QAGj+ByB,EAAMzB,EAAO,CAAC,MAAO,IAAK,WAAY,cAAe,eAAgB,eAAgB,gBAAiB,mBAAoB,SAAU,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,iBAAkB,SAAU,OAAQ,WAAY,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAEzc0B,EAAa1B,EAAO,CAAC,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,iBAMhX2B,EAAgB3B,EAAO,CAAC,UAAW,gBAAiB,SAAU,UAAW,eAAgB,YAAa,mBAAoB,iBAAkB,gBAAiB,gBAAiB,gBAAiB,QAAS,YAAa,OAAQ,eAAgB,YAAa,UAAW,gBAAiB,SAAU,MAAO,aAAc,UAAW,QAEhU4B,EAAS5B,EAAO,CAAC,OAAQ,WAAY,SAAU,UAAW,QAAS,SAAU,KAAM,aAAc,gBAAiB,KAAM,KAAM,QAAS,UAAW,WAAY,QAAS,OAAQ,KAAM,SAAU,QAAS,SAAU,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,MAAO,SAAU,eAIxR6B,EAAmB7B,EAAO,CAAC,UAAW,cAAe,aAAc,WAAY,YAAa,UAAW,UAAW,SAAU,SAAU,QAAS,YAAa,aAAc,iBAAkB,cAAe,SAE3MvhC,EAAOuhC,EAAO,CAAC,UAEf8B,EAAS9B,EAAO,CAAC,SAAU,SAAU,QAAS,MAAO,iBAAkB,eAAgB,uBAAwB,WAAY,aAAc,UAAW,SAAU,UAAW,cAAe,cAAe,UAAW,OAAQ,QAAS,QAAS,QAAS,OAAQ,UAAW,WAAY,eAAgB,SAAU,cAAe,WAAY,WAAY,UAAW,MAAO,WAAY,0BAA2B,wBAAyB,WAAY,YAAa,UAAW,eAAgB,OAAQ,MAAO,UAAW,SAAU,SAAU,OAAQ,OAAQ,WAAY,KAAM,YAAa,YAAa,QAAS,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,MAAO,MAAO,YAAa,QAAS,SAAU,MAAO,YAAa,WAAY,QAAS,OAAQ,QAAS,UAAW,aAAc,SAAU,OAAQ,UAAW,UAAW,cAAe,cAAe,SAAU,UAAW,UAAW,aAAc,WAAY,MAAO,WAAY,MAAO,WAAY,OAAQ,OAAQ,UAAW,aAAc,QAAS,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,UAAW,WAAY,QAAS,YAAa,OAAQ,SAAU,SAAU,QAAS,QAAS,QAAS,SAEnqC+B,EAAQ/B,EAAO,CAAC,gBAAiB,aAAc,WAAY,qBAAsB,SAAU,gBAAiB,gBAAiB,UAAW,gBAAiB,iBAAkB,QAAS,OAAQ,KAAM,QAAS,OAAQ,gBAAiB,YAAa,YAAa,QAAS,sBAAuB,8BAA+B,gBAAiB,kBAAmB,KAAM,KAAM,IAAK,KAAM,KAAM,kBAAmB,YAAa,UAAW,UAAW,MAAO,WAAY,YAAa,MAAO,OAAQ,eAAgB,YAAa,SAAU,cAAe,cAAe,gBAAiB,cAAe,YAAa,mBAAoB,eAAgB,aAAc,eAAgB,cAAe,KAAM,KAAM,KAAM,KAAM,aAAc,WAAY,gBAAiB,oBAAqB,SAAU,OAAQ,KAAM,kBAAmB,KAAM,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,UAAW,YAAa,aAAc,WAAY,OAAQ,eAAgB,iBAAkB,eAAgB,mBAAoB,iBAAkB,QAAS,aAAc,aAAc,eAAgB,eAAgB,cAAe,cAAe,mBAAoB,YAAa,MAAO,OAAQ,QAAS,SAAU,OAAQ,MAAO,OAAQ,aAAc,SAAU,WAAY,UAAW,QAAS,SAAU,cAAe,SAAU,WAAY,cAAe,OAAQ,aAAc,sBAAuB,mBAAoB,eAAgB,SAAU,gBAAiB,sBAAuB,iBAAkB,IAAK,KAAM,KAAM,SAAU,OAAQ,OAAQ,cAAe,YAAa,UAAW,SAAU,SAAU,QAAS,OAAQ,kBAAmB,mBAAoB,mBAAoB,eAAgB,cAAe,eAAgB,cAAe,aAAc,eAAgB,mBAAoB,oBAAqB,iBAAkB,kBAAmB,oBAAqB,iBAAkB,SAAU,eAAgB,QAAS,eAAgB,iBAAkB,WAAY,UAAW,UAAW,YAAa,mBAAoB,cAAe,kBAAmB,iBAAkB,aAAc,OAAQ,KAAM,KAAM,UAAW,SAAU,UAAW,aAAc,UAAW,aAAc,gBAAiB,gBAAiB,QAAS,eAAgB,OAAQ,eAAgB,mBAAoB,mBAAoB,IAAK,KAAM,KAAM,QAAS,IAAK,KAAM,KAAM,IAAK,eAEhwEgC,EAAWhC,EAAO,CAAC,SAAU,cAAe,QAAS,WAAY,QAAS,eAAgB,cAAe,aAAc,aAAc,QAAS,MAAO,UAAW,eAAgB,WAAY,QAAS,QAAS,SAAU,OAAQ,KAAM,UAAW,SAAU,gBAAiB,SAAU,SAAU,iBAAkB,YAAa,WAAY,cAAe,UAAW,UAAW,gBAAiB,WAAY,WAAY,OAAQ,WAAY,WAAY,aAAc,UAAW,SAAU,SAAU,cAAe,gBAAiB,uBAAwB,YAAa,YAAa,aAAc,WAAY,iBAAkB,iBAAkB,YAAa,UAAW,QAAS,UAEvpBiC,EAAMjC,EAAO,CAAC,aAAc,SAAU,cAAe,YAAa,gBAGlEkC,EAAgBjC,EAAK,6BACrBkC,EAAWlC,EAAK,yBAChBmC,EAAYnC,EAAK,8BACjBoC,EAAYpC,EAAK,kBACjBqC,EAAiBrC,EAAK,yFAEtBsC,EAAoBtC,EAAK,yBACzBuC,EAAkBvC,EAAK,+DAEvBwC,EAAexC,EAAK,WAEpByC,EAA4B,mBAAXjiB,QAAoD,iBAApBA,OAAOvS,SAAwB,SAAUn/C,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,mBAAX0xD,QAAyB1xD,EAAI4Z,cAAgB83C,QAAU1xD,IAAQ0xD,OAAOnmD,UAAY,gBAAkBvL,CAAK,EAE3Q,SAAS4zE,EAAqBxzE,GAAO,GAAIqG,MAAMC,QAAQtG,GAAM,CAAE,IAAK,IAAIqO,EAAI,EAAGsiE,EAAOtqE,MAAMrG,EAAII,QAASiO,EAAIrO,EAAII,OAAQiO,IAAOsiE,EAAKtiE,GAAKrO,EAAIqO,GAAM,OAAOsiE,CAAM,CAAS,OAAOtqE,MAAM0C,KAAK/I,EAAQ,CAEpM,IAAIyzE,EAAY,WACd,MAAyB,oBAAXh3E,OAAyB,KAAOA,MAChD,EAUIi3E,EAA4B,SAAmCC,EAAc11E,GAC/E,GAAoF,iBAAvD,IAAjB01E,EAA+B,YAAcJ,EAAQI,KAAoE,mBAA9BA,EAAaC,aAClH,OAAO,KAMT,IAAIC,EAAS,KACTC,EAAY,wBACZ71E,EAAS81E,eAAiB91E,EAAS81E,cAAcC,aAAaF,KAChED,EAAS51E,EAAS81E,cAAcrrE,aAAaorE,IAG/C,IAAIG,EAAa,aAAeJ,EAAS,IAAMA,EAAS,IAExD,IACE,OAAOF,EAAaC,aAAaK,EAAY,CAC3CC,WAAY,SAAoBC,GAC9B,OAAOA,CACT,GAQJ,CANE,MAAOnQ,GAKP,OADA/1D,QAAQquC,KAAK,uBAAyB23B,EAAa,0BAC5C,IACT,CACF,EAEA,SAASG,IACP,IAAI33E,EAAS+U,UAAUpR,OAAS,QAAsByB,IAAjB2P,UAAU,GAAmBA,UAAU,GAAKiiE,IAE7Ej3E,EAAY,SAAmB+D,GACjC,OAAO6zE,EAAgB7zE,EACzB,EAcA,GARA/D,EAAUkpD,QAAU,QAMpBlpD,EAAUwC,QAAU,IAEfvC,IAAWA,EAAOwB,UAAyC,IAA7BxB,EAAOwB,SAASa,SAKjD,OAFAtC,EAAU63E,aAAc,EAEjB73E,EAGT,IAAI83E,EAAmB73E,EAAOwB,SAE1BA,EAAWxB,EAAOwB,SAClBs2E,EAAmB93E,EAAO83E,iBAC1BC,EAAsB/3E,EAAO+3E,oBAC7BC,EAAOh4E,EAAOg4E,KACdvpE,EAAUzO,EAAOyO,QACjBwpE,EAAaj4E,EAAOi4E,WACpBC,EAAuBl4E,EAAO2nD,aAC9BA,OAAwCviD,IAAzB8yE,EAAqCl4E,EAAO2nD,cAAgB3nD,EAAOm4E,gBAAkBD,EACpG3wB,EAAkBvnD,EAAOunD,gBACzB6wB,EAAYp4E,EAAOo4E,UACnBlB,EAAel3E,EAAOk3E,aAGtBmB,EAAmB5pE,EAAQC,UAE3B8hC,EAAYilC,EAAa4C,EAAkB,aAC3CC,GAAiB7C,EAAa4C,EAAkB,eAChDE,GAAgB9C,EAAa4C,EAAkB,cAC/C9kD,GAAgBkiD,EAAa4C,EAAkB,cAQnD,GAAmC,mBAAxBN,EAAoC,CAC7C,IAAI7tE,GAAW1I,EAAS2I,cAAc,YAClCD,GAASI,SAAWJ,GAASI,QAAQyE,gBACvCvN,EAAW0I,GAASI,QAAQyE,cAEhC,CAEA,IAAIypE,GAAqBvB,EAA0BC,EAAcW,GAC7DY,GAAYD,GAAqBA,GAAmBf,WAAW,IAAM,GAErEiB,GAAYl3E,EACZm3E,GAAiBD,GAAUC,eAC3BC,GAAqBF,GAAUE,mBAC/B3hC,GAAyByhC,GAAUzhC,uBACnC4hC,GAAuBH,GAAUG,qBACjCC,GAAajB,EAAiBiB,WAG9BC,GAAe,CAAC,EACpB,IACEA,GAAe19B,EAAM75C,GAAUu3E,aAAev3E,EAASu3E,aAAe,CAAC,CAC5D,CAAX,MAAOxR,GAAI,CAEb,IAAIyR,GAAQ,CAAC,EAKbj5E,EAAU63E,YAAuC,mBAAlBrkD,IAAgColD,SAA+D,IAAtCA,GAAeM,oBAAuD,IAAjBF,GAE7I,IAAIG,GAAmB5C,EACnB6C,GAAc5C,EACd6C,GAAe5C,EACf6C,GAAe5C,EACf6C,GAAuB3C,EACvB4C,GAAqB3C,EACrB4C,GAAoB9C,EASpB+C,GAAe,KACfC,GAAuBrE,EAAS,CAAC,EAAG,GAAGvhE,OAAOijE,EAAqBj7C,GAAOi7C,EAAqBlB,GAAMkB,EAAqBjB,GAAaiB,EAAqBf,GAASe,EAAqBlkC,KAG1L8mC,GAAe,KACfC,GAAuBvE,EAAS,CAAC,EAAG,GAAGvhE,OAAOijE,EAAqBb,GAASa,EAAqBZ,GAAQY,EAAqBX,GAAWW,EAAqBV,KAQ9JwD,GAA0Br0E,OAAO6uE,KAAK7uE,OAAOs7C,OAAO,KAAM,CAC5Dg5B,aAAc,CACZxkE,UAAU,EACVD,cAAc,EACdT,YAAY,EACZlP,MAAO,MAETq0E,mBAAoB,CAClBzkE,UAAU,EACVD,cAAc,EACdT,YAAY,EACZlP,MAAO,MAETs0E,+BAAgC,CAC9B1kE,UAAU,EACVD,cAAc,EACdT,YAAY,EACZlP,OAAO,MAKPu0E,GAAc,KAGdC,GAAc,KAGdC,IAAkB,EAGlBC,IAAkB,EAGlBC,IAA0B,EAK1BC,IAAqB,EAGrBC,IAAiB,EAGjBC,IAAa,EAIbC,IAAa,EAMbC,IAAa,EAIbC,IAAsB,EAItBC,IAAsB,EAGtBC,IAAe,EAGfC,IAAe,EAIfC,IAAW,EAGXC,GAAe,CAAC,EAGhBC,GAAkB,KAClBC,GAA0B7F,EAAS,CAAC,EAAG,CAAC,iBAAkB,QAAS,WAAY,OAAQ,gBAAiB,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,QAAS,UAAW,WAAY,WAAY,YAAa,SAAU,QAAS,MAAO,WAAY,QAAS,QAAS,QAAS,QAGpR8F,GAAgB,KAChBC,GAAwB/F,EAAS,CAAC,EAAG,CAAC,QAAS,QAAS,MAAO,SAAU,QAAS,UAGlFgG,GAAsB,KACtBC,GAA8BjG,EAAS,CAAC,EAAG,CAAC,MAAO,QAAS,MAAO,KAAM,QAAS,OAAQ,UAAW,cAAe,OAAQ,UAAW,QAAS,QAAS,QAAS,UAElKkG,GAAmB,qCACnBC,GAAgB,6BAChBC,GAAiB,+BAEjBC,GAAYD,GACZE,IAAiB,EAGjBC,QAAoB,EACpBC,GAA+B,CAAC,wBAAyB,aACzDC,GAA4B,YAC5BC,QAAoB,EAGpBC,GAAS,KAKTC,GAAcz6E,EAAS2I,cAAc,QAErC+xE,GAAoB,SAA2BC,GACjD,OAAOA,aAAqBzoC,QAAUyoC,aAAqBvwB,QAC7D,EAQIwwB,GAAe,SAAsBC,GACnCL,IAAUA,KAAWK,IAKpBA,GAAqE,iBAA9C,IAARA,EAAsB,YAAcvF,EAAQuF,MAC9DA,EAAM,CAAC,GAITA,EAAMhhC,EAAMghC,GAGZ5C,GAAe,iBAAkB4C,EAAMhH,EAAS,CAAC,EAAGgH,EAAI5C,cAAgBC,GACxEC,GAAe,iBAAkB0C,EAAMhH,EAAS,CAAC,EAAGgH,EAAI1C,cAAgBC,GACxEyB,GAAsB,sBAAuBgB,EAAMhH,EAASh6B,EAAMigC,IAA8Be,EAAIC,mBAAqBhB,GACzHH,GAAgB,sBAAuBkB,EAAMhH,EAASh6B,EAAM+/B,IAAwBiB,EAAIE,mBAAqBnB,GAC7GH,GAAkB,oBAAqBoB,EAAMhH,EAAS,CAAC,EAAGgH,EAAIpB,iBAAmBC,GACjFjB,GAAc,gBAAiBoC,EAAMhH,EAAS,CAAC,EAAGgH,EAAIpC,aAAe,CAAC,EACtEC,GAAc,gBAAiBmC,EAAMhH,EAAS,CAAC,EAAGgH,EAAInC,aAAe,CAAC,EACtEc,GAAe,iBAAkBqB,GAAMA,EAAIrB,aAC3Cb,IAA0C,IAAxBkC,EAAIlC,gBACtBC,IAA0C,IAAxBiC,EAAIjC,gBACtBC,GAA0BgC,EAAIhC,0BAA2B,EACzDC,GAAqB+B,EAAI/B,qBAAsB,EAC/CC,GAAiB8B,EAAI9B,iBAAkB,EACvCG,GAAa2B,EAAI3B,aAAc,EAC/BC,GAAsB0B,EAAI1B,sBAAuB,EACjDC,GAAsByB,EAAIzB,sBAAuB,EACjDH,GAAa4B,EAAI5B,aAAc,EAC/BI,IAAoC,IAArBwB,EAAIxB,aACnBC,IAAoC,IAArBuB,EAAIvB,aACnBC,GAAWsB,EAAItB,WAAY,EAC3BvB,GAAoB6C,EAAIG,oBAAsBhD,GAC9CkC,GAAYW,EAAIX,WAAaD,GACzBY,EAAIxC,yBAA2BqC,GAAkBG,EAAIxC,wBAAwBC,gBAC/ED,GAAwBC,aAAeuC,EAAIxC,wBAAwBC,cAGjEuC,EAAIxC,yBAA2BqC,GAAkBG,EAAIxC,wBAAwBE,sBAC/EF,GAAwBE,mBAAqBsC,EAAIxC,wBAAwBE,oBAGvEsC,EAAIxC,yBAAiG,kBAA/DwC,EAAIxC,wBAAwBG,iCACpEH,GAAwBG,+BAAiCqC,EAAIxC,wBAAwBG,gCAGvF4B,GAEqEA,IAAJ,IAAjEC,GAA6B/lE,QAAQumE,EAAIT,mBAAgDE,GAAgDO,EAAIT,kBAG7IG,GAA0C,0BAAtBH,GAAgD,SAAUr3E,GAC5E,OAAOA,CACT,EAAIswE,EAEAyF,KACFF,IAAkB,GAGhBO,KACFD,IAAa,GAIXM,KACFvB,GAAepE,EAAS,CAAC,EAAG,GAAGvhE,OAAOijE,EAAqBlkC,KAC3D8mC,GAAe,IACW,IAAtBqB,GAAal/C,OACfu5C,EAASoE,GAAc39C,GACvBu5C,EAASsE,GAAczD,KAGA,IAArB8E,GAAanF,MACfR,EAASoE,GAAc5D,GACvBR,EAASsE,GAAcxD,GACvBd,EAASsE,GAActD,KAGO,IAA5B2E,GAAalF,aACfT,EAASoE,GAAc3D,GACvBT,EAASsE,GAAcxD,GACvBd,EAASsE,GAActD,KAGG,IAAxB2E,GAAahF,SACfX,EAASoE,GAAczD,GACvBX,EAASsE,GAAcvD,GACvBf,EAASsE,GAActD,KAKvBgG,EAAII,WACFhD,KAAiBC,KACnBD,GAAep+B,EAAMo+B,KAGvBpE,EAASoE,GAAc4C,EAAII,WAGzBJ,EAAIK,WACF/C,KAAiBC,KACnBD,GAAet+B,EAAMs+B,KAGvBtE,EAASsE,GAAc0C,EAAIK,WAGzBL,EAAIC,mBACNjH,EAASgG,GAAqBgB,EAAIC,mBAGhCD,EAAIpB,kBACFA,KAAoBC,KACtBD,GAAkB5/B,EAAM4/B,KAG1B5F,EAAS4F,GAAiBoB,EAAIpB,kBAI5BH,KACFrB,GAAa,UAAW,GAItBc,IACFlF,EAASoE,GAAc,CAAC,OAAQ,OAAQ,SAItCA,GAAakD,QACftH,EAASoE,GAAc,CAAC,iBACjBQ,GAAY2C,OAKjBxI,GACFA,EAAOiI,GAGTL,GAASK,EACX,EAEIQ,GAAiCxH,EAAS,CAAC,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,UAEvEyH,GAA0BzH,EAAS,CAAC,EAAG,CAAC,gBAAiB,OAAQ,QAAS,mBAK1E0H,GAAe1H,EAAS,CAAC,EAAGQ,GAChCR,EAAS0H,GAAcjH,GACvBT,EAAS0H,GAAchH,GAEvB,IAAIiH,GAAkB3H,EAAS,CAAC,EAAGW,GACnCX,EAAS2H,GAAiB/G,GAU1B,IAAIgH,GAAuB,SAA8BnuE,GACvD,IAAI0sB,EAASjI,GAAczkB,GAItB0sB,GAAWA,EAAO9rB,UACrB8rB,EAAS,CACP0hD,aAAczB,GACd/rE,QAAS,aAIb,IAAIA,EAAUmlE,EAAkB/lE,EAAQY,SACpCytE,EAAgBtI,EAAkBr5C,EAAO9rB,SAE7C,GAAIZ,EAAQouE,eAAiB1B,GAI3B,OAAIhgD,EAAO0hD,eAAiBzB,GACP,QAAZ/rE,EAML8rB,EAAO0hD,eAAiB3B,GACP,QAAZ7rE,IAAwC,mBAAlBytE,GAAsCN,GAA+BM,IAK7FxgE,QAAQogE,GAAartE,IAG9B,GAAIZ,EAAQouE,eAAiB3B,GAI3B,OAAI//C,EAAO0hD,eAAiBzB,GACP,SAAZ/rE,EAKL8rB,EAAO0hD,eAAiB1B,GACP,SAAZ9rE,GAAsBotE,GAAwBK,GAKhDxgE,QAAQqgE,GAAgBttE,IAGjC,GAAIZ,EAAQouE,eAAiBzB,GAAgB,CAI3C,GAAIjgD,EAAO0hD,eAAiB1B,KAAkBsB,GAAwBK,GACpE,OAAO,EAGT,GAAI3hD,EAAO0hD,eAAiB3B,KAAqBsB,GAA+BM,GAC9E,OAAO,EAOT,IAAIC,EAA2B/H,EAAS,CAAC,EAAG,CAAC,QAAS,QAAS,OAAQ,IAAK,WAI5E,OAAQ2H,GAAgBttE,KAAa0tE,EAAyB1tE,KAAaqtE,GAAartE,GAC1F,CAKA,OAAO,CACT,EAOI2tE,GAAe,SAAsBpzE,GACvC2qE,EAAU70E,EAAUwC,QAAS,CAAEuM,QAAS7E,IACxC,IAEEA,EAAKgJ,WAAW0rD,YAAY10D,EAO9B,CANE,MAAOs9D,GACP,IACEt9D,EAAKqzE,UAAY7E,EAGnB,CAFE,MAAOlR,GACPt9D,EAAKhF,QACP,CACF,CACF,EAQIs4E,GAAmB,SAA0B74E,EAAMuF,GACrD,IACE2qE,EAAU70E,EAAUwC,QAAS,CAC3B0gC,UAAWh5B,EAAKuzE,iBAAiB94E,GACjC4H,KAAMrC,GAOV,CALE,MAAOs9D,GACPqN,EAAU70E,EAAUwC,QAAS,CAC3B0gC,UAAW,KACX32B,KAAMrC,GAEV,CAKA,GAHAA,EAAKgjB,gBAAgBvoB,GAGR,OAATA,IAAkBi1E,GAAaj1E,GACjC,GAAIg2E,IAAcC,GAChB,IACE0C,GAAapzE,EACF,CAAX,MAAOs9D,GAAI,MAEb,IACEt9D,EAAKuW,aAAa9b,EAAM,GACb,CAAX,MAAO6iE,GAAI,CAGnB,EAQIkW,GAAgB,SAAuBC,GAEzC,IAAI1mE,OAAM,EACN2mE,OAAoB,EAExB,GAAIlD,GACFiD,EAAQ,oBAAsBA,MACzB,CAEL,IAAIh9E,EAAUo0E,EAAY4I,EAAO,eACjCC,EAAoBj9E,GAAWA,EAAQ,EACzC,CAE0B,0BAAtBk7E,KAEF8B,EAAQ,iEAAmEA,EAAQ,kBAGrF,IAAIE,EAAepF,GAAqBA,GAAmBf,WAAWiG,GAASA,EAK/E,GAAIhC,KAAcD,GAChB,IACEzkE,GAAM,IAAIohE,GAAYyF,gBAAgBD,EAAchC,GACzC,CAAX,MAAOrU,GAAI,CAIf,IAAKvwD,IAAQA,EAAIpU,gBAAiB,CAChCoU,EAAM2hE,GAAemF,eAAepC,GAAW,WAAY,MAC3D,IACE1kE,EAAIpU,gBAAgBwH,UAAYuxE,GAAiB,GAAKiC,CAGxD,CAFE,MAAOrW,GAET,CACF,CAEA,IAAIp8D,EAAO6L,EAAI7L,MAAQ6L,EAAIpU,gBAO3B,OALI86E,GAASC,GACXxyE,EAAKowC,aAAa/5C,EAASuyD,eAAe4pB,GAAoBxyE,EAAKV,WAAW,IAAM,MAIlFixE,KAAcD,GACT5C,GAAqB10E,KAAK6S,EAAKujE,GAAiB,OAAS,QAAQ,GAGnEA,GAAiBvjE,EAAIpU,gBAAkBuI,CAChD,EAQI4yE,GAAkB,SAAyBj6E,GAC7C,OAAO80E,GAAmBz0E,KAAKL,EAAKiL,eAAiBjL,EAAMA,EAE3Dm0E,EAAW+F,aAAe/F,EAAWgG,aAAehG,EAAWiG,UAAW,MAAM,EAClF,EAQIC,GAAe,SAAsBC,GACvC,OAAOA,aAAe72B,IAA4C,iBAAjB62B,EAAIt0E,UAAoD,iBAApBs0E,EAAIp+B,aAAuD,mBAApBo+B,EAAIzf,eAAgCyf,EAAIt7E,sBAAsB6kD,IAAgD,mBAAxBy2B,EAAInxD,iBAA8D,mBAArBmxD,EAAI59D,cAA2D,iBAArB49D,EAAIlB,cAAyD,mBAArBkB,EAAI7iC,aACvV,EAQI8iC,GAAU,SAAiBhqE,GAC7B,MAAuE,iBAA/C,IAAT2jE,EAAuB,YAAclB,EAAQkB,IAAsB3jE,aAAkB2jE,EAAO3jE,GAA8E,iBAAjD,IAAXA,EAAyB,YAAcyiE,EAAQziE,KAAoD,iBAApBA,EAAOhS,UAAoD,iBAApBgS,EAAOvK,QAC5P,EAUIw0E,GAAe,SAAsBC,EAAYhqD,EAAaoD,GAC3DqhD,GAAMuF,IAIX9J,EAAauE,GAAMuF,IAAa,SAAUC,GACxCA,EAAKr6E,KAAKpE,EAAWw0B,EAAaoD,EAAMqkD,GAC1C,GACF,EAYIyC,GAAoB,SAA2BlqD,GACjD,IAAIjqB,OAAU,EAMd,GAHAg0E,GAAa,yBAA0B/pD,EAAa,MAGhD4pD,GAAa5pD,GAEf,OADA8oD,GAAa9oD,IACN,EAIT,GAAIugD,EAAYvgD,EAAYzqB,SAAU,mBAEpC,OADAuzE,GAAa9oD,IACN,EAIT,IAAI7kB,EAAUqsE,GAAkBxnD,EAAYzqB,UAS5C,GANAw0E,GAAa,sBAAuB/pD,EAAa,CAC/C7kB,QAASA,EACTgvE,YAAajF,MAIV4E,GAAQ9pD,EAAYoqD,sBAAwBN,GAAQ9pD,EAAYjqB,WAAa+zE,GAAQ9pD,EAAYjqB,QAAQq0E,qBAAuB1J,EAAW,UAAW1gD,EAAYnqB,YAAc6qE,EAAW,UAAW1gD,EAAYyrB,aAErN,OADAq9B,GAAa9oD,IACN,EAIT,GAAgB,WAAZ7kB,GAAwBulE,EAAW,aAAc1gD,EAAYnqB,WAE/D,OADAizE,GAAa9oD,IACN,EAIT,IAAKklD,GAAa/pE,IAAYuqE,GAAYvqE,GAAU,CAElD,IAAKuqE,GAAYvqE,IAAYkvE,GAAwBlvE,GAAU,CAC7D,GAAImqE,GAAwBC,wBAAwBpmC,QAAUuhC,EAAW4E,GAAwBC,aAAcpqE,GAAU,OAAO,EAChI,GAAImqE,GAAwBC,wBAAwBluB,UAAYiuB,GAAwBC,aAAapqE,GAAU,OAAO,CACxH,CAGA,GAAIorE,KAAiBG,GAAgBvrE,GAAU,CAC7C,IAAIuD,EAAasgB,GAAcgB,IAAgBA,EAAYthB,WACvDxI,EAAa8tE,GAAchkD,IAAgBA,EAAY9pB,WAE3D,GAAIA,GAAcwI,EAGhB,IAFA,IAESrB,EAFQnH,EAAW9G,OAEF,EAAGiO,GAAK,IAAKA,EACrCqB,EAAWsoC,aAAa/K,EAAU/lC,EAAWmH,IAAI,GAAO0mE,GAAe/jD,GAG7E,CAGA,OADA8oD,GAAa9oD,IACN,CACT,CAGA,OAAIA,aAAuB9lB,IAAYwuE,GAAqB1oD,IAC1D8oD,GAAa9oD,IACN,GAGQ,aAAZ7kB,GAAsC,YAAZA,IAA0BulE,EAAW,uBAAwB1gD,EAAYnqB,YAMpGkwE,IAA+C,IAAzB/lD,EAAYlyB,WAEpCiI,EAAUiqB,EAAYyrB,YACtB11C,EAAUyqE,EAAczqE,EAAS4uE,GAAkB,KACnD5uE,EAAUyqE,EAAczqE,EAAS6uE,GAAa,KAC1C5kD,EAAYyrB,cAAgB11C,IAC9BsqE,EAAU70E,EAAUwC,QAAS,CAAEuM,QAASylB,EAAYic,cACpDjc,EAAYyrB,YAAc11C,IAK9Bg0E,GAAa,wBAAyB/pD,EAAa,OAE5C,IAnBL8oD,GAAa9oD,IACN,EAmBX,EAWIsqD,GAAoB,SAA2BC,EAAOC,EAAQr5E,GAEhE,GAAIm1E,KAA4B,OAAXkE,GAA8B,SAAXA,KAAuBr5E,KAASlE,GAAYkE,KAASu2E,IAC3F,OAAO,EAOT,GAAI7B,KAAoBF,GAAY6E,IAAW9J,EAAWmE,GAAc2F,SAAgB,GAAI5E,IAAmBlF,EAAWoE,GAAc0F,SAAgB,IAAKpF,GAAaoF,IAAW7E,GAAY6E,IAC/L,KAIAH,GAAwBE,KAAWjF,GAAwBC,wBAAwBpmC,QAAUuhC,EAAW4E,GAAwBC,aAAcgF,IAAUjF,GAAwBC,wBAAwBluB,UAAYiuB,GAAwBC,aAAagF,MAAYjF,GAAwBE,8BAA8BrmC,QAAUuhC,EAAW4E,GAAwBE,mBAAoBgF,IAAWlF,GAAwBE,8BAA8BnuB,UAAYiuB,GAAwBE,mBAAmBgF,KAGze,OAAXA,GAAmBlF,GAAwBG,iCAAmCH,GAAwBC,wBAAwBpmC,QAAUuhC,EAAW4E,GAAwBC,aAAcp0E,IAAUm0E,GAAwBC,wBAAwBluB,UAAYiuB,GAAwBC,aAAap0E,KAClS,OAAO,OAGJ,GAAI21E,GAAoB0D,SAAgB,GAAI9J,EAAWuE,GAAmBzE,EAAcrvE,EAAO6zE,GAAoB,WAAa,GAAgB,QAAXwF,GAA+B,eAAXA,GAAsC,SAAXA,GAAgC,WAAVD,GAAwD,IAAlCpZ,EAAchgE,EAAO,WAAkBy1E,GAAc2D,GAAe,GAAIzE,KAA4BpF,EAAWqE,GAAsBvE,EAAcrvE,EAAO6zE,GAAoB,WAAa,GAAK7zE,EACra,OAAO,EAGT,OAAO,CACT,EAQIk5E,GAA0B,SAAiClvE,GAC7D,OAAOA,EAAQoG,QAAQ,KAAO,CAChC,EAYIkpE,GAAsB,SAA6BzqD,GACrD,IAAIrO,OAAO,EACPxgB,OAAQ,EACRq5E,OAAS,EACTzJ,OAAI,EAERgJ,GAAa,2BAA4B/pD,EAAa,MAEtD,IAAIzxB,EAAayxB,EAAYzxB,WAI7B,GAAKA,EAAL,CAIA,IAAIm8E,EAAY,CACdC,SAAU,GACVC,UAAW,GACXC,UAAU,EACVC,kBAAmB1F,IAKrB,IAHArE,EAAIxyE,EAAWa,OAGR2xE,KAAK,CAEV,IAAIgK,EADJp5D,EAAOpjB,EAAWwyE,GAEd5wE,EAAO46E,EAAM56E,KACbw4E,EAAeoC,EAAMpC,aAazB,GAXAx3E,EAAQsvE,EAAW9uD,EAAKxgB,OACxBq5E,EAAShD,GAAkBr3E,GAG3Bu6E,EAAUC,SAAWH,EACrBE,EAAUE,UAAYz5E,EACtBu5E,EAAUG,UAAW,EACrBH,EAAUM,mBAAgBn6E,EAC1Bk5E,GAAa,wBAAyB/pD,EAAa0qD,GACnDv5E,EAAQu5E,EAAUE,WAEdF,EAAUM,gBAKdhC,GAAiB74E,EAAM6vB,GAGlB0qD,EAAUG,UAKf,GAAInK,EAAW,OAAQvvE,GACrB63E,GAAiB74E,EAAM6vB,OADzB,CAMI+lD,KACF50E,EAAQqvE,EAAcrvE,EAAOwzE,GAAkB,KAC/CxzE,EAAQqvE,EAAcrvE,EAAOyzE,GAAa,MAI5C,IAAI2F,EAAQ/C,GAAkBxnD,EAAYzqB,UAC1C,GAAK+0E,GAAkBC,EAAOC,EAAQr5E,GAKtC,IACMw3E,EACF3oD,EAAYirD,eAAetC,EAAcx4E,EAAMgB,GAG/C6uB,EAAY/T,aAAa9b,EAAMgB,GAGjCivE,EAAS50E,EAAUwC,QACR,CAAX,MAAOglE,GAAI,CAxBb,CAyBF,CAGA+W,GAAa,0BAA2B/pD,EAAa,KAxErD,CAyEF,EAOIkrD,GAAqB,SAASA,EAAmB3O,GACnD,IAAI4O,OAAa,EACbC,EAAiB5B,GAAgBjN,GAKrC,IAFAwN,GAAa,0BAA2BxN,EAAU,MAE3C4O,EAAaC,EAAeC,YAEjCtB,GAAa,yBAA0BoB,EAAY,MAG/CjB,GAAkBiB,KAKlBA,EAAWp1E,mBAAmBwtE,GAChC2H,EAAmBC,EAAWp1E,SAIhC00E,GAAoBU,IAItBpB,GAAa,yBAA0BxN,EAAU,KACnD,EAqRA,OA3QA/wE,EAAUgK,SAAW,SAAU2zE,EAAOrB,GACpC,IAAIlxE,OAAO,EACP00E,OAAe,EACftrD,OAAc,EACdurD,OAAU,EACVC,OAAa,EAUjB,IANApE,IAAkB+B,KAEhBA,EAAQ,eAIW,iBAAVA,IAAuBW,GAAQX,GAAQ,CAEhD,GAA8B,mBAAnBA,EAAMn+D,SACf,MAAM21D,EAAgB,8BAGtB,GAAqB,iBADrBwI,EAAQA,EAAMn+D,YAEZ,MAAM21D,EAAgB,kCAG5B,CAGA,IAAKn1E,EAAU63E,YAAa,CAC1B,GAAqC,WAAjCd,EAAQ92E,EAAOggF,eAA6D,mBAAxBhgF,EAAOggF,aAA6B,CAC1F,GAAqB,iBAAVtC,EACT,OAAO19E,EAAOggF,aAAatC,GAG7B,GAAIW,GAAQX,GACV,OAAO19E,EAAOggF,aAAatC,EAAMJ,UAErC,CAEA,OAAOI,CACT,CAeA,GAZKlD,IACH4B,GAAaC,GAIft8E,EAAUwC,QAAU,GAGC,iBAAVm7E,IACT3C,IAAW,GAGTA,IAEF,GAAI2C,EAAM5zE,SAAU,CAClB,IAAI4F,EAAUqsE,GAAkB2B,EAAM5zE,UACtC,IAAK2vE,GAAa/pE,IAAYuqE,GAAYvqE,GACxC,MAAMwlE,EAAgB,0DAE1B,OACK,GAAIwI,aAAiB1F,EAKI,KAD9B6H,GADA10E,EAAOsyE,GAAc,kBACD1uE,cAAc+pE,WAAW4E,GAAO,IACnCr7E,UAA4C,SAA1Bw9E,EAAa/1E,UAGX,SAA1B+1E,EAAa/1E,SADtBqB,EAAO00E,EAKP10E,EAAKipC,YAAYyrC,OAEd,CAEL,IAAKnF,KAAeJ,KAAuBC,KAEnB,IAAxBmD,EAAM5nE,QAAQ,KACZ,OAAO0iE,IAAsBoC,GAAsBpC,GAAmBf,WAAWiG,GAASA,EAO5F,KAHAvyE,EAAOsyE,GAAcC,IAInB,OAAOhD,GAAa,KAAOE,GAAsBnC,GAAY,EAEjE,CAGIttE,GAAQsvE,IACV4C,GAAalyE,EAAKZ,YAOpB,IAHA,IAAI01E,EAAelC,GAAgBhD,GAAW2C,EAAQvyE,GAG/CopB,EAAc0rD,EAAaL,YAEH,IAAzBrrD,EAAYlyB,UAAkBkyB,IAAgBurD,GAK9CrB,GAAkBlqD,KAKlBA,EAAYjqB,mBAAmBwtE,GACjC2H,GAAmBlrD,EAAYjqB,SAIjC00E,GAAoBzqD,GAEpBurD,EAAUvrD,GAMZ,GAHAurD,EAAU,KAGN/E,GACF,OAAO2C,EAIT,GAAIhD,GAAY,CACd,GAAIC,GAGF,IAFAoF,EAAa9oC,GAAuB9yC,KAAKgH,EAAK4D,eAEvC5D,EAAKZ,YAEVw1E,EAAW3rC,YAAYjpC,EAAKZ,iBAG9Bw1E,EAAa50E,EAcf,OAXIwuE,GAAauG,aAQfH,EAAajH,GAAW30E,KAAK0zE,EAAkBkI,GAAY,IAGtDA,CACT,CAEA,IAAII,EAAiB5F,GAAiBpvE,EAAKmyE,UAAYnyE,EAAKf,UAa5D,OAVImwE,IAAkBd,GAAa,aAAetuE,EAAK4D,eAAiB5D,EAAK4D,cAAcqxE,SAAWj1E,EAAK4D,cAAcqxE,QAAQ17E,MAAQuwE,EAAW4B,EAAc1rE,EAAK4D,cAAcqxE,QAAQ17E,QAC3Ly7E,EAAiB,aAAeh1E,EAAK4D,cAAcqxE,QAAQ17E,KAAO,MAAQy7E,GAIxE7F,KACF6F,EAAiBpL,EAAcoL,EAAgBjH,GAAkB,KACjEiH,EAAiBpL,EAAcoL,EAAgBhH,GAAa,MAGvDX,IAAsBoC,GAAsBpC,GAAmBf,WAAW0I,GAAkBA,CACrG,EAQApgF,EAAUsgF,UAAY,SAAUhE,GAC9BD,GAAaC,GACb7B,IAAa,CACf,EAOAz6E,EAAUugF,YAAc,WACtBtE,GAAS,KACTxB,IAAa,CACf,EAYAz6E,EAAUwgF,iBAAmB,SAAUv7B,EAAK9+B,EAAMxgB,GAE3Cs2E,IACHI,GAAa,CAAC,GAGhB,IAAI0C,EAAQ/C,GAAkB/2B,GAC1B+5B,EAAShD,GAAkB71D,GAC/B,OAAO24D,GAAkBC,EAAOC,EAAQr5E,EAC1C,EASA3F,EAAUygF,QAAU,SAAUjC,EAAYkC,GACZ,mBAAjBA,IAIXzH,GAAMuF,GAAcvF,GAAMuF,IAAe,GACzC3J,EAAUoE,GAAMuF,GAAakC,GAC/B,EASA1gF,EAAU2gF,WAAa,SAAUnC,GAC3BvF,GAAMuF,IACR5J,EAASqE,GAAMuF,GAEnB,EAQAx+E,EAAU4gF,YAAc,SAAUpC,GAC5BvF,GAAMuF,KACRvF,GAAMuF,GAAc,GAExB,EAOAx+E,EAAU6gF,eAAiB,WACzB5H,GAAQ,CAAC,CACX,EAEOj5E,CACT,CAIA,OAFa43E,GAIf,CA96CkF13B,qBCFlBE,EAAOD,QAG/D,WAAe,aAEtB,SAAS2gC,EAAqB1qE,EAAIgqC,GACjC,OAAiChqC,EAA1BgqC,EAAS,CAAED,QAAS,CAAC,GAAgBC,EAAOD,SAAUC,EAAOD,OACrE,CAEA,IAAI4gC,EAAUD,GAAqB,SAAU1gC,GAE7C,IAAIjgD,EAASigD,EAAOD,QAA2B,oBAAVlgD,QAAyBA,OAAO4I,MAAQA,KACzE5I,OAAwB,oBAAR4E,MAAuBA,KAAKgE,MAAQA,KAAOhE,KAE3DgnD,SAAS,cAATA,GACc,iBAAPm1B,MAAmBA,IAAM7gF,EACpC,IAEI8gF,EAAQH,GAAqB,SAAU1gC,GAC3C,IAAI8gC,EAAO9gC,EAAOD,QAAU,CAAE+I,QAAS,SACrB,iBAAPi4B,MAAmBA,IAAMD,EACpC,IAGIE,GAFUH,EAAM/3B,QAEJ,SAAU5H,GACxB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,CACvD,GAEI+/B,EAAY,SAAU//B,GACxB,IAAK8/B,EAAU9/B,GAAO,MAAMb,UAAUa,EAAK,sBAC3C,OAAOA,CACT,EAEIggC,EAAS,SAAU/8B,GACrB,IACE,QAASA,GAGX,CAFE,MAAO59C,GACP,OAAO,CACT,CACF,EAGI46E,GAAgBD,GAAO,WACzB,OAA+E,GAAxE77E,OAAO4P,eAAe,CAAC,EAAG,IAAK,CAAErQ,IAAK,WAAc,OAAO,CAAG,IAAK4L,CAC5E,IAEInP,EAAWs/E,EAAQt/E,SAEnB+/E,EAAKJ,EAAU3/E,IAAa2/E,EAAU3/E,EAAS2I,eAC/Cq3E,EAAa,SAAUngC,GACzB,OAAOkgC,EAAK//E,EAAS2I,cAAck3C,GAAM,CAAC,CAC5C,EAEIogC,GAAiBH,IAAiBD,GAAO,WAC3C,OAA8F,GAAvF77E,OAAO4P,eAAeosE,EAAW,OAAQ,IAAK,CAAEz8E,IAAK,WAAc,OAAO,CAAG,IAAK4L,CAC3F,IAMI+wE,EAAe,SAAUrgC,EAAIH,GAC/B,IAAKigC,EAAU9/B,GAAO,OAAOA,EAC7B,IAAIlrC,EAAIo5B,EACR,GAAI2R,GAAkC,mBAArB/qC,EAAKkrC,EAAG9hC,YAA4B4hE,EAAU5xC,EAAMp5B,EAAGhS,KAAKk9C,IAAQ,OAAO9R,EAC5F,GAAgC,mBAApBp5B,EAAKkrC,EAAGgW,WAA2B8pB,EAAU5xC,EAAMp5B,EAAGhS,KAAKk9C,IAAQ,OAAO9R,EACtF,IAAK2R,GAAkC,mBAArB/qC,EAAKkrC,EAAG9hC,YAA4B4hE,EAAU5xC,EAAMp5B,EAAGhS,KAAKk9C,IAAQ,OAAO9R,EAC7F,MAAMiR,UAAU,0CAClB,EAEImhC,EAAKn8E,OAAO4P,eAcZwsE,EAAY,CACfr8B,EAbO+7B,EAAe97E,OAAO4P,eAAiB,SAAwB6sC,EAAGuE,EAAGiQ,GAI3E,GAHA2qB,EAAUn/B,GACVuE,EAAIk7B,EAAal7B,GAAG,GACpB46B,EAAU3qB,GACNgrB,EAAiB,IACnB,OAAOE,EAAG1/B,EAAGuE,EAAGiQ,EACQ,CAAxB,MAAO/vD,GAAiB,CAC1B,GAAI,QAAS+vD,GAAc,QAASA,EAAc,MAAMjW,UAAU,4BAElE,MADI,UAAWiW,IAAcxU,EAAEuE,GAAKiQ,EAAW/wD,OACxCu8C,CACT,GAMI4/B,EAAgB,SAAUl8B,EAAQjgD,GACpC,MAAO,CACLkP,aAAuB,EAAT+wC,GACdtwC,eAAyB,EAATswC,GAChBrwC,WAAqB,EAATqwC,GACZjgD,MAAOA,EAEX,EAEIo8E,EAAQR,EAAe,SAAUjtE,EAAQ5O,EAAKC,GAChD,OAAOk8E,EAAUr8B,EAAElxC,EAAQ5O,EAAKo8E,EAAc,EAAGn8E,GACnD,EAAI,SAAU2O,EAAQ5O,EAAKC,GAEzB,OADA2O,EAAO5O,GAAOC,EACP2O,CACT,EAEI4lB,EAAiB,CAAC,EAAEA,eACpB8nD,EAAO,SAAU1gC,EAAI57C,GACvB,OAAOw0B,EAAe91B,KAAKk9C,EAAI57C,EACjC,EAEIw4D,EAAK,EACL+jB,EAAKp5E,KAAKw2D,SACV6iB,EAAO,SAAUx8E,GACnB,MAAO,UAAUqO,YAAe1O,IAARK,EAAoB,GAAKA,EAAK,QAASw4D,EAAK+jB,GAAIziE,SAAS,IACnF,EAEI2iE,GAAW,EAEXC,EAAUtB,GAAqB,SAAU1gC,GAC7C,IAAIsa,EAAS,qBACT/M,EAAQozB,EAAQrmB,KAAYqmB,EAAQrmB,GAAU,CAAC,IAElDta,EAAOD,QAAU,SAAUz6C,EAAKC,GAC/B,OAAOgoD,EAAMjoD,KAASioD,EAAMjoD,QAAiBL,IAAVM,EAAsBA,EAAQ,CAAC,EACpE,GAAG,WAAY,IAAItC,KAAK,CACtB6lD,QAAS+3B,EAAM/3B,QACfrQ,KAAMspC,EAAW,OAAS,SAC1BxnB,UAAW,wCAEb,IAEI0nB,EAAoBD,EAAQ,4BAA6Bv2B,SAASrsC,UAElE8iE,EAAYxB,GAAqB,SAAU1gC,GAC/C,IAAImiC,EAAML,EAAK,OAEXM,EAAY,WACZC,GAAO,GAAKJ,GAAmB9gF,MAAMihF,GAEzCvB,EAAMpzB,cAAgB,SAAUvM,GAC9B,OAAO+gC,EAAkBj+E,KAAKk9C,EAChC,GAEClB,EAAOD,QAAU,SAAU+B,EAAGx8C,EAAK8pC,EAAKkzC,GACvC,IAAIC,EAA2B,mBAAPnzC,EACpBmzC,IAAcX,EAAKxyC,EAAK,SAAWuyC,EAAMvyC,EAAK,OAAQ9pC,IACtDw8C,EAAEx8C,KAAS8pC,IACXmzC,IAAcX,EAAKxyC,EAAK+yC,IAAQR,EAAMvyC,EAAK+yC,EAAKrgC,EAAEx8C,GAAO,GAAKw8C,EAAEx8C,GAAO+8E,EAAIj0E,KAAKqyC,OAAOn7C,MACvFw8C,IAAM6+B,EACR7+B,EAAEx8C,GAAO8pC,EACCkzC,EAGDxgC,EAAEx8C,GACXw8C,EAAEx8C,GAAO8pC,EAETuyC,EAAM7/B,EAAGx8C,EAAK8pC,WALP0S,EAAEx8C,GACTq8E,EAAM7/B,EAAGx8C,EAAK8pC,IAOlB,GAAGqc,SAASl9C,UAAW6zE,GAAW,WAChC,MAAsB,mBAAR/9E,MAAsBA,KAAK89E,IAAQF,EAAkBj+E,KAAKK,KAC1E,GACA,IAEIm+E,EAAa,SAAUthC,GACzB,GAAiB,mBAANA,EAAoB,MAAMb,UAAUa,EAAK,uBACpD,OAAOA,CACT,EAIIuhC,EAAO,SAAUzsE,EAAI41C,EAAMpoD,GAE7B,GADAg/E,EAAWxsE,QACE/Q,IAAT2mD,EAAsB,OAAO51C,EACjC,OAAQxS,GACN,KAAK,EAAG,OAAO,SAAUgN,GACvB,OAAOwF,EAAGhS,KAAK4nD,EAAMp7C,EACvB,EACA,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAOuF,EAAGhS,KAAK4nD,EAAMp7C,EAAGC,EAC1B,EACA,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGlJ,GAC7B,OAAOyO,EAAGhS,KAAK4nD,EAAMp7C,EAAGC,EAAGlJ,EAC7B,EAEF,OAAO,WACL,OAAOyO,EAAG/G,MAAM28C,EAAMh3C,UACxB,CACF,EAEI8tE,EAAY,YAEZC,EAAU,SAAU5gF,EAAMwC,EAAMsQ,GAClC,IAQIvP,EAAKs9E,EAAKC,EAAKC,EARfC,EAAYhhF,EAAO4gF,EAAQt9B,EAC3B29B,EAAYjhF,EAAO4gF,EAAQM,EAC3BC,EAAYnhF,EAAO4gF,EAAQ5hC,EAC3BoiC,EAAWphF,EAAO4gF,EAAQt8B,EAC1B+8B,EAAUrhF,EAAO4gF,EAAQnuB,EACzB7/C,EAASquE,EAAYrC,EAAUuC,EAAYvC,EAAQp8E,KAAUo8E,EAAQp8E,GAAQ,CAAC,IAAMo8E,EAAQp8E,IAAS,CAAC,GAAGm+E,GACzG3iC,EAAUijC,EAAYnC,EAAQA,EAAMt8E,KAAUs8E,EAAMt8E,GAAQ,CAAC,GAC7D8+E,EAAWtjC,EAAQ2iC,KAAe3iC,EAAQ2iC,GAAa,CAAC,GAG5D,IAAKp9E,KADD09E,IAAanuE,EAAStQ,GACdsQ,EAIVguE,IAFAD,GAAOG,GAAapuE,QAA0B1P,IAAhB0P,EAAOrP,IAExBqP,EAASE,GAAQvP,GAE9Bw9E,EAAMM,GAAWR,EAAMH,EAAKI,EAAKlC,GAAWwC,GAA0B,mBAAPN,EAAoBJ,EAAKh3B,SAASznD,KAAM6+E,GAAOA,EAE1GluE,GAAUutE,EAAUvtE,EAAQrP,EAAKu9E,EAAK9gF,EAAO4gF,EAAQW,GAErDvjC,EAAQz6C,IAAQu9E,GAAOlB,EAAM5hC,EAASz6C,EAAKw9E,GAC3CK,GAAYE,EAAS/9E,IAAQu9E,IAAOQ,EAAS/9E,GAAOu9E,EAE5D,EACAlC,EAAQG,KAAOD,EAEf8B,EAAQt9B,EAAI,EACZs9B,EAAQM,EAAI,EACZN,EAAQ5hC,EAAI,EACZ4hC,EAAQt8B,EAAI,EACZs8B,EAAQnuB,EAAI,GACZmuB,EAAQY,EAAI,GACZZ,EAAQW,EAAI,GACZX,EAAQnqB,EAAI,IACZ,IAAIgrB,EAAUb,EAGVzyC,EAAOznC,KAAKynC,KACZD,EAAQxnC,KAAKwnC,MACbwzC,EAAa,SAAUviC,GACzB,OAAOn1C,MAAMm1C,GAAMA,GAAM,GAAKA,EAAK,EAAIjR,EAAQC,GAAMgR,EACvD,EAGIwiC,EAAW,SAAUxiC,GACvB,GAAUj8C,MAANi8C,EAAmB,MAAMb,UAAU,yBAA2Ba,GAClE,OAAOA,CACT,EAIIyiC,EAAY,SAAUvB,GACxB,OAAO,SAAUx2B,EAAMle,GACrB,IAGIl9B,EAAGC,EAHH4V,EAAIo6B,OAAOijC,EAAS93B,IACpBn6C,EAAIgyE,EAAW/1C,GACfynC,EAAI9uD,EAAE7iB,OAEV,OAAIiO,EAAI,GAAKA,GAAK0jE,EAAYiN,EAAY,QAAKn9E,GAC/CuL,EAAI6V,EAAEw0C,WAAWppD,IACN,OAAUjB,EAAI,OAAUiB,EAAI,IAAM0jE,IAAM1kE,EAAI4V,EAAEw0C,WAAWppD,EAAI,IAAM,OAAUhB,EAAI,MACxF2xE,EAAY/7D,EAAEy6B,OAAOrvC,GAAKjB,EAC1B4xE,EAAY/7D,EAAErX,MAAMyC,EAAGA,EAAI,GAA2BhB,EAAI,OAAzBD,EAAI,OAAU,IAAqB,KAC1E,CACF,EAEIozE,EAAMD,GAAU,GACpBH,EAAQA,EAAQn9B,EAAG,SAAU,CAE3Bw9B,YAAa,SAAqBn2C,GAChC,OAAOk2C,EAAIv/E,KAAMqpC,EACnB,IAGgBmzC,EAAMpgC,OAAOojC,YAA/B,IAEIhjE,EAAMpY,KAAKoY,IACXb,EAAMvX,KAAKuX,IACX8jE,EAAmB,SAAUrgF,EAAOD,GAEtC,OADAC,EAAQggF,EAAWhgF,IACJ,EAAIod,EAAIpd,EAAQD,EAAQ,GAAKwc,EAAIvc,EAAOD,EACzD,EAEI+3D,EAAe9a,OAAO8a,aACtBwoB,EAAiBtjC,OAAOujC,cAG5BR,EAAQA,EAAQziC,EAAIyiC,EAAQn+B,KAAO0+B,GAA2C,GAAzBA,EAAevgF,QAAc,SAAU,CAE1FwgF,cAAe,SAAuB5/E,GAOpC,IANA,IAKIk9D,EALA2iB,EAAcrvE,UAEd+yD,EAAM,GACNuc,EAAOtvE,UAAUpR,OACjBiO,EAAI,EAEDyyE,EAAOzyE,GAAG,CAEf,GADA6vD,GAAQ2iB,EAAYxyE,KAChBqyE,EAAiBxiB,EAAM,WAAcA,EAAQ,MAAMhG,WAAWgG,EAAO,8BACzEqG,EAAI1kE,KAAKq+D,EAAO,MACZ/F,EAAa+F,GACb/F,EAAyC,QAA1B+F,GAAQ,QAAY,IAAcA,EAAO,KAAQ,OAEtE,CAAE,OAAOqG,EAAIv5D,KAAK,GACpB,IAGkByyE,EAAMpgC,OAAOujC,cAAjC,IA+CInvE,EACAsvE,EACAC,EACA12C,EACA22C,EACAC,EACAC,EACAj/E,EACA3B,EA+CA6gF,EACApU,EACAqU,EACA97E,EACApB,GAnGAy5C,GAAU,CACb0jC,gBALqB,0CAMrBC,SALc,s7NAMdC,YALiB,s2QAQdC,GAAO,CACPC,iBAAkB,SAA2Bv9E,GACzC,MAAoB,iBAANA,GAAkBy5C,GAAQ0jC,gBAAgBt0E,KAAK7I,EACjE,EAEAw9E,cAAe,SAAwBx9E,GACnC,MAAoB,iBAANA,IACTA,GAAK,KAAOA,GAAK,KACrBA,GAAK,KAAOA,GAAK,KACX,MAANA,GAAqB,MAANA,GAChBy5C,GAAQ2jC,SAASv0E,KAAK7I,GAE1B,EAEAy9E,iBAAkB,SAA2Bz9E,GACzC,MAAoB,iBAANA,IACTA,GAAK,KAAOA,GAAK,KACrBA,GAAK,KAAOA,GAAK,KACjBA,GAAK,KAAOA,GAAK,KACX,MAANA,GAAqB,MAANA,GACT,MAANA,GAA0B,MAANA,GACrBy5C,GAAQ4jC,YAAYx0E,KAAK7I,GAE7B,EAEA09E,QAAS,SAAkB19E,GACvB,MAAoB,iBAANA,GAAkB,QAAQ6I,KAAK7I,EACjD,EAEA29E,WAAY,SAAqB39E,GAC7B,MAAoB,iBAANA,GAAkB,cAAc6I,KAAK7I,EACvD,GAaAwoE,GAAQ,SAAgBr9B,EAAMyyC,GAC9BtwE,EAAS4rC,OAAO/N,GAChByxC,EAAa,QACbC,EAAQ,GACR12C,EAAM,EACN22C,EAAO,EACPC,EAAS,EACTC,OAAQt/E,EACRK,OAAML,EACNtB,OAAOsB,EAEP,GACIs/E,EAAQa,KAORC,GAAYlB,WACQ,QAAfI,EAAMxiF,MAEf,MAAuB,mBAAZojF,EACAG,GAAY,CAAC,GAAI3hF,GAAO,GAAIwhF,GAGhCxhF,CACX,EAEA,SAAS2hF,GAAaC,EAAQhhF,EAAM4gF,GAChC,IAAI5/E,EAAQggF,EAAOhhF,GACnB,GAAa,MAATgB,GAAkC,iBAAVA,EACxB,IAAK,IAAID,KAAOC,EAAO,CACnB,IAAIqnD,EAAc04B,GAAY//E,EAAOD,EAAK6/E,QACtBlgF,IAAhB2nD,SACOrnD,EAAMD,GAEbC,EAAMD,GAAOsnD,CAErB,CAGJ,OAAOu4B,EAAQnhF,KAAKuhF,EAAQhhF,EAAMgB,EACtC,CAQA,SAAS6/E,KAML,IALAZ,EAAW,UACXpU,EAAS,GACTqU,GAAc,EACd97E,EAAO,IAEE,CACLpB,GAAIi+E,KAOJ,IAAIjB,EAAQkB,GAAUjB,KACtB,GAAID,EACA,OAAOA,CAEf,CACJ,CAEA,SAASiB,KACL,GAAI3wE,EAAO64B,GACP,OAAO+S,OAAOujC,cAAcnvE,EAAOgvE,YAAYn2C,GAEvD,CAEA,SAASg4C,KACL,IAAIn+E,EAAIi+E,KAeR,MAbU,OAANj+E,GACA88E,IACAC,EAAS,GACF/8E,EACP+8E,GAAU/8E,EAAE/D,OAEZ8gF,IAGA/8E,IACAmmC,GAAOnmC,EAAE/D,QAGN+D,CACX,CAEA,IAAIk+E,GAAY,CACZE,QAAS,WACL,OAAQp+E,IACR,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,SACL,IAAK,KACL,IAAK,KACL,IAAK,SACL,IAAK,SAED,YADAm+E,KAGJ,IAAK,IAGD,OAFAA,UACAlB,EAAW,WAGf,UAAKv/E,EAED,OADAygF,KACOE,GAAS,OAGpB,IAAIf,GAAKC,iBAAiBv9E,IAU1B,OAAOk+E,GAAUtB,KATbuB,IAUR,EAEAG,QAAS,WACL,OAAQt+E,IACR,IAAK,IAGD,OAFAm+E,UACAlB,EAAW,oBAGf,IAAK,IAGD,OAFAkB,UACAlB,EAAW,qBAIf,MAAMsB,GAAYJ,KACtB,EAEAK,iBAAkB,WACd,OAAQx+E,IACR,IAAK,IAGD,OAFAm+E,UACAlB,EAAW,4BAGf,UAAKv/E,EACD,MAAM6gF,GAAYJ,MAGtBA,IACJ,EAEAM,yBAA0B,WACtB,OAAQz+E,IACR,IAAK,IAED,YADAm+E,KAGJ,IAAK,IAGD,OAFAA,UACAlB,EAAW,WAGf,UAAKv/E,EACD,MAAM6gF,GAAYJ,MAGtBA,KACAlB,EAAW,kBACf,EAEAyB,kBAAmB,WACf,OAAQ1+E,IACR,IAAK,KACL,IAAK,KACL,IAAK,SACL,IAAK,SAGD,OAFAm+E,UACAlB,EAAW,WAGf,UAAKv/E,EAED,OADAygF,KACOE,GAAS,OAGpBF,IACJ,EAEAngF,MAAO,WACH,OAAQgC,IACR,IAAK,IACL,IAAK,IACD,OAAOq+E,GAAS,aAAcF,MAElC,IAAK,IAGD,OAFAA,KACAQ,GAAQ,OACDN,GAAS,OAAQ,MAE5B,IAAK,IAGD,OAFAF,KACAQ,GAAQ,OACDN,GAAS,WAAW,GAE/B,IAAK,IAGD,OAFAF,KACAQ,GAAQ,QACDN,GAAS,WAAW,GAE/B,IAAK,IACL,IAAK,IAMD,MALe,MAAXF,OACA/8E,GAAQ,QAGZ67E,EAAW,QAGf,IAAK,IAGD,OAFApU,EAASsV,UACTlB,EAAW,uBAGf,IAAK,IAGD,OAFApU,EAASsV,UACTlB,EAAW,QAGf,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAGD,OAFApU,EAASsV,UACTlB,EAAW,kBAGf,IAAK,IAGD,OAFAkB,KACAQ,GAAQ,WACDN,GAAS,UAAWjsC,KAE/B,IAAK,IAGD,OAFA+rC,KACAQ,GAAQ,MACDN,GAAS,UAAWO,KAE/B,IAAK,IACL,IAAK,IAID,OAHA1B,EAA0B,MAAXiB,KACftV,EAAS,QACToU,EAAW,UAIf,MAAMsB,GAAYJ,KACtB,EAEAU,0BAA2B,WACvB,GAAU,MAAN7+E,GACA,MAAMu+E,GAAYJ,MAGtBA,KACA,IAAIW,EAAIC,KACR,OAAQD,GACR,IAAK,IACL,IAAK,IACD,MAEJ,QACI,IAAKxB,GAAKE,cAAcsB,GACpB,MAAME,KAMdnW,GAAUiW,EACV7B,EAAW,gBACf,EAEAgC,eAAgB,WACZ,OAAQj/E,IACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAED,YADA6oE,GAAUsV,MAGd,IAAK,KAGD,OAFAA,UACAlB,EAAW,wBAIf,IAAIK,GAAKG,iBAAiBz9E,IAK1B,OAAOq+E,GAAS,aAAcxV,GAJ1BA,GAAUsV,IAKlB,EAEAe,qBAAsB,WAClB,GAAU,MAANl/E,GACA,MAAMu+E,GAAYJ,MAGtBA,KACA,IAAIW,EAAIC,KACR,OAAQD,GACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAEJ,QACI,IAAKxB,GAAKG,iBAAiBqB,GACvB,MAAME,KAMdnW,GAAUiW,EACV7B,EAAW,gBACf,EAEA77E,KAAM,WACF,OAAQpB,IACR,IAAK,IAGD,OAFA6oE,EAASsV,UACTlB,EAAW,uBAGf,IAAK,IAGD,OAFApU,EAASsV,UACTlB,EAAW,QAGf,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAGD,OAFApU,EAASsV,UACTlB,EAAW,kBAGf,IAAK,IAGD,OAFAkB,KACAQ,GAAQ,WACDN,GAAS,UAAWj9E,GAAOgxC,MAEtC,IAAK,IAGD,OAFA+rC,KACAQ,GAAQ,MACDN,GAAS,UAAWO,KAG/B,MAAML,GAAYJ,KACtB,EAEAgB,KAAM,WACF,OAAQn/E,IACR,IAAK,IAGD,OAFA6oE,GAAUsV,UACVlB,EAAW,gBAGf,IAAK,IACL,IAAK,IAGD,OAFApU,GAAUsV,UACVlB,EAAW,mBAGf,IAAK,IACL,IAAK,IAGD,OAFApU,GAAUsV,UACVlB,EAAW,eAIf,OAAOoB,GAAS,UAAkB,EAAPj9E,EAC/B,EAEAg+E,eAAgB,WACZ,OAAQp/E,IACR,IAAK,IAGD,OAFA6oE,GAAUsV,UACVlB,EAAW,gBAGf,IAAK,IACL,IAAK,IAGD,OAFApU,GAAUsV,UACVlB,EAAW,mBAIf,IAAIK,GAAKI,QAAQ19E,IAKjB,OAAOq+E,GAAS,UAAWj9E,EAAOi+E,OAAOxW,IAJrCA,GAAUsV,IAKlB,EAEAmB,oBAAqB,WACjB,GAAIhC,GAAKI,QAAQ19E,IAGb,OAFA6oE,GAAUsV,UACVlB,EAAW,mBAIf,MAAMsB,GAAYJ,KACtB,EAEAoB,aAAc,WACV,OAAQv/E,IACR,IAAK,IACL,IAAK,IAGD,OAFA6oE,GAAUsV,UACVlB,EAAW,mBAIf,OAAIK,GAAKI,QAAQ19E,KACb6oE,GAAUsV,UACVlB,EAAW,oBAIRoB,GAAS,UAAWj9E,EAAOi+E,OAAOxW,GAC7C,EAEA2W,gBAAiB,WACb,OAAQx/E,IACR,IAAK,IACL,IAAK,IAGD,OAFA6oE,GAAUsV,UACVlB,EAAW,mBAIf,IAAIK,GAAKI,QAAQ19E,IAKjB,OAAOq+E,GAAS,UAAWj9E,EAAOi+E,OAAOxW,IAJrCA,GAAUsV,IAKlB,EAEAsB,gBAAiB,WACb,OAAQz/E,IACR,IAAK,IACL,IAAK,IAGD,OAFA6oE,GAAUsV,UACVlB,EAAW,uBAIf,GAAIK,GAAKI,QAAQ19E,IAGb,OAFA6oE,GAAUsV,UACVlB,EAAW,0BAIf,MAAMsB,GAAYJ,KACtB,EAEAuB,oBAAqB,WACjB,GAAIpC,GAAKI,QAAQ19E,IAGb,OAFA6oE,GAAUsV,UACVlB,EAAW,0BAIf,MAAMsB,GAAYJ,KACtB,EAEAwB,uBAAwB,WACpB,IAAIrC,GAAKI,QAAQ19E,IAKjB,OAAOq+E,GAAS,UAAWj9E,EAAOi+E,OAAOxW,IAJrCA,GAAUsV,IAKlB,EAEAyB,YAAa,WACT,GAAItC,GAAKK,WAAW39E,IAGhB,OAFA6oE,GAAUsV,UACVlB,EAAW,sBAIf,MAAMsB,GAAYJ,KACtB,EAEA0B,mBAAoB,WAChB,IAAIvC,GAAKK,WAAW39E,IAKpB,OAAOq+E,GAAS,UAAWj9E,EAAOi+E,OAAOxW,IAJrCA,GAAUsV,IAKlB,EAEAx2B,OAAQ,WACJ,OAAQ3nD,IACR,IAAK,KAGD,OAFAm+E,UACAtV,GAAUj/D,MAGd,IAAK,IACD,OAAIszE,GACAiB,KACOE,GAAS,SAAUxV,SAG9BA,GAAUsV,MAGd,IAAK,IACD,OAAKjB,OAKLrU,GAAUsV,OAJNA,KACOE,GAAS,SAAUxV,IAMlC,IAAK,KACL,IAAK,KACD,MAAM0V,GAAYJ,MAEtB,IAAK,SACL,IAAK,SACD2B,GAAc9/E,IACd,MAEJ,UAAKtC,EACD,MAAM6gF,GAAYJ,MAGtBtV,GAAUsV,IACd,EAEA1/E,MAAO,WACH,OAAQuB,IACR,IAAK,IACL,IAAK,IACD,OAAOq+E,GAAS,aAAcF,MAOlClB,EAAW,OACf,EAEA8C,mBAAoB,WAChB,OAAQ//E,IACR,IAAK,IACL,IAAK,IAGD,OAFA6oE,EAASsV,UACTlB,EAAW,kBAGf,IAAK,KAGD,OAFAkB,UACAlB,EAAW,6BAGf,IAAK,IACD,OAAOoB,GAAS,aAAcF,MAElC,IAAK,IACL,IAAK,IAGD,OAFAjB,EAA0B,MAAXiB,UACflB,EAAW,UAIf,GAAIK,GAAKE,cAAcx9E,IAGnB,OAFA6oE,GAAUsV,UACVlB,EAAW,kBAIf,MAAMsB,GAAYJ,KACtB,EAEA6B,kBAAmB,WACf,GAAU,MAANhgF,GACA,OAAOq+E,GAAS,aAAcF,MAGlC,MAAMI,GAAYJ,KACtB,EAEA8B,oBAAqB,WACjBhD,EAAW,OACf,EAEAiD,mBAAoB,WAChB,OAAQlgF,IACR,IAAK,IACL,IAAK,IACD,OAAOq+E,GAAS,aAAcF,MAGlC,MAAMI,GAAYJ,KACtB,EAEAgC,iBAAkB,WACd,GAAU,MAANngF,GACA,OAAOq+E,GAAS,aAAcF,MAGlClB,EAAW,OACf,EAEAmD,gBAAiB,WACb,OAAQpgF,IACR,IAAK,IACL,IAAK,IACD,OAAOq+E,GAAS,aAAcF,MAGlC,MAAMI,GAAYJ,KACtB,EAEA/wD,IAAK,WAOD,MAAMmxD,GAAYJ,KACtB,GAGJ,SAASE,GAAU7jF,EAAMwD,GACrB,MAAO,CACHxD,KAAMA,EACNwD,MAAOA,EACP8+E,KAAMA,EACNC,OAAQA,EAEhB,CAEA,SAAS4B,GAAS7/D,GACd,IAAK,IAAI5U,EAAI,EAAG8hB,EAAOlN,EAAG5U,EAAI8hB,EAAK/vB,OAAQiO,GAAK,EAAG,CAC/C,IAAIlK,EAAIgsB,EAAK9hB,GAIb,GAFQ+zE,OAEEj+E,EACN,MAAMu+E,GAAYJ,MAGtBA,IACJ,CACJ,CAEA,SAASv0E,KAEL,OADQq0E,MAER,IAAK,IAED,OADAE,KACO,KAEX,IAAK,IAED,OADAA,KACO,KAEX,IAAK,IAED,OADAA,KACO,KAEX,IAAK,IAED,OADAA,KACO,KAEX,IAAK,IAED,OADAA,KACO,KAEX,IAAK,IAED,OADAA,KACO,KAEX,IAAK,IAED,GADAA,KACIb,GAAKI,QAAQO,MACb,MAAMM,GAAYJ,MAGtB,MAAO,KAEX,IAAK,IAED,OADAA,KACOkC,KAEX,IAAK,IAED,OADAlC,KACOY,KAEX,IAAK,KACL,IAAK,SACL,IAAK,SAED,OADAZ,KACO,GAEX,IAAK,KAMD,OALAA,KACe,OAAXF,MACAE,KAGG,GAEX,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAGL,UAAKzgF,EACD,MAAM6gF,GAAYJ,MAGtB,OAAOA,IACX,CAEA,SAASkC,KACL,IAAIxX,EAAS,GACT7oE,EAAIi+E,KAER,IAAKX,GAAKK,WAAW39E,GACjB,MAAMu+E,GAAYJ,MAMtB,GAHAtV,GAAUsV,KAEVn+E,EAAIi+E,MACCX,GAAKK,WAAW39E,GACjB,MAAMu+E,GAAYJ,MAKtB,OAFAtV,GAAUsV,KAEHjlC,OAAOujC,cAAc1zE,SAAS8/D,EAAQ,IACjD,CAEA,SAASkW,KAIL,IAHA,IAAIlW,EAAS,GACTyX,EAAQ,EAELA,KAAU,GAAG,CAChB,IAAItgF,EAAIi+E,KACR,IAAKX,GAAKK,WAAW39E,GACjB,MAAMu+E,GAAYJ,MAGtBtV,GAAUsV,IACd,CAEA,OAAOjlC,OAAOujC,cAAc1zE,SAAS8/D,EAAQ,IACjD,CAEA,IAAIiV,GAAc,CACdr/E,MAAO,WACH,GAAmB,QAAfu+E,EAAMxiF,KACN,MAAM+lF,KAGV7kF,IACJ,EAEAqkF,mBAAoB,WAChB,OAAQ/C,EAAMxiF,MACd,IAAK,aACL,IAAK,SAGD,OAFAuD,EAAMi/E,EAAMh/E,WACZ4+E,EAAa,qBAGjB,IAAK,aAOD,YADAv5D,KAGJ,IAAK,MACD,MAAMk9D,KAKd,EAEAP,kBAAmB,WAMf,GAAmB,QAAfhD,EAAMxiF,KACN,MAAM+lF,KAGV3D,EAAa,qBACjB,EAEAqD,oBAAqB,WACjB,GAAmB,QAAfjD,EAAMxiF,KACN,MAAM+lF,KAGV7kF,IACJ,EAEAykF,iBAAkB,WACd,GAAmB,QAAfnD,EAAMxiF,KACN,MAAM+lF,KAGS,eAAfvD,EAAMxiF,MAAyC,MAAhBwiF,EAAMh/E,MAKzCtC,KAJI2nB,IAKR,EAEA68D,mBAAoB,WAMhB,GAAmB,QAAflD,EAAMxiF,KACN,MAAM+lF,KAGV,OAAQvD,EAAMh/E,OACd,IAAK,IAED,YADA4+E,EAAa,sBAGjB,IAAK,IACDv5D,KAKR,EAEA+8D,gBAAiB,WAMb,GAAmB,QAAfpD,EAAMxiF,KACN,MAAM+lF,KAGV,OAAQvD,EAAMh/E,OACd,IAAK,IAED,YADA4+E,EAAa,oBAGjB,IAAK,IACDv5D,KAKR,EAEA+J,IAAK,WAKL,GAGJ,SAAS1xB,KACL,IAAIsC,EAEJ,OAAQg/E,EAAMxiF,MACd,IAAK,aACD,OAAQwiF,EAAMh/E,OACd,IAAK,IACDA,EAAQ,CAAC,EACT,MAEJ,IAAK,IACDA,EAAQ,GAIZ,MAEJ,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,SACDA,EAAQg/E,EAAMh/E,MAQlB,QAAaN,IAATtB,EACAA,EAAO4B,MACJ,CACH,IAAI81B,EAAS+oD,EAAMA,EAAM5gF,OAAS,GAC9BiG,MAAMC,QAAQ2xB,GACdA,EAAOp4B,KAAKsC,GAEZ81B,EAAO/1B,GAAOC,CAEtB,CAEA,GAAc,OAAVA,GAAmC,iBAAVA,EACzB6+E,EAAMnhF,KAAKsC,GAGP4+E,EADA16E,MAAMC,QAAQnE,GACD,mBAEA,yBAEd,CACH,IAAImgB,EAAU0+D,EAAMA,EAAM5gF,OAAS,GAE/B2gF,EADW,MAAXz+D,EACa,MACNjc,MAAMC,QAAQgc,GACR,kBAEA,oBAErB,CACJ,CAEA,SAASkF,KACLw5D,EAAMx5D,MAEN,IAAIlF,EAAU0+D,EAAMA,EAAM5gF,OAAS,GAE/B2gF,EADW,MAAXz+D,EACa,MACNjc,MAAMC,QAAQgc,GACR,kBAEA,oBAErB,CAYA,SAASogE,GAAav+E,GAClB,OACWwgF,QADD9iF,IAANsC,EACoB,kCAAoC88E,EAAO,IAAMC,EAGrD,6BAAgC0D,GAAWzgF,GAAM,QAAU88E,EAAO,IAAMC,EAChG,CAEA,SAASwD,KACL,OAAOC,GAAa,kCAAoC1D,EAAO,IAAMC,EACzE,CAYA,SAASiC,KAEL,OAAOwB,GAAa,0CAA4C1D,EAAO,KADvEC,GAAU,GAEd,CAEA,SAAS+C,GAAe9/E,GACpB8J,QAAQquC,KAAM,WAAcsoC,GAAWzgF,GAAM,0DACjD,CAEA,SAASygF,GAAYzgF,GACjB,IAAIwiE,EAAe,CACf,IAAK,MACL,IAAK,MACL,KAAM,OACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,SAAU,UACV,SAAU,WAGd,GAAIA,EAAaxiE,GACb,OAAOwiE,EAAaxiE,GAGxB,GAAIA,EAAI,IAAK,CACT,IAAI0gF,EAAY1gF,EAAEszD,WAAW,GAAGz7C,SAAS,IACzC,MAAO,OAAS,KAAO6oE,GAAWC,UAAUD,EAAUzkF,OAC1D,CAEA,OAAO+D,CACX,CAEA,SAASwgF,GAAax2E,GAClB,IAAIH,EAAM,IAAIk0D,YAAY/zD,GAG1B,OAFAH,EAAI+2E,WAAa9D,EACjBjzE,EAAIg3E,aAAe9D,EACZlzE,CACX,CAEA,IAAIi3E,GAAY,SAAoB9iF,EAAOkiE,EAAUnxB,GACjD,IAEIgyC,EACAC,EAEAC,EALApE,EAAQ,GACRqE,EAAS,GAGTC,EAAM,GAaV,GATgB,MAAZjhB,GACoB,iBAAbA,GACNh+D,MAAMC,QAAQ+9D,KAEfnxB,EAAQmxB,EAASnxB,MACjBkyC,EAAQ/gB,EAAS+gB,MACjB/gB,EAAWA,EAASA,UAGA,mBAAbA,EACP8gB,EAAe9gB,OACZ,GAAIh+D,MAAMC,QAAQ+9D,GAAW,CAChC6gB,EAAe,GACf,IAAK,IAAI72E,EAAI,EAAG8hB,EAAOk0C,EAAUh2D,EAAI8hB,EAAK/vB,OAAQiO,GAAK,EAAG,CACtD,IAAI0vB,EAAI5N,EAAK9hB,GAETsB,OAAO,EAEM,iBAANouB,EACPpuB,EAAOouB,GAEM,iBAANA,GACPA,aAAasf,QACbtf,aAAaylD,UAEb7zE,EAAO0tC,OAAOtf,SAGLl8B,IAAT8N,GAAsBu1E,EAAa3yE,QAAQ5C,GAAQ,GACnDu1E,EAAarlF,KAAK8P,EAE1B,CACJ,CAiBA,OAfIujC,aAAiBswC,OACjBtwC,EAAQswC,OAAOtwC,GACRA,aAAiBmK,SACxBnK,EAAQmK,OAAOnK,IAGE,iBAAVA,EACHA,EAAQ,IACRA,EAAQ7tC,KAAKuX,IAAI,GAAIvX,KAAKwnC,MAAMqG,IAChCoyC,EAAM,aAAaC,OAAO,EAAGryC,IAET,iBAAVA,IACdoyC,EAAMpyC,EAAMqyC,OAAO,EAAG,KAGnBC,EAAkB,GAAI,CAAC,GAAIrjF,IAElC,SAASqjF,EAAmBtjF,EAAKigF,GAC7B,IAAIhgF,EAAQggF,EAAOjgF,GAqBnB,OApBa,MAATC,IAC6B,mBAAlBA,EAAMsjF,QACbtjF,EAAQA,EAAMsjF,QAAQvjF,GACS,mBAAjBC,EAAM25D,SACpB35D,EAAQA,EAAM25D,OAAO55D,KAIzBijF,IACAhjF,EAAQgjF,EAAavkF,KAAKuhF,EAAQjgF,EAAKC,IAGvCA,aAAiBqhF,OACjBrhF,EAAQqhF,OAAOrhF,GACRA,aAAiBk7C,OACxBl7C,EAAQk7C,OAAOl7C,GACRA,aAAiBiX,UACxBjX,EAAQA,EAAM2xD,WAGV3xD,GACR,KAAK,KAAM,MAAO,OAClB,KAAK,EAAM,MAAO,OAClB,KAAK,EAAO,MAAO,QAGnB,MAAqB,iBAAVA,EACAujF,EAAYvjF,GAAO,GAGT,iBAAVA,EACAk7C,OAAOl7C,GAGG,iBAAVA,EACAkE,MAAMC,QAAQnE,GAASwjF,EAAexjF,GAASyjF,EAAgBzjF,QAD1E,CAKJ,CAEA,SAASujF,EAAavjF,GAuBlB,IAtBA,IAAI0jF,EAAS,CACT,IAAK,GACL,IAAK,IAGLlf,EAAe,CACf,IAAK,MACL,IAAK,MACL,KAAM,OACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,SAAU,UACV,SAAU,WAGVmf,EAAU,GAELz3E,EAAI,EAAGA,EAAIlM,EAAM/B,OAAQiO,IAAK,CACnC,IAAIlK,EAAIhC,EAAMkM,GACd,OAAQlK,GACR,IAAK,IACL,IAAK,IACD0hF,EAAO1hF,KACP2hF,GAAW3hF,EACX,SAEJ,IAAK,KACD,GAAIs9E,GAAKI,QAAQ1/E,EAAMkM,EAAI,IAAK,CAC5By3E,GAAW,QACX,QACJ,EAGJ,GAAInf,EAAaxiE,GACb2hF,GAAWnf,EAAaxiE,QAI5B,GAAIA,EAAI,IAAR,CACI,IAAI0gF,EAAY1gF,EAAEszD,WAAW,GAAGz7C,SAAS,IACzC8pE,GAAW,OAAS,KAAOjB,GAAWC,UAAUD,EAAUzkF,OAE9D,MAEA0lF,GAAW3hF,CACf,CAEA,IAAI4hF,EAAYX,GAASnjF,OAAO+O,KAAK60E,GAAQz1E,QAAO,SAAUhD,EAAGC,GAAK,OAAQw4E,EAAOz4E,GAAKy4E,EAAOx4E,GAAMD,EAAIC,CAAG,IAI9G,OAAO04E,GAFPD,EAAUA,EAAQjsE,QAAQ,IAAIs2B,OAAO41C,EAAW,KAAMpf,EAAaof,KAEtCA,CACjC,CAEA,SAASH,EAAiBzjF,GACtB,GAAI6+E,EAAMzuE,QAAQpQ,IAAU,EACxB,MAAM86C,UAAU,0CAGpB+jC,EAAMnhF,KAAKsC,GAEX,IAAI6jF,EAAWX,EACfA,GAAkBC,EAIlB,IAFA,IAgBIl/E,EAII6/E,EAnBJC,EAAU,GACL73E,EAAI,EAAG8hB,EAFL+0D,GAAgBjjF,OAAO+O,KAAK7O,GAEVkM,EAAI8hB,EAAK/vB,OAAQiO,GAAK,EAAG,CAClD,IAAInM,EAAMiuB,EAAK9hB,GAEX83E,EAAiBX,EAAkBtjF,EAAKC,GAC5C,QAAuBN,IAAnBskF,EAA8B,CAC9B,IAAIC,EAASC,EAAankF,GAAO,IACrB,KAARojF,IACAc,GAAU,KAEdA,GAAUD,EACVD,EAAQrmF,KAAKumF,EACjB,CACJ,CAGA,GAAuB,IAAnBF,EAAQ9lF,OACRgG,EAAQ,UAGR,GAAY,KAARk/E,EAEAl/E,EAAQ,KADR6/E,EAAaC,EAAQl7E,KAAK,MACC,QACxB,CACH,IAAIs7E,EAAY,MAAQjB,EACxBY,EAAaC,EAAQl7E,KAAKs7E,GAC1BlgF,EAAQ,MAAQi/E,EAASY,EAAa,MAAQD,EAAW,GAC7D,CAKJ,OAFAhF,EAAMx5D,MACN69D,EAASW,EACF5/E,CACX,CAEA,SAASigF,EAAcnkF,GACnB,GAAmB,IAAfA,EAAI9B,OACJ,OAAOslF,EAAYxjF,GAAK,GAG5B,IAAIqkF,EAAYlpC,OAAOujC,cAAc1+E,EAAIu+E,YAAY,IACrD,IAAKgB,GAAKE,cAAc4E,GACpB,OAAOb,EAAYxjF,GAAK,GAG5B,IAAK,IAAImM,EAAIk4E,EAAUnmF,OAAQiO,EAAInM,EAAI9B,OAAQiO,IAC3C,IAAKozE,GAAKG,iBAAiBvkC,OAAOujC,cAAc1+E,EAAIu+E,YAAYpyE,KAC5D,OAAOq3E,EAAYxjF,GAAK,GAIhC,OAAOA,CACX,CAEA,SAASyjF,EAAgBxjF,GACrB,GAAI6+E,EAAMzuE,QAAQpQ,IAAU,EACxB,MAAM86C,UAAU,0CAGpB+jC,EAAMnhF,KAAKsC,GAEX,IAAI6jF,EAAWX,EACfA,GAAkBC,EAGlB,IADA,IAMIl/E,EANA8/E,EAAU,GACL73E,EAAI,EAAGA,EAAIlM,EAAM/B,OAAQiO,IAAK,CACnC,IAAI83E,EAAiBX,EAAkBnoC,OAAOhvC,GAAIlM,GAClD+jF,EAAQrmF,UAAyBgC,IAAnBskF,EAAgCA,EAAiB,OACnE,CAGA,GAAuB,IAAnBD,EAAQ9lF,OACRgG,EAAQ,UAER,GAAY,KAARk/E,EAEAl/E,EAAQ,IADS8/E,EAAQl7E,KAAK,KACH,QACxB,CACH,IAAIs7E,EAAY,MAAQjB,EACpBmB,EAAeN,EAAQl7E,KAAKs7E,GAChClgF,EAAQ,MAAQi/E,EAASmB,EAAe,MAAQR,EAAW,GAC/D,CAKJ,OAFAhF,EAAMx5D,MACN69D,EAASW,EACF5/E,CACX,CACJ,EAWA,MATY,CACRumE,MAAOA,GACPsY,UAAWA,GASf,CA5qDgFvoC,iBCA7E+pC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB9kF,IAAjB+kF,EACH,OAAOA,EAAajqC,QAGrB,IAAIC,EAAS6pC,EAAyBE,GAAY,CACjDjsB,GAAIisB,EACJE,QAAQ,EACRlqC,QAAS,CAAC,GAUX,OANAmqC,EAAoBH,GAAU/lF,KAAKg8C,EAAOD,QAASC,EAAQA,EAAOD,QAAS+pC,GAG3E9pC,EAAOiqC,QAAS,EAGTjqC,EAAOD,OACf,CCzBA+pC,EAAoBK,KAAO,CAAC,ECC5BL,EAAoBM,EAAI,CAACrqC,EAASsqC,KACjC,IAAI,IAAI/kF,KAAO+kF,EACXP,EAAoBQ,EAAED,EAAY/kF,KAASwkF,EAAoBQ,EAAEvqC,EAASz6C,IAC5ED,OAAO4P,eAAe8qC,EAASz6C,EAAK,CAAEmP,YAAY,EAAM7P,IAAKylF,EAAW/kF,IAE1E,ECNDwkF,EAAoB98B,EAAI,WACvB,GAA0B,iBAAfD,WAAyB,OAAOA,WAC3C,IACC,OAAO1oD,MAAQ,IAAIonD,SAAS,cAAb,EAGhB,CAFE,MAAOllD,GACR,GAAsB,iBAAX1G,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBiqF,EAAoBS,IAAOvqC,KAC1BA,EAAS36C,OAAOs7C,OAAOX,IACXrwC,WAAUqwC,EAAOrwC,SAAW,IACxCtK,OAAO4P,eAAe+qC,EAAQ,UAAW,CACxCvrC,YAAY,EACZ9P,IAAK,KACJ,MAAM,IAAImP,MAAM,0FAA4FksC,EAAO8d,GAAG,IAGjH9d,GCTR8pC,EAAoBQ,EAAI,CAACtnF,EAAKuyE,IAAUlwE,OAAOkJ,UAAUurB,eAAe91B,KAAKhB,EAAKuyE,GCClFuU,EAAoBhlB,EAAK/kB,IACH,oBAAX2U,QAA0BA,OAAO81B,aAC1CnlF,OAAO4P,eAAe8qC,EAAS2U,OAAO81B,YAAa,CAAEjlF,MAAO,WAE7DF,OAAO4P,eAAe8qC,EAAS,aAAc,CAAEx6C,OAAO,GAAO,ECF9DukF,EAAoB,MACMA,EAAoB","sources":["webpack://xtendui/./src/xt.mjs","webpack://xtendui/./node_modules/tabbable/dist/index.esm.js","webpack://xtendui/./node_modules/focus-trap/dist/focus-trap.esm.js","webpack://xtendui/./src/toggle.mjs","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/math.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://xtendui/./node_modules/@popperjs/core/lib/enums.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://xtendui/./node_modules/@popperjs/core/lib/createPopper.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/within.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://xtendui/./node_modules/@popperjs/core/lib/popper.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://xtendui/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://xtendui/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://xtendui/./src/drop.mjs","webpack://xtendui/./src/form.mjs","webpack://xtendui/./src/googlelocator.mjs","webpack://xtendui/./src/groupnumber.mjs","webpack://xtendui/./src/infinitescroll.mjs","webpack://xtendui/./src/mousefollow.mjs","webpack://xtendui/./src/overlay.mjs","webpack://xtendui/./src/ripple.mjs","webpack://xtendui/./src/scrollto.mjs","webpack://xtendui/./src/slider.mjs","webpack://xtendui/./src/stickyflow.mjs","webpack://xtendui/./src/textareaautosize.mjs","webpack://xtendui/./src/tooltip.mjs","webpack://xtendui/./src/usability.mjs","webpack://xtendui/./dist/xtendui.js","webpack://xtendui/./node_modules/core-js/internals/a-callable.js","webpack://xtendui/./node_modules/core-js/internals/a-constructor.js","webpack://xtendui/./node_modules/core-js/internals/a-possible-prototype.js","webpack://xtendui/./node_modules/core-js/internals/add-to-unscopables.js","webpack://xtendui/./node_modules/core-js/internals/advance-string-index.js","webpack://xtendui/./node_modules/core-js/internals/an-instance.js","webpack://xtendui/./node_modules/core-js/internals/an-object.js","webpack://xtendui/./node_modules/core-js/internals/array-from.js","webpack://xtendui/./node_modules/core-js/internals/array-includes.js","webpack://xtendui/./node_modules/core-js/internals/array-method-is-strict.js","webpack://xtendui/./node_modules/core-js/internals/array-set-length.js","webpack://xtendui/./node_modules/core-js/internals/array-slice-simple.js","webpack://xtendui/./node_modules/core-js/internals/array-slice.js","webpack://xtendui/./node_modules/core-js/internals/array-sort.js","webpack://xtendui/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://xtendui/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://xtendui/./node_modules/core-js/internals/classof-raw.js","webpack://xtendui/./node_modules/core-js/internals/classof.js","webpack://xtendui/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://xtendui/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://xtendui/./node_modules/core-js/internals/create-iter-result-object.js","webpack://xtendui/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://xtendui/./node_modules/core-js/internals/create-property-descriptor.js","webpack://xtendui/./node_modules/core-js/internals/create-property.js","webpack://xtendui/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://xtendui/./node_modules/core-js/internals/define-built-in.js","webpack://xtendui/./node_modules/core-js/internals/define-built-ins.js","webpack://xtendui/./node_modules/core-js/internals/define-global-property.js","webpack://xtendui/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://xtendui/./node_modules/core-js/internals/descriptors.js","webpack://xtendui/./node_modules/core-js/internals/document-all.js","webpack://xtendui/./node_modules/core-js/internals/document-create-element.js","webpack://xtendui/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://xtendui/./node_modules/core-js/internals/dom-iterables.js","webpack://xtendui/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://xtendui/./node_modules/core-js/internals/engine-ff-version.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-browser.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-deno.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-ios.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-node.js","webpack://xtendui/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://xtendui/./node_modules/core-js/internals/engine-user-agent.js","webpack://xtendui/./node_modules/core-js/internals/engine-v8-version.js","webpack://xtendui/./node_modules/core-js/internals/engine-webkit-version.js","webpack://xtendui/./node_modules/core-js/internals/enum-bug-keys.js","webpack://xtendui/./node_modules/core-js/internals/export.js","webpack://xtendui/./node_modules/core-js/internals/fails.js","webpack://xtendui/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://xtendui/./node_modules/core-js/internals/function-apply.js","webpack://xtendui/./node_modules/core-js/internals/function-bind-context.js","webpack://xtendui/./node_modules/core-js/internals/function-bind-native.js","webpack://xtendui/./node_modules/core-js/internals/function-call.js","webpack://xtendui/./node_modules/core-js/internals/function-name.js","webpack://xtendui/./node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://xtendui/./node_modules/core-js/internals/function-uncurry-this.js","webpack://xtendui/./node_modules/core-js/internals/get-built-in.js","webpack://xtendui/./node_modules/core-js/internals/get-iterator-method.js","webpack://xtendui/./node_modules/core-js/internals/get-iterator.js","webpack://xtendui/./node_modules/core-js/internals/get-method.js","webpack://xtendui/./node_modules/core-js/internals/get-substitution.js","webpack://xtendui/./node_modules/core-js/internals/global.js","webpack://xtendui/./node_modules/core-js/internals/has-own-property.js","webpack://xtendui/./node_modules/core-js/internals/hidden-keys.js","webpack://xtendui/./node_modules/core-js/internals/host-report-errors.js","webpack://xtendui/./node_modules/core-js/internals/html.js","webpack://xtendui/./node_modules/core-js/internals/ie8-dom-define.js","webpack://xtendui/./node_modules/core-js/internals/indexed-object.js","webpack://xtendui/./node_modules/core-js/internals/inherit-if-required.js","webpack://xtendui/./node_modules/core-js/internals/inspect-source.js","webpack://xtendui/./node_modules/core-js/internals/internal-state.js","webpack://xtendui/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://xtendui/./node_modules/core-js/internals/is-array.js","webpack://xtendui/./node_modules/core-js/internals/is-callable.js","webpack://xtendui/./node_modules/core-js/internals/is-constructor.js","webpack://xtendui/./node_modules/core-js/internals/is-forced.js","webpack://xtendui/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://xtendui/./node_modules/core-js/internals/is-object.js","webpack://xtendui/./node_modules/core-js/internals/is-pure.js","webpack://xtendui/./node_modules/core-js/internals/is-regexp.js","webpack://xtendui/./node_modules/core-js/internals/is-symbol.js","webpack://xtendui/./node_modules/core-js/internals/iterate.js","webpack://xtendui/./node_modules/core-js/internals/iterator-close.js","webpack://xtendui/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://xtendui/./node_modules/core-js/internals/iterator-define.js","webpack://xtendui/./node_modules/core-js/internals/iterators-core.js","webpack://xtendui/./node_modules/core-js/internals/iterators.js","webpack://xtendui/./node_modules/core-js/internals/length-of-array-like.js","webpack://xtendui/./node_modules/core-js/internals/make-built-in.js","webpack://xtendui/./node_modules/core-js/internals/math-trunc.js","webpack://xtendui/./node_modules/core-js/internals/microtask.js","webpack://xtendui/./node_modules/core-js/internals/new-promise-capability.js","webpack://xtendui/./node_modules/core-js/internals/object-assign.js","webpack://xtendui/./node_modules/core-js/internals/object-create.js","webpack://xtendui/./node_modules/core-js/internals/object-define-properties.js","webpack://xtendui/./node_modules/core-js/internals/object-define-property.js","webpack://xtendui/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://xtendui/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://xtendui/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://xtendui/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://xtendui/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://xtendui/./node_modules/core-js/internals/object-keys-internal.js","webpack://xtendui/./node_modules/core-js/internals/object-keys.js","webpack://xtendui/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://xtendui/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://xtendui/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://xtendui/./node_modules/core-js/internals/own-keys.js","webpack://xtendui/./node_modules/core-js/internals/perform.js","webpack://xtendui/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://xtendui/./node_modules/core-js/internals/promise-native-constructor.js","webpack://xtendui/./node_modules/core-js/internals/promise-resolve.js","webpack://xtendui/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://xtendui/./node_modules/core-js/internals/proxy-accessor.js","webpack://xtendui/./node_modules/core-js/internals/queue.js","webpack://xtendui/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://xtendui/./node_modules/core-js/internals/regexp-exec.js","webpack://xtendui/./node_modules/core-js/internals/regexp-flags.js","webpack://xtendui/./node_modules/core-js/internals/regexp-get-flags.js","webpack://xtendui/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://xtendui/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://xtendui/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://xtendui/./node_modules/core-js/internals/require-object-coercible.js","webpack://xtendui/./node_modules/core-js/internals/set-species.js","webpack://xtendui/./node_modules/core-js/internals/set-to-string-tag.js","webpack://xtendui/./node_modules/core-js/internals/shared-key.js","webpack://xtendui/./node_modules/core-js/internals/shared-store.js","webpack://xtendui/./node_modules/core-js/internals/shared.js","webpack://xtendui/./node_modules/core-js/internals/species-constructor.js","webpack://xtendui/./node_modules/core-js/internals/string-multibyte.js","webpack://xtendui/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://xtendui/./node_modules/core-js/internals/string-trim-forced.js","webpack://xtendui/./node_modules/core-js/internals/string-trim.js","webpack://xtendui/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://xtendui/./node_modules/core-js/internals/task.js","webpack://xtendui/./node_modules/core-js/internals/to-absolute-index.js","webpack://xtendui/./node_modules/core-js/internals/to-indexed-object.js","webpack://xtendui/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://xtendui/./node_modules/core-js/internals/to-length.js","webpack://xtendui/./node_modules/core-js/internals/to-object.js","webpack://xtendui/./node_modules/core-js/internals/to-primitive.js","webpack://xtendui/./node_modules/core-js/internals/to-property-key.js","webpack://xtendui/./node_modules/core-js/internals/to-string-tag-support.js","webpack://xtendui/./node_modules/core-js/internals/to-string.js","webpack://xtendui/./node_modules/core-js/internals/try-to-string.js","webpack://xtendui/./node_modules/core-js/internals/uid.js","webpack://xtendui/./node_modules/core-js/internals/url-constructor-detection.js","webpack://xtendui/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://xtendui/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://xtendui/./node_modules/core-js/internals/validate-arguments-length.js","webpack://xtendui/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://xtendui/./node_modules/core-js/internals/well-known-symbol.js","webpack://xtendui/./node_modules/core-js/internals/whitespaces.js","webpack://xtendui/./node_modules/core-js/modules/es.array.includes.js","webpack://xtendui/./node_modules/core-js/modules/es.array.iterator.js","webpack://xtendui/./node_modules/core-js/modules/es.array.push.js","webpack://xtendui/./node_modules/core-js/modules/es.array.reverse.js","webpack://xtendui/./node_modules/core-js/modules/es.array.sort.js","webpack://xtendui/./node_modules/core-js/modules/es.array.unshift.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.all.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.catch.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.constructor.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.race.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.reject.js","webpack://xtendui/./node_modules/core-js/modules/es.promise.resolve.js","webpack://xtendui/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://xtendui/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://xtendui/./node_modules/core-js/modules/es.regexp.exec.js","webpack://xtendui/./node_modules/core-js/modules/es.string.iterator.js","webpack://xtendui/./node_modules/core-js/modules/es.string.replace.js","webpack://xtendui/./node_modules/core-js/modules/es.string.trim.js","webpack://xtendui/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://xtendui/./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://xtendui/./node_modules/core-js/modules/web.url-search-params.js","webpack://xtendui/./node_modules/core-js/modules/web.url.constructor.js","webpack://xtendui/./node_modules/core-js/modules/web.url.js","webpack://xtendui/./node_modules/dompurify/dist/purify.js","webpack://xtendui/./node_modules/json5/dist/index.js","webpack://xtendui/webpack/bootstrap","webpack://xtendui/webpack/runtime/amd options","webpack://xtendui/webpack/runtime/define property getters","webpack://xtendui/webpack/runtime/global","webpack://xtendui/webpack/runtime/harmony module decorator","webpack://xtendui/webpack/runtime/hasOwnProperty shorthand","webpack://xtendui/webpack/runtime/make namespace object","webpack://xtendui/webpack/startup"],"sourcesContent":["/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport DOMPurify from 'dompurify'\n\n//\n// constructor\n//\n\nexport const Xt = {}\nXt.DOMPurify = DOMPurify\n\nif (typeof window !== 'undefined') {\n //\n // global\n //\n\n if (window.XtSetGlobal) {\n global[typeof window.XtSetGlobal === 'string' ? window.XtSetGlobal : 'Xt'] = Xt\n }\n\n //\n // vars\n //\n\n Xt._running = {}\n Xt._currents = {} // Xt currents based on namespace (so shared between Xt objects)\n Xt.options = {}\n Xt._mountArr = []\n Xt._unmountArr = []\n Xt.resizeSkip = () => matchMedia('(hover: none), (pointer: coarse)').matches\n Xt.resizeDelay = 200\n Xt.medialoadedDelay = false\n Xt.durationTimescale = 1\n Xt.autoTimescale = 1\n Xt.scrolltoHashforce = null\n Xt.formScrollWindowFactor = 0.2\n\n //\n // initialization\n //\n\n /**\n * ready\n * @param {Object} params\n * @param {Function} params.func Function to execute\n * @param {String} params.state States separated by space, can be 'loading' 'interactive' 'complete'\n * @param {Function} params.raf Use requestAnimationFrame if the state is instantly matched\n */\n Xt.ready = ({ func, state = 'interactive complete', raf = false } = {}) => {\n const states = [...state.split(' ')]\n if (states.includes(document.readyState)) {\n if (raf) {\n // raf because we need all functions defined after mount (e.g. all html demos with mount)\n requestAnimationFrame(() => {\n func()\n })\n } else {\n func()\n }\n } else {\n const interactive = () => {\n if (states.includes(document.readyState)) {\n func()\n // needs to be removed or it will call multiple times\n document.removeEventListener('readystatechange', interactive)\n }\n }\n document.addEventListener('readystatechange', interactive)\n }\n }\n\n //\n // mutationObserver\n //\n\n /**\n * init\n */\n Xt._mutationObserver = new MutationObserver(mutationsList => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n // added\n for (const added of mutation.addedNodes) {\n if (added.nodeType === 1) {\n Xt._mountCheck({ added })\n }\n }\n // removed\n for (const removed of mutation.removedNodes) {\n if (removed.nodeType === 1) {\n Xt._unmountCheck({ removed })\n }\n }\n }\n }\n })\n\n Xt.ready({\n func: () => {\n Xt._mutationObserver.disconnect()\n Xt._mutationObserver.observe(document.documentElement, {\n characterData: false,\n attributes: false,\n childList: true,\n subtree: true,\n })\n },\n })\n\n /**\n * refresh\n */\n Xt.refresh = () => {\n Xt._mountCheck()\n }\n\n /**\n * mount\n * @param {Object} obj\n */\n Xt.mount = obj => {\n Xt._mountArr.push(obj)\n Xt.ready({\n raf: obj.raf,\n func: () => {\n Xt._mountCheck({ obj })\n },\n })\n }\n\n /**\n * unmount\n * @param {Object} obj\n */\n Xt.unmount = obj => {\n Xt._unmountArr.push(obj)\n }\n\n /**\n * mountCheck\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.added\n * @param {Object} params.obj\n */\n Xt._mountCheck = ({ added = document.documentElement, obj } = {}) => {\n // fix multiple mount\n // we do not mount if not in document, it happends for example when you mount ScrollTrigger after overlay menu\n if (!added.closest('html')) {\n return\n }\n const arr = obj ? [obj] : Xt._mountArr\n for (const obj of arr) {\n // check\n const refs = []\n if (added.matches(obj.matches)) {\n refs.push(added)\n }\n for (const ref of added.querySelectorAll(obj.matches)) {\n refs.push(ref)\n }\n // call\n if (refs.length) {\n for (const [index, ref] of refs.entries()) {\n // root\n if (obj.root && !obj.root.contains(ref)) {\n continue\n }\n // ignore\n const ignoreStr = obj.ignoreMount ?? '.xt-ignore'\n if (ignoreStr && ref.closest(ignoreStr)) {\n continue\n }\n // fix multiple mount\n // we don't remount nodes not unmounted\n obj.done = obj.done ? obj.done : []\n if (obj.done.includes(ref)) {\n return\n }\n obj.done.push(ref)\n // call\n const call = obj.mount({ ref, obj, index })\n // destroy\n if (call) {\n Xt.unmount({\n ref,\n root: obj.root,\n ignoreUnmount: obj.ignoreUnmount,\n unmount: call,\n unmountRemove: function () {\n // fix multiple mount\n obj.done = obj.done.filter(x => x !== ref)\n // unmount remove\n Xt._unmountArr = Xt._unmountArr.filter(x => {\n return x !== this // this is unmount object using function\n })\n },\n })\n }\n }\n }\n }\n }\n\n /**\n * unmountCheck\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.removed\n */\n Xt._unmountCheck = ({ removed = document.documentElement } = {}) => {\n // fix multiple mount\n // we do not mount if in document, it happends for example when you move nodes\n if (removed.closest('html')) {\n return\n }\n for (const obj of Xt._unmountArr) {\n // check\n if (removed === obj.ref || removed.contains(obj.ref)) {\n // root\n if (obj.root && !obj.root.contains(obj.ref)) {\n continue\n }\n // ignore\n const ignoreStr = obj.ignoreUnmount ?? '.xt-ignore'\n if (ignoreStr && obj.ref.closest(ignoreStr)) {\n continue\n }\n // call\n obj.unmount({ obj })\n obj.unmountRemove()\n }\n }\n }\n\n //\n // component\n //\n\n /**\n * set component\n * @param {Object} params\n * @param {String} params.name Component name\n * @param {Node|HTMLElement|EventTarget|Window} params.el Component's element\n * @param {Object} params.self Component' self\n */\n Xt._set = ({ name, el, self } = {}) => {\n Xt.dataStorage.set(el, name, self)\n }\n\n /**\n * get component\n * @param {Object} params\n * @param {String} params.name Component name\n * @param {Node|HTMLElement|EventTarget|Window} params.el Component's element\n * @return {Object}\n */\n Xt.get = ({ name, el } = {}) => {\n return Xt.dataStorage.get(el, name)\n }\n\n /**\n * remove component\n * @param {Object} params\n * @param {String} params.name Component name\n * @param {Node|HTMLElement|EventTarget|Window} params.el Component's element\n * @return {Object}\n */\n Xt._remove = ({ name, el } = {}) => {\n return Xt.dataStorage.remove(el, name)\n }\n\n //\n // methods\n //\n\n /**\n * init matches\n * @param {Object} params\n * @param {Object} params.self Self object\n * @param {Object} params.optionsInitial Initial options\n */\n Xt._initMatches = ({ self, optionsInitial } = {}) => {\n const options = self.options\n // only on initialization not on reinit because the mql reinit\n if (self.initial === undefined) {\n // remove matches\n if (self.matches) {\n Xt._removeMatches({ self, optionsInitial })\n }\n // matches\n if (options.matches) {\n self.matches = []\n const mqs = Object.entries(options.matches)\n if (mqs.length) {\n for (const [key, value] of mqs) {\n // matches\n const mql = matchMedia(key)\n self.matches.push({ mql, value })\n Xt._eventMatches({ self, mql, value, skipReinit: true, optionsInitial })\n if (mql.addEventListener) {\n mql.addEventListener('change', Xt._eventMatches.bind(null, { self, mql, value, optionsInitial }))\n } else {\n mql.addListener(Xt._eventMatches.bind(null, { self, mql, value, optionsInitial }))\n }\n }\n }\n }\n }\n }\n\n /**\n * match\n * @param {Object} params\n * @param {Object} params.self Self object\n * @param {Object} params.mql Match media query list\n * @param {Object} params.value Match media value\n * @param {Boolean} params.skipReinit Skip reinit\n */\n Xt._eventMatches = ({ self, mql, value, skipReinit = false, optionsInitial } = {}) => {\n // fix NEEDED for chrome not removing mql event listener\n if (!self.container.closest('html')) {\n return\n }\n // replace options\n if (mql.matches) {\n // set options value\n self.options = Xt.merge([self.options, value])\n } else {\n // set options value from initial\n self.options = Xt.mergeReset({ start: self.options, reset: optionsInitial, check: value })\n }\n // reinit one time only with raf\n if (!skipReinit) {\n // reinit\n Xt.frame({\n el: self.container,\n ns: `${self.ns}MatchFrame`,\n func: () => {\n Xt._eventReinit({ self })\n },\n })\n }\n }\n\n /**\n * removeMatches\n * @param {Object} params\n * @param {Object} params.self Self object\n */\n Xt._removeMatches = ({ self, optionsInitial } = {}) => {\n // remove matches\n if (self.matches?.length) {\n for (const obj of self.matches) {\n // matches\n const mql = obj.mql\n const value = obj.value\n if (mql.removeEventListener) {\n mql.removeEventListener('change', Xt._eventMatches.bind(null, { self, mql, value, optionsInitial }))\n } else {\n mql.removeListener(Xt._eventMatches.bind(null, { self, mql, value, optionsInitial }))\n }\n }\n }\n }\n\n /**\n * reinit\n * @param {Object} params\n * @param {Object} params.self Self object\n * @param {Event} e\n */\n Xt._eventReinit = ({ self } = {}, e) => {\n // triggering e.detail.container\n if (!e?.detail?.container || e?.detail?.container.contains(self.container)) {\n // handler\n self.reinit()\n }\n }\n\n //\n // dataStorage\n // map storage for HTML elements\n //\n\n Xt.dataStorage = {\n /**\n * properties\n */\n _storage: new Map(),\n\n /**\n * set key/obj pair on element's map\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @param {String} key\n * @param {*} obj\n * @return {*}\n */\n set: (el, key, obj) => {\n // new map if not already there\n if (!Xt.dataStorage._storage.has(el)) {\n Xt.dataStorage._storage.set(el, new Map())\n }\n // set\n const getEl = Xt.dataStorage._storage.get(el)\n getEl.set(key, obj)\n // return\n return getEl.get(key)\n },\n\n /**\n * put key/obj pair on element's map, return old if exist already\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @param {String} key\n * @param {*} obj\n * @return {*}\n */\n put: (el, key, obj) => {\n // new map if not already there\n if (!Xt.dataStorage._storage.has(el)) {\n Xt.dataStorage._storage.set(el, new Map())\n }\n // return if already set\n const getEl = Xt.dataStorage._storage.get(el)\n const getKey = getEl.get(key)\n if (getKey) {\n return getKey\n }\n // set\n getEl.set(key, obj)\n // return\n return getEl.get(key)\n },\n\n /**\n * get obj from key on element's map\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @param {String} key\n * @return {*}\n */\n get: (el, key) => {\n const getEl = Xt.dataStorage._storage.get(el)\n // null if empty\n if (!getEl) {\n return null\n }\n // return\n return getEl.get(key)\n },\n\n /**\n * get all obj/key on element's map\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @return {*}\n */\n getAll: el => {\n const getEl = Xt.dataStorage._storage.get(el)\n // null if empty\n if (!getEl) {\n return null\n }\n // return\n return getEl\n },\n\n /**\n * has key on element's map\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @param {String} key\n * @return {Boolean}\n */\n has: (el, key) => {\n // return\n return Xt.dataStorage._storage.get(el).has(key)\n },\n\n /**\n * remove element's map key\n * @param {Node|HTMLElement|EventTarget|Window} el\n * @param {String} key\n * @return {Boolean}\n */\n remove: (el, key) => {\n const getEl = Xt.dataStorage._storage.get(el)\n // null if empty\n if (!getEl) {\n return null\n }\n // remove\n const ret = getEl.delete(key)\n // remove storage if empty\n if (getEl.size === false) {\n Xt.dataStorage._storage.delete(el)\n }\n // return\n return ret\n },\n }\n\n //\n // classBody\n // util to remember classBody state\n //\n\n Xt._classBody = {\n /**\n * properties\n */\n currents: [],\n\n /**\n * add classBody currents\n * @param {Object} obj Object\n */\n add: obj => {\n Xt._classBody.currents.push(obj)\n },\n\n /**\n * remove classBody currents\n * @param {Object} obj Object\n */\n remove: obj => {\n Xt._classBody.currents = Xt._classBody.currents.filter(x => x.c !== obj.c || x.ns !== obj.ns)\n },\n\n /**\n * get classBody currents\n * @param {Object} obj Object\n * @return {Array} Currents\n */\n get: obj => {\n return Xt._classBody.currents.filter(x => x.c === obj.c)\n },\n }\n\n //\n // util\n //\n\n /**\n * friction\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element\n * @param {Object} params.obj Object with x and y values\n * @param {Boolean} params.transform Use transforms instead of position\n */\n Xt._friction = ({ el, obj, transform = true } = {}) => {\n Xt.frame({\n el,\n ns: `xtFrictionFrame`,\n })\n Xt.frame({\n el,\n ns: `xtFrictionInitFrame`,\n func: () => {\n // fix loop when not visible\n if (Xt.visible({ el })) {\n let xCurrent\n let yCurrent\n if (transform) {\n const translate = Xt.getTranslate({ el })\n xCurrent = translate[0]\n yCurrent = translate[1]\n } else {\n const rect = el.getBoundingClientRect()\n xCurrent = rect.left\n yCurrent = rect.top\n }\n let xDist = obj.x - xCurrent\n let yDist = obj.y - yCurrent\n // momentum\n const fncFriction = obj.friction\n // set\n if (fncFriction && Xt.dataStorage.get(el, 'xtFrictionX') && Xt.durationTimescale !== 1000) {\n // friction\n xCurrent += fncFriction({ delta: Math.abs(xDist) }) * Math.sign(xDist)\n yCurrent += fncFriction({ delta: Math.abs(yDist) }) * Math.sign(yDist)\n if (transform) {\n el.style.transform = `translateX(${xCurrent}px) translateY(${yCurrent}px)`\n } else {\n el.style.left = `${xCurrent}px`\n el.style.top = `${yCurrent}px`\n }\n } else {\n // instant\n xCurrent = obj.x\n yCurrent = obj.y\n // set\n if (transform) {\n el.style.transform = `translateX(${xCurrent}px) translateY(${yCurrent}px)`\n } else {\n el.style.top = `${yCurrent}px`\n el.style.left = `${xCurrent}px`\n }\n }\n // next interaction friction\n Xt.dataStorage.set(el, 'xtFrictionX', xCurrent)\n Xt.dataStorage.set(el, 'xtFrictionY', yCurrent)\n // loop\n if (fncFriction && Xt.durationTimescale !== 1000) {\n const frictionLimit = obj.frictionLimit ? obj.frictionLimit : 1.5\n xDist = obj.x - xCurrent\n yDist = obj.y - yCurrent\n Xt.frame({\n el,\n ns: `xtFrictionFrame`,\n func: () => {\n if (Math.abs(xDist) >= frictionLimit || Math.abs(yDist) >= frictionLimit) {\n // continue friction\n Xt._friction({ el, obj, transform })\n } else {\n // next interaction instant\n Xt.dataStorage.remove(el, 'xtFrictionX')\n Xt.dataStorage.remove(el, 'xtFrictionY')\n }\n },\n })\n }\n }\n },\n })\n }\n\n /**\n * Return translate values https://gist.github.com/aderaaij/a6b666bf756b2db1596b366da921755d\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to check target\n * @return {Array} Values [x, y]\n */\n Xt.getTranslate = ({ el } = {}) => {\n const transArr = []\n const style = getComputedStyle(el)\n const transform = style.transform\n let mat = transform.match(/^matrix3d\\((.+)\\)$/)\n if (mat) {\n transArr.push(parseFloat(mat[1].split(', ')[13]))\n } else {\n mat = transform.match(/^matrix\\((.+)\\)$/)\n mat ? transArr.push(parseFloat(mat[1].split(', ')[4])) : transArr.push(0)\n mat ? transArr.push(parseFloat(mat[1].split(', ')[5])) : transArr.push(0)\n }\n return transArr\n }\n\n /**\n * Contains for multiple elements\n * @param {Object} params\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.els Elements to check if contains\n * @param {Node|HTMLElement|EventTarget|Window} params.tr Element to check if contained\n * @return {Boolean}\n */\n Xt.contains = ({ els, tr } = {}) => {\n if (els instanceof HTMLElement) {\n return els.contains(tr)\n }\n for (const el of els) {\n if (el.contains(tr)) {\n return true\n }\n }\n return false\n }\n\n /**\n * Get unique id\n * @return {String} Unique id\n */\n Xt.uniqueId = () => {\n Xt.uid = Xt.uid !== undefined ? Xt.uid : 0\n return `xt-${Xt.uid++}`\n }\n\n /**\n * Merge deep array of objects\n * @param {Array} arr Array of objects to merge\n * @return {Object} Merged object\n */\n Xt.merge = arr => {\n const final = {}\n for (const obj of arr) {\n if (obj) {\n for (const [key, value] of Object.entries(obj)) {\n if (Array.isArray(value)) {\n // if array merge arrays (e.g. options.popperjs modifiers)\n final[key] = final[key] ? final[key] : []\n final[key].push(...value)\n } else if (\n value !== null &&\n typeof value === 'object' &&\n !value.nodeName && // not HTML element\n value !== window // not window\n ) {\n // if object deep merge\n final[key] = Xt.merge([final[key], value])\n } else {\n final[key] = value\n }\n }\n }\n }\n return final\n }\n\n /**\n * Merge deep reset object only when equals to check\n * @param {Object} params\n * @param {Object} params.start object Start object\n * @param {Object} params.reset object Reset object\n * @param {Object} params.check object Check with start object to reset with reset object\n * @return {Object} Merged object\n */\n Xt.mergeReset = ({ start, reset, check } = {}) => {\n const final = start\n for (const [key, value] of Object.entries(check)) {\n if (\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) && // not array\n !value.nodeName && // not HTML element\n value !== window // not window\n ) {\n final[key] = Xt.mergeReset({ start: start[key], reset: reset[key], check: check[key] })\n } else {\n if (start[key] === check[key]) {\n final[key] = reset[key]\n }\n }\n }\n return final\n }\n\n /**\n * Purify html string\n * @param {String} str String\n * @return {String} Purified string\n */\n\n Xt.sanitize = str => {\n return DOMPurify.sanitize(str)\n }\n\n /**\n * Create HTML element from html string\n * @param {Object} params\n * @param {Boolean} params.sanitize Sanitize\n * @param {String} params.str String (only 1 root html tag)\n * @return {Node} HTML elements\n */\n Xt.node = ({ sanitize = true, str }) => {\n const template = document.createElement('template')\n template.innerHTML = sanitize ? Xt.sanitize(str.trim()) : str.trim()\n return template.content.firstChild\n }\n\n /**\n * Create HTML elements from html string\n * @param {Boolean} params.sanitize Sanitize\n * @param {String} params.str Html String\n * @return {Node} HTML elements\n */\n Xt.nodes = ({ sanitize = true, str }) => {\n const template = document.createElement('template')\n template.innerHTML = sanitize ? Xt.sanitize(str.trim()) : str.trim()\n return template.content.childNodes\n }\n\n /**\n * Add script to document\n * @param {Object} params\n * @param {String} params.url\n * @param {Function} params.callback\n * @param {Boolean} params.defer\n * @param {Boolean} params.async\n */\n Xt.script = ({ url, callback, defer = true, async = true } = {}) => {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const asyncfix = async\n const script = document.createElement('script')\n if (callback) {\n script.onload = callback\n }\n script.type = 'text/javascript'\n script.src = url\n script.defer = defer\n script.async = asyncfix\n document.body.append(script)\n }\n }\n\n /**\n * requestAnimationFrame\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {String} params.ns Namespace\n * @param {Function} params.func Function to execute after transition or animation\n */\n Xt.frame = ({ el, ns = '', func } = {}) => {\n cancelAnimationFrame(Xt.dataStorage.get(el, `${ns}Frame`))\n if (func) {\n // needs one raf\n Xt.dataStorage.set(\n el,\n `${ns}Frame`,\n requestAnimationFrame(() => {\n func()\n })\n )\n }\n }\n\n /**\n * double requestAnimationFrame\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {String} params.ns Namespace\n * @param {Function} params.func Function to execute after transition or animation\n */\n Xt.frameDouble = ({ el, ns = '', func } = {}) => {\n cancelAnimationFrame(Xt.dataStorage.get(el, `${ns}FrameDouble`))\n if (func) {\n // needs two raf or sometimes classes doesn't animate properly\n Xt.dataStorage.set(\n el,\n `${ns}FrameDouble`,\n requestAnimationFrame(() => {\n Xt.dataStorage.set(\n el,\n `${ns}FrameDouble`,\n requestAnimationFrame(() => {\n func()\n })\n )\n })\n )\n }\n }\n\n /**\n * animation on classes\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {String} params.ns Namespace\n * @param {Number} params.duration Duration\n * @param {Boolean} params.raf Use requestAnimationFrame\n * @param {Boolean} params.initial Instant animations with initial\n * @param {Function} params.callback\n */\n Xt.on = ({ el, ns = '', duration, raf = true, initial = false, callback } = {}) => {\n Xt.animTimeout({ el, ns })\n el.classList.add('on')\n el.classList.remove('out')\n const func = () => {\n el.classList.add('in')\n el.classList.remove('done')\n Xt.animTimeout({\n el,\n ns,\n duration,\n actionCurrent: 'In',\n func: () => {\n el.classList.add('done')\n if (callback) {\n callback()\n }\n },\n })\n }\n if (raf) {\n // needs TWO raf or sequential off/on flickr (e.g. display)\n Xt.frameDouble({ el, ns, func })\n } else {\n // fix need to repeat inside frameDouble in case we cancel\n Xt.frameDouble({ el, ns })\n func()\n }\n // initial\n if (initial) {\n el.classList.add('initial')\n }\n Xt.frameDouble({\n el,\n ns: `${ns}Initial`,\n func: () => {\n if (initial) {\n el.classList.remove('initial')\n }\n },\n })\n }\n\n /**\n * animation off classes\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {String} params.ns Namespace\n * @param {Number} params.duration Duration\n * @param {Boolean} params.raf Use requestAnimationFrame\n * @param {Boolean} params.initial Instant animations with initial\n * @param {Function} params.callback\n */\n Xt.off = ({ el, ns = '', duration, raf = true, initial = false, callback } = {}) => {\n Xt.animTimeout({ el, ns })\n // must be outside inside raf or page jumps (e.g. noqueue)\n el.classList.remove('on')\n const func = () => {\n el.classList.remove('in', 'done')\n el.classList.add('out')\n Xt.animTimeout({\n el,\n ns,\n duration,\n actionCurrent: 'Out',\n func: () => {\n el.classList.remove('out')\n if (callback) {\n callback()\n }\n },\n })\n }\n if (raf) {\n // needs TWO raf or sequential off/on flickr (e.g. backdrop megamenu)\n Xt.frameDouble({ el, ns, func })\n } else {\n // fix need to repeat inside frameDouble in case we cancel\n Xt.frameDouble({ el, ns })\n func()\n }\n // initial\n if (initial) {\n el.classList.add('initial')\n }\n Xt.frameDouble({\n el,\n ns: `${ns}Initial`,\n func: () => {\n if (initial) {\n el.classList.remove('initial')\n }\n },\n })\n }\n\n /**\n * execute function after transition or animation\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {String} params.ns Namespace\n * @param {Number} params.duration Duration\n * @param {String} params.actionCurrent Current action\n * @param {Function} params.func Function to execute after transition or animation\n */\n Xt.animTimeout = ({ el, ns = '', duration, actionCurrent, func } = {}) => {\n clearTimeout(Xt.dataStorage.get(el, `${ns}AnimTimeout`))\n if (func) {\n duration = Xt.animTime({ el, duration, actionCurrent }) ?? 0\n if (!duration) {\n func()\n } else {\n Xt.dataStorage.set(el, `${ns}AnimTimeout`, setTimeout(func, duration))\n }\n }\n }\n\n /**\n * get transition or animation time\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {Number} params.duration Duration\n * @param {String} params.actionCurrent Current action\n */\n Xt.animTime = ({ el, duration, actionCurrent } = {}) => {\n const custom =\n (actionCurrent && el.getAttribute(`data-xt-duration-${actionCurrent}`)) || el.getAttribute('data-xt-duration')\n if (custom) {\n // if not number return the string\n return isNaN(parseFloat(custom)) ? custom : parseFloat(custom) / Xt.durationTimescale\n } else if (typeof duration === 'function') {\n return duration\n } else if (duration || duration === 0) {\n return duration / Xt.durationTimescale\n }\n }\n\n /**\n * get delay time\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {Number} params.duration Duration\n * @param {String} params.actionCurrent Current action\n */\n Xt.delayTime = ({ el, duration, actionCurrent } = {}) => {\n const custom =\n (actionCurrent && el.getAttribute(`data-xt-delay-${actionCurrent}`)) || el.getAttribute('data-xt-delay')\n if (custom) {\n // if not number return the string\n return isNaN(parseFloat(custom)) ? custom : parseFloat(custom) / Xt.durationTimescale\n } else if (typeof duration === 'function') {\n return duration\n } else if (duration || duration === 0) {\n return duration / Xt.durationTimescale\n }\n }\n\n /**\n * query array of elements or element\n * @param {Object} params\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.els Element to search from\n * @param {String} params.query Query for querySelectorAll\n * @return {Array}\n */\n Xt.queryAll = ({ els, query } = {}) => {\n // not when no query or empty array\n if (!query || els.length === 0) {\n return []\n }\n if (!els.length) {\n // search element\n return Array.from(els.querySelectorAll(query))\n } else {\n // search array\n const arr = []\n for (const el of els) {\n arr.push(...el.querySelectorAll(query))\n }\n return arr\n }\n }\n\n /**\n * check element visibility\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @return {Boolean}\n */\n Xt.visible = ({ el } = {}) => {\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)\n }\n\n /**\n * Set scrollbar width of document\n */\n Xt._setScrollbarWidth = () => {\n if (Xt.scrollbarWidth === undefined) {\n const scrollbarWidthHandler = Xt.dataStorage.put(window, 'resize/scrollbar', Xt._setScrollbarWidth)\n removeEventListener('resize', scrollbarWidthHandler)\n addEventListener('resize', scrollbarWidthHandler)\n }\n // add outer\n const outer = document.createElement('div')\n outer.style.visibility = 'hidden'\n outer.style.width = '100%'\n outer.style.msOverflowStyle = 'scrollbar' // needed for WinJS apps\n outer.classList.add('xt-ignore', 'xt-overflow-main')\n document.body.append(outer)\n // force scrollbars\n outer.style.overflow = 'scroll'\n // add inner\n const inner = document.createElement('div')\n inner.style.width = '100%'\n inner.classList.add('xt-ignore')\n outer.append(inner)\n // return\n const widthNoScroll = outer.offsetWidth\n const widthWithScroll = inner.offsetWidth\n Xt.scrollbarWidth = widthNoScroll - widthWithScroll\n document.documentElement.style.setProperty('--scrollbar-width', `${Xt.scrollbarWidth}px`)\n // remove\n outer.remove()\n }\n\n Xt.ready({\n func: () => {\n Xt._setScrollbarWidth()\n },\n })\n\n /**\n * resize.xt\n */\n\n addEventListener('resize', e => {\n // we check also if outerWidth changes because on android doesn't change with ScrollTriggers\n // we check also innerWidth for resize desktop (e.g. inspect and resize)\n const w = window.innerWidth + window.outerWidth\n const h = window.innerHeight + window.outerHeight\n if (\n !e?.detail?.force && // not when setting delay on event\n Xt.dataStorage.get(window, 'xtEventDelayWidth') === w && // when width changes\n (Xt.resizeSkip() || Xt.dataStorage.get(window, 'xtEventDelayHeight') === h) // when height changes not touch\n ) {\n // only width no height because it changes on scroll on mobile\n return\n }\n Xt.dataStorage.set(\n window,\n `eventDelaySaveTimeout`,\n setTimeout(() => {\n Xt.dataStorage.set(window, 'xtEventDelayWidth', w)\n Xt.dataStorage.set(window, 'xtEventDelayHeight', h)\n dispatchEvent(new CustomEvent('resize.xt', { detail: e?.detail }))\n }, Xt.resizeDelay)\n )\n })\n\n Xt.dataStorage.set(window, 'xtEventDelayWidth', window.innerWidth + window.outerWidth)\n Xt.dataStorage.set(window, 'xtEventDelayHeight', window.innerHeight + window.outerHeight)\n\n /**\n * Xt._innerHeightSet and --vh\n */\n Xt._innerHeightSet = () => {\n Xt.innerHeight = window.innerHeight\n document.documentElement.style.setProperty('--vh', `${Xt.innerHeight * 0.01}px`)\n }\n\n addEventListener('resize.xt', () => {\n Xt._innerHeightSet()\n })\n\n Xt.ready({\n func: () => {\n Xt._innerHeightSet()\n },\n })\n\n //\n // plugins\n //\n\n /**\n * scrolltriggerRerfreshFix fixes refresh on touch screen not on vertical resize\n * @param {Object} params\n * @param {Function} params.ScrollTrigger\n */\n Xt.scrolltriggerRerfreshFix = ({ ScrollTrigger } = {}) => {\n // removed resize we trigger it manually\n ScrollTrigger.config({\n autoRefreshEvents: 'visibilitychange,DOMContentLoaded,load',\n })\n // window resize\n const resize = () => {\n ScrollTrigger.refresh()\n }\n removeEventListener('resize.xt', resize)\n addEventListener('resize.xt', resize)\n }\n\n //\n}\n","/*!\n* tabbable 5.3.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidatesScope>}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n if (shadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n //\n // isScope is positive for custom element with shadow root or slot that by default\n // have tabIndex -1, but need to be sorted by document order in order for their\n // content to be inserted in the correct position\n if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || getRootNode(node);\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isZeroArea = function isZeroArea(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n};\n\nvar isHidden = function isHidden(node, _ref) {\n var displayCheck = _ref.displayCheck,\n getShadowRoot = _ref.getShadowRoot;\n\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (!displayCheck || displayCheck === 'full') {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n var originalNode = node;\n\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n // didn't find it sitting in an undisclosed shadow (or shadows are disabled) so now we\n // can just test to see if it would normally be visible or not\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n\n\n return !node.getClientRects().length;\n } else if (displayCheck === 'non-zero-area') {\n return isZeroArea(node);\n }\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i); // when the first <legend> (in document order) is found\n\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);\n }\n } // the disabled <fieldset> containing `node` has no <legend>\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n\n return true;\n};\n/**\n * @param {Array.<Element|CandidatesScope>} candidates\n * @returns Element[]\n */\n\n\nvar sortByOrder = function sortByOrder(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function (item, i) {\n var isScope = !!item.scope;\n var element = isScope ? item.scope : item;\n var candidateTabindex = getTabindex(element, isScope);\n var elements = isScope ? sortByOrder(item.candidates) : element;\n\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n\n return sortByOrder(candidates);\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates;\n\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([el], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","/*!\n* focus-trap 6.9.0\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, isFocusable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar activeFocusTraps = function () {\n var trapQueue = [];\n return {\n activateTrap: function activateTrap(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n}();\n\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\n\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\n\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n}; // Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\n\n\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n return idx;\n};\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\n\n\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\n\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true\n }, userOptions);\n\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n\n\n var findContainerIndex = function findContainerIndex(element) {\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n\n\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n optionValue = optionValue.apply(void 0, params);\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n } // else, empty string (invalid), null (invalid), 0 (invalid)\n\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n\n return node;\n };\n\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus'); // false explicitly indicates we want no initialFocus at all\n\n if (node === false) {\n return false;\n }\n\n if (node === undefined) {\n // option not specified: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n\n return node;\n };\n\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n\n if (nodeIdx < 0) {\n return undefined;\n }\n\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n\n if (node === doc.activeElement) {\n return;\n }\n\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n }; // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n\n\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // if, on deactivation, we should return focus to the node originally-focused\n // when the trap was activated (or the configured `setReturnFocus` node),\n // then assume it's also OK to return focus to the outside node that was\n // just clicked, causing deactivation, as long as that node is focusable;\n // if it isn't focusable, then return focus to the original node focused\n // on activation (or the configured `setReturnFocus` node)\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked, whether it's focusable or not; by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node)\n returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)\n });\n return;\n } // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n } // otherwise, prevent the click\n\n\n e.preventDefault();\n }; // In case focus escapes the trap for some strange reason, pull it back in.\n\n\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.\n\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }; // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n\n\n var checkTab = function checkTab(e) {\n var target = getActualTarget(e);\n updateTabbableNodes();\n var destinationNode = null;\n\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back in to...\n if (e.shiftKey) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (e.shiftKey) {\n // REVERSE\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n }\n } else {\n // FORWARD\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n }\n }\n } else {\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n\n if (destinationNode) {\n e.preventDefault();\n tryFocus(destinationNode);\n } // else, let the browser take care of [shift+]tab and move the focus\n\n };\n\n var checkKey = function checkKey(e) {\n if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) {\n e.preventDefault();\n trap.deactivate();\n return;\n }\n\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n };\n\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n\n if (findContainerIndex(target) >= 0) {\n return;\n }\n\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n }; //\n // EVENT LISTENERS\n //\n\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n } // There can be only one listening focus trap at a time\n\n\n activeFocusTraps.activateTrap(trap); // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n }; //\n // TRAP DEFINITION\n //\n\n\n trap = {\n get active() {\n return state.active;\n },\n\n get paused() {\n return state.paused;\n },\n\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n if (onActivate) {\n onActivate();\n }\n\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n\n addListeners();\n\n if (onPostActivate) {\n onPostActivate();\n }\n };\n\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n activeFocusTraps.deactivateTrap(trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n\n if (onDeactivate) {\n onDeactivate();\n }\n\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n\n if (onPostDeactivate) {\n onPostDeactivate();\n }\n });\n };\n\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n\n finishDeactivation();\n return this;\n },\n pause: function pause() {\n if (state.paused || !state.active) {\n return this;\n }\n\n state.paused = true;\n removeListeners();\n return this;\n },\n unpause: function unpause() {\n if (!state.paused || !state.active) {\n return this;\n }\n\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n\n if (state.active) {\n updateTabbableNodes();\n }\n\n return this;\n }\n }; // initialize container elements\n\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nimport * as focusTrap from 'focus-trap'\nXt.JSON5 = JSON5\nXt.focusTrap = focusTrap\n\n/**\n * Toggle\n */\nclass Toggle {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n _mode\n _classes = []\n _classesIn = []\n _classesOut = []\n _classesDone = []\n _classesInitial = []\n _classesBefore = []\n _classesAfter = []\n _initialCurrents = []\n _destroyElements\n _containerElements\n _containerTargets\n _oldIndex\n _inverse\n _queueIn = []\n _queueOut = []\n _autoblock\n _disabledManual\n _hasHash\n _autorunning\n _observer\n _focusTrap\n _hasContainer\n _search = ''\n componentName\n ns\n options\n initial\n disabled = false\n container\n elements = []\n targets = []\n index\n direction\n\n // slider\n _usedWidth\n _wrap\n _keepHeight\n _autoHeight\n _groups\n drag = {}\n pags\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // init\n self._init()\n }\n\n //\n // init\n //\n\n /**\n * init\n */\n _init() {\n const self = this\n // init\n self._initVars()\n self._initLogic()\n }\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefaultSuper, self.constructor.optionsDefault])\n self._optionsDefault = Xt.merge([self._optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n // classes\n const options = self.options\n self._classes = options.class ? [...options.class.split(' ')] : []\n self._classesIn = options.classIn ? [...options.classIn.split(' ')] : []\n self._classesOut = options.classOut ? [...options.classOut.split(' ')] : []\n self._classesDone = options.classDone ? [...options.classDone.split(' ')] : []\n self._classesInitial = options.classInitial ? [...options.classInitial.split(' ')] : []\n self._classesBefore = options.classBefore ? [...options.classBefore.split(' ')] : []\n self._classesAfter = options.classAfter ? [...options.classAfter.split(' ')] : []\n }\n\n /**\n * init logic\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n */\n _initLogic({ save = true } = {}) {\n const self = this\n // vars\n self._destroyElements = [document, window, self.container]\n // enable first for proper initial activation\n self.enable()\n // init\n self._initSetup()\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n self._initScope()\n self._initEvents()\n self._initA11y()\n self._initStart({ save })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled || self._disabledManual) {\n self.disable()\n }\n }\n\n /**\n * init setup\n */\n _initSetup() {\n const self = this\n const options = self.options\n // mode\n self._containerTargets = self.container\n if (options.targets && options.targets.indexOf('#') !== -1) {\n self._mode = 'unique'\n self._containerTargets = document.documentElement\n self.ns = `${self.componentName}-${options.targets.toString()}-${self._classes.toString()}`\n } else {\n self._mode = 'multiple'\n self.ns = self.ns ?? Xt.uniqueId()\n }\n // final namespace\n self.ns = self.ns.replace(/^[^a-z]+|[ ,#_:.-]+/gi, '')\n // namespace\n self._addNamespace()\n // currents array based on namespace (so shared between Xt objects)\n self._setCurrents([])\n }\n\n /**\n * init elements, targets and currents\n */\n _initScope() {\n const self = this\n // elements\n self._initScopeElements()\n // targets\n self._initScopeTargets()\n }\n\n /**\n * init elements\n */\n _initScopeElements() {\n const self = this\n const options = self.options\n // elements\n self._containerElements = self.container\n if (options.elements) {\n if (options.elements.indexOf('#') !== -1) {\n self._containerElements = document.documentElement\n }\n let arr = Array.from(self._containerElements.querySelectorAll(options.elements))\n if (options.exclude) {\n arr = arr.filter(x => !x.matches(options.exclude))\n }\n self.elements = arr\n self._destroyElements.push(...self.elements)\n }\n // object if no elements\n if (!self.elements.length) {\n self.elements = [self.container]\n }\n // elementsInner\n if (options.elementsInner) {\n for (const el of self.elements) {\n const elements = Xt.queryAll({ els: el, query: options.elementsInner })\n Xt.dataStorage.set(el, `elementsInner/${self.ns}`, elements)\n }\n }\n }\n\n /**\n * init targets\n */\n _initScopeTargets() {\n const self = this\n const options = self.options\n // targets\n if (options.targets) {\n let arr = Array.from(self._containerTargets.querySelectorAll(options.targets))\n if (options.exclude) {\n arr = arr.filter(x => !x.matches(options.exclude))\n }\n self.targets = arr\n self._destroyElements.push(...self.targets)\n // elementsInner\n if (options.targetsInner) {\n for (const tr of self.targets) {\n const elements = Xt.queryAll({ els: tr, query: options.targetsInner })\n Xt.dataStorage.set(tr, `targetsInner/${self.ns}`, elements)\n }\n }\n }\n }\n\n /**\n * init start\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n */\n _initStart({ save = false } = {}) {\n const self = this\n const options = self.options\n // currents\n self._setCurrents([])\n // vars\n let currents = 0\n self.initial = true\n self.index = null\n self._oldIndex = null\n Xt._running[self.ns] = []\n // INSTANT ACTIVATION because we need activation classes right away (e.g.: slider inside demos toggle must be visible to get values)\n // check initial activation\n currents = self._initActivate({ save })\n // if currents < min\n let todo = options.min - currents\n if (todo > 0) {\n // initial\n currents += todo\n for (let i = 0; i < todo; i++) {\n const el = self.elements[i]\n if (el && !el.classList.contains([...self._classes]) && !el.checked) {\n // toggle event if present because of custom listeners\n if (options.on) {\n const event = options.on.split(' ')[0]\n const elEvent = self._getEventParent({ el, event })\n elEvent.dispatchEvent(new CustomEvent(event, { detail: { force: true } }))\n } else {\n self._eventOn({ el, force: true })\n }\n } else if (todo < self.elements.length) {\n todo++\n }\n }\n }\n // currents\n if (save) {\n self._initialCurrents = self._getCurrents().slice(0) // copy array with slice(0)\n }\n // no currents\n if (currents === 0) {\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // fix before _initScope or slider absolute has multiple active and bugs initial calculations\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n // fix autostart after self.initial or it gives error on reinitialization (demos fullscreen)\n self._eventAutostart()\n // initial after autostart\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n }\n }\n\n /**\n * init activate\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n * @return {Number} currents count\n */\n _initActivate({ save = false } = {}) {\n const self = this\n const options = self.options\n // check\n const checkClass = el => {\n for (const c of self._classes) {\n if (el.classList.contains(c) || el.checked) {\n return true\n }\n }\n return false\n }\n // check hash\n const obj = self._hashChange({ save })\n let currents = obj.currents ?? 0\n // check class\n for (const el of self.getElementsGroups()) {\n let activated = false\n // check if activated\n if (save) {\n if (options.classSkip !== true && !options.classSkip.elements) {\n activated = checkClass(el)\n }\n } else if (self._initialCurrents.includes(el)) {\n activated = true\n }\n // check if activated\n // fix check options.max for currents of _hashChange current reset if hash has current\n // fix check obj.arr has element already activated\n if ((activated && currents < options.max) || obj.arr.includes(el)) {\n // instant animation\n el.classList.add(...self._classes)\n el.classList.add(...self._classesIn)\n el.classList.add(...self._classesInitial)\n } else {\n // reset classes\n if (options.classSkip !== true && !options.classSkip.elements) {\n const elsSame = self.getElements({ el })\n for (const elSame of elsSame) {\n elSame.classList.remove(\n ...self._classes,\n ...self._classesIn,\n ...self._classesOut,\n ...self._classesDone,\n ...self._classesInitial,\n ...self._classesBefore,\n ...self._classesAfter\n )\n }\n }\n if (options.elementsInner) {\n if (options.classSkip !== true && !options.classSkip.elementsInner) {\n const elementsInner = Xt.dataStorage.get(el, `elementsInner/${self.ns}`)\n for (const elementInner of elementsInner) {\n elementInner.classList.remove(\n ...self._classes,\n ...self._classesIn,\n ...self._classesOut,\n ...self._classesDone,\n ...self._classesInitial,\n ...self._classesBefore,\n ...self._classesAfter\n )\n }\n }\n }\n }\n // check targets\n const targets = self.getTargets({ el })\n for (const tr of targets) {\n // check if activated\n if (save && !activated) {\n if (options.classSkip !== true && !options.classSkip.targets) {\n activated = checkClass(tr)\n }\n }\n // check if activated\n // fix check options.max for currents of _hashChange current reset if hash has current\n // fix check tr with same activation\n const els = self.getElements({ el: tr, same: true })\n if ((activated && currents < options.max) || obj.arr.some(x => els.includes(x))) {\n // instant animation\n tr.classList.add(...self._classes)\n tr.classList.add(...self._classesIn)\n tr.classList.add(...self._classesInitial)\n } else {\n // reset classes\n if (options.classSkip !== true && !options.classSkip.targets) {\n tr.classList.remove(\n ...self._classes,\n ...self._classesIn,\n ...self._classesOut,\n ...self._classesDone,\n ...self._classesInitial,\n ...self._classesBefore,\n ...self._classesAfter\n )\n }\n if (options.targetsInner) {\n if (options.classSkip !== true && !options.classSkip.targetsInner) {\n const targetsInner = Xt.dataStorage.get(tr, `targetsInner/${self.ns}`)\n for (const targetInner of targetsInner) {\n targetInner.classList.remove(\n ...self._classes,\n ...self._classesIn,\n ...self._classesOut,\n ...self._classesDone,\n ...self._classesInitial,\n ...self._classesBefore,\n ...self._classesAfter\n )\n }\n }\n }\n }\n }\n // activate\n if (activated && currents < options.max) {\n // initial\n currents++\n // fix check tr with same activation\n obj.arr.push(el)\n // toggle event if present because of custom listeners\n if (options.on) {\n const event = options.on.split(' ')[0]\n const elEvent = self._getEventParent({ el, event })\n elEvent.dispatchEvent(new CustomEvent(event, { detail: { force: true } }))\n } else {\n self._eventOn({ el, force: true })\n }\n }\n }\n // return\n return currents\n }\n\n /**\n * init events\n */\n _initEvents() {\n const self = this\n const options = self.options\n // remove events\n self._removeEvents()\n // elements\n for (const el of self.elements) {\n // event on\n const onHandlerCustom = Xt.dataStorage.put(\n el,\n `${options.on}/oncustom/${self.ns}`,\n self._eventOnHandler.bind(self, { el, force: true })\n )\n el.addEventListener(`on.trigger.${self._componentNs}`, onHandlerCustom)\n if (options.on) {\n const events = [...options.on.split(' ')]\n for (const event of events) {\n const elEvent = self._getEventParent({ el, event })\n if (elEvent !== el) {\n self._destroyElements.push(elEvent)\n }\n const onHandler = Xt.dataStorage.put(\n elEvent,\n `${options.on}/on/${self.ns}`,\n self._eventOnHandler.bind(self, { el })\n )\n elEvent.addEventListener(event, onHandler)\n }\n }\n // event off\n const offHandlerCustom = Xt.dataStorage.put(\n el,\n `${options.off}/offcustom/${self.ns}`,\n self._eventOffHandler.bind(self, { el, force: true })\n )\n el.addEventListener(`off.trigger.${self._componentNs}`, offHandlerCustom)\n if (options.off) {\n const events = [...options.off.split(' ')]\n for (const event of events) {\n // same event for on and off same namespace\n if (![...options.on.split(' ')].includes(event)) {\n const elEvent = self._getEventParent({ el, event })\n if (elEvent !== el) {\n self._destroyElements.push(elEvent)\n }\n const offHandler = Xt.dataStorage.put(\n elEvent,\n `${options.off}/off/${self.ns}`,\n self._eventOffHandler.bind(self, { el })\n )\n elEvent.addEventListener(event, offHandler)\n }\n }\n }\n // preventEvent\n if (options.on) {\n if (options.preventEvent) {\n const events = [...options.on.split(' ')]\n if (events.includes('click') || events.includes('mouseenter') || events.includes('mousehover')) {\n // prevent touch links\n const preventeventStartHandler = Xt.dataStorage.put(\n el,\n `touchend/preventevent/${self.ns}`,\n self._eventPreventeventStartHandler.bind(self, { el })\n )\n el.addEventListener('touchend', preventeventStartHandler)\n }\n if (events.includes('click')) {\n // prevent click links\n const preventeventStartHandler = Xt.dataStorage.put(\n el,\n `mouseup keyup/preventevent/${self.ns}`,\n self._eventPreventeventStartHandler.bind(self, { el })\n )\n el.addEventListener('mouseup', preventeventStartHandler)\n el.addEventListener('keyup', preventeventStartHandler)\n }\n }\n Xt.dataStorage.put(el, `active/preventevent/${self.ns}`, self.hasCurrent({ el }))\n }\n }\n // targets\n for (const tr of self.targets) {\n // event on\n const onHandlerCustom = Xt.dataStorage.put(\n tr,\n `${options.on}/oncustom/${self.ns}`,\n self._eventOnHandler.bind(self, { el: tr, force: true })\n )\n tr.addEventListener(`on.trigger.${self._componentNs}`, onHandlerCustom)\n // event off\n const offHandlerCustom = Xt.dataStorage.put(\n tr,\n `${options.off}/offcustom/${self.ns}`,\n self._eventOffHandler.bind(self, { el: tr, force: true })\n )\n tr.addEventListener(`off.trigger.${self._componentNs}`, offHandlerCustom)\n }\n // auto\n if (options.auto && options.auto.time) {\n const autostartHandler = Xt.dataStorage.put(\n self.container,\n `autostart/${self.ns}`,\n self._eventAutostart.bind(self)\n )\n const autostopHandler = Xt.dataStorage.put(self.container, `autostop/${self.ns}`, self._eventAutostop.bind(self))\n // focus\n // Xt.dataStorage.set with window to fix unique mode same self.ns\n const focusHandler = Xt.dataStorage.set(window, `focus/auto/${self.ns}`, autostartHandler)\n addEventListener('focus', focusHandler)\n // blur\n // Xt.dataStorage.set with window to fix unique mode same self.ns\n const blurHandler = Xt.dataStorage.set(window, `blur/auto/${self.ns}`, autostopHandler)\n addEventListener('blur', blurHandler)\n // event\n self.container.addEventListener(`autostart.trigger.${self._componentNs}`, autostartHandler)\n self.container.addEventListener(`autostop.trigger.${self._componentNs}`, autostopHandler)\n // autopause\n if (options.auto.pause) {\n const autopauseEls = self.container.querySelectorAll(options.auto.pause)\n if (autopauseEls.length) {\n self._destroyElements.push(...autopauseEls)\n for (const el of autopauseEls) {\n // pause\n const autopauseOnHandler = Xt.dataStorage.put(\n el,\n `mouseenter focus/auto/${self.ns}`,\n self._eventAutostop.bind(self)\n )\n const eventsPause = ['mouseenter', 'focus']\n for (const event of eventsPause) {\n el.addEventListener(event, autopauseOnHandler)\n }\n // resume\n const autoresumeOnHandler = Xt.dataStorage.put(\n el,\n `mouseleave blur/auto/${self.ns}`,\n self._eventAutostart.bind(self)\n )\n const eventsResume = ['mouseleave', 'blur']\n for (const event of eventsResume) {\n el.addEventListener(event, autoresumeOnHandler)\n }\n }\n }\n }\n }\n // hash\n if (options.hash) {\n for (const el of self.elements) {\n if (el.getAttribute(options.hash)) {\n self._hasHash = true\n break\n }\n }\n if (!self._hasHash) {\n for (const tr of self.targets) {\n if (tr.getAttribute(options.hash)) {\n self._hasHash = true\n break\n }\n }\n }\n }\n if (self._hasHash) {\n // hash\n const hashHandler = Xt.dataStorage.put(\n window,\n `popstate/${self.ns}`,\n self._hashChange.bind(self).bind(self, { save: true })\n )\n addEventListener('popstate', hashHandler)\n }\n // jump\n if (options.jump) {\n for (const el of self.targets) {\n const jumpHandler = Xt.dataStorage.put(\n el,\n `click/jump/${self.ns}`,\n self._eventJumpHandler.bind(self).bind(self, { el })\n )\n el.addEventListener('click', jumpHandler, true) // fix elements inside targets (slider pagination)\n // jump\n if (!self.disabled) {\n el.classList.add('xt-jump')\n }\n }\n }\n // navigation\n if (options.navigation) {\n self.navs = self.container.querySelectorAll(options.navigation)\n if (self.navs.length) {\n self._destroyElements.push(...self.navs)\n for (const el of self.navs) {\n const navHandler = Xt.dataStorage.put(\n el,\n `click/nav/${self.ns}`,\n self._eventNavHandler.bind(self).bind(self, { el })\n )\n el.addEventListener('click', navHandler)\n }\n }\n }\n // closeauto\n if (options.closeauto) {\n // Xt.dataStorage.set with window to fix unique mode same self.ns\n const closeautoHandler = Xt.dataStorage.set(\n window,\n `closeauto.trigger.xt/${self.ns}`,\n self._eventCloseautoHandler.bind(self)\n )\n addEventListener('closeauto.trigger.xt', closeautoHandler, true) // useCapture event propagation\n }\n if (options.openauto) {\n // Xt.dataStorage.set with window to fix unique mode same self.ns\n const openautoHandler = Xt.dataStorage.set(\n window,\n `openauto.trigger.xt/${self.ns}`,\n self._eventOpenautoHandler.bind(self)\n )\n addEventListener('openauto.trigger.xt', openautoHandler, true) // useCapture event propagation\n }\n // mediaLoaded\n if (options.mediaLoaded || options.mediaLoadedReinit) {\n for (const el of self.elements) {\n const imgs = Array.from(el.querySelectorAll('img'))\n self._destroyElements.push(...imgs)\n for (const img of imgs) {\n if (!Xt.dataStorage.get(img, `${self.ns}MedialoadedDone`)) {\n Xt.dataStorage.set(img, `${self.ns}MedialoadedDone`, true) // useCapture event propagation\n if (!img.complete) {\n const medialoadedHandler = Xt.dataStorage.put(\n img,\n `load/media/${self.ns}`,\n self._eventMedialoadedHandler.bind(self).bind(self, { img, el, deferred: true })\n )\n img.addEventListener('load', medialoadedHandler)\n } else {\n self._eventMedialoadedHandler({ img, el })\n }\n }\n }\n }\n for (const tr of self.targets) {\n const imgs = Array.from(tr.querySelectorAll('img'))\n self._destroyElements.push(...imgs)\n for (const img of imgs) {\n if (!Xt.dataStorage.get(img, `${self.ns}MedialoadedDone`)) {\n if (!img.complete) {\n const medialoadedHandler = Xt.dataStorage.put(\n img,\n `load/media/${self.ns}`,\n self._eventMedialoadedHandler.bind(self).bind(self, { img, el: tr, deferred: true, reinit: true })\n )\n img.addEventListener('load', medialoadedHandler)\n } else {\n self._eventMedialoadedHandler({ img, el: tr })\n }\n }\n }\n }\n }\n // visibleReinit\n if (options.visibleReinit) {\n if (!Xt.visible({ el: self.container })) {\n // intersection observer\n self._observer = new IntersectionObserver(\n (entries, observer) => {\n for (const entry of entries) {\n if (entry.intersectionRatio > 0) {\n self._eventVisibleReinit()\n observer.disconnect()\n self._observer = null\n }\n }\n },\n { root: null }\n )\n self._observer.observe(self.container)\n }\n }\n }\n\n //\n // handler\n //\n\n /**\n * element on handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Boolean} params.force\n * @param {Event} e\n */\n _eventOnHandler({ el, force = false }, e) {\n const self = this\n const options = self.options\n force = force ? force : e?.detail?.force\n // fix groupElements and targets\n el = options.groupElements || self.targets.includes(el) ? self.getElements({ el })[0] : el\n // handler\n if (!force && options.eventLimit) {\n const eventLimit = self._containerElements.querySelectorAll(options.eventLimit)\n if (self._containerElements.matches(options.eventLimit)) {\n return\n } else if (eventLimit.length) {\n if (Xt.contains({ els: eventLimit, tr: e.target })) {\n return\n }\n }\n }\n self._eventOn({ el, force }, e)\n }\n\n /**\n * element off handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Boolean} params.force\n * @param {Event} e\n */\n _eventOffHandler({ el, force = false }, e) {\n const self = this\n const options = self.options\n force = force ? force : e?.detail?.force\n // fix groupElements and targets\n el = options.groupElements || self.targets.includes(el) ? self.getElements({ el })[0] : el\n // handler\n if (!force && options.eventLimit) {\n const eventLimit = self._containerElements.querySelectorAll(options.eventLimit)\n if (self._containerElements.matches(options.eventLimit)) {\n return\n } else if (eventLimit.length) {\n if (Xt.contains({ els: eventLimit, tr: e.target })) {\n return\n }\n }\n }\n self._eventOff({ el, force }, e)\n }\n\n /**\n * init prevents click on touch until clicked two times\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventPreventeventStartHandler({ el } = {}) {\n const self = this\n // active\n Xt.dataStorage.put(el, `active/preventevent/${self.ns}`, self.hasCurrent({ el }))\n // prevent link but execute on.xt because added before\n const preventeventHandler = Xt.dataStorage.put(\n el,\n `click keypress/preventevent/${self.ns}`,\n self._eventPreventeventHandler.bind(self, { el })\n )\n el.addEventListener('click', preventeventHandler)\n el.addEventListener('keypress', preventeventHandler)\n // reset prevent event\n const preventeventResetHandler = Xt.dataStorage.put(\n el,\n `off/preventevent/${self.ns}`,\n self._eventPreventeventResetHandler.bind(self, { el })\n )\n el.addEventListener(`off.${self._componentNs}`, preventeventResetHandler)\n }\n\n /**\n * remove prevents click on touch until clicked two times\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventPreventeventEndHandler({ el } = {}) {\n const self = this\n // event link\n const preventeventHandler = Xt.dataStorage.get(el, `click/preventevent/${self.ns}`)\n el.removeEventListener('click', preventeventHandler)\n // event reset\n const preventeventResetHandler = Xt.dataStorage.get(el, `off/preventevent/${self.ns}`)\n el.removeEventListener(`off.${self._componentNs}`, preventeventResetHandler)\n }\n\n /**\n * prevents click on touch until clicked two times\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventPreventeventHandler({ el }, e) {\n const self = this\n const active = Xt.dataStorage.get(el, `active/preventevent/${self.ns}`)\n // only no key or key enter\n if (e.key && e.key !== 'Enter') {\n return\n }\n // logic\n if (!active && !Xt.dataStorage.get(el, `${self.ns}PreventeventDone`)) {\n Xt.dataStorage.set(el, `${self.ns}PreventeventDone`, true)\n // prevent default\n e.preventDefault()\n } else {\n self._eventPreventeventEndHandler({ el })\n Xt.dataStorage.remove(el, `${self.ns}PreventeventDone`)\n Xt.dataStorage.remove(el, `active/preventevent/${self.ns}`)\n }\n }\n\n /**\n * reset prevents click on touch until clicked two times\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventPreventeventResetHandler({ el } = {}) {\n const self = this\n self._eventPreventeventEndHandler({ el })\n Xt.dataStorage.remove(el, `${self.ns}PreventeventDone`)\n Xt.dataStorage.remove(el, `active/preventevent/${self.ns}`)\n }\n\n /**\n * hash change\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n * @return {Object} return\n * @return {Number} return.currents\n * @return {Array} return.arr\n */\n _hashChange({ save = false } = {}) {\n const self = this\n const options = self.options\n // vars\n let currents = 0\n const arr = []\n // disabled\n if (self.disabled) {\n return { currents, arr }\n }\n // logic\n if (self._hasHash) {\n if (!Xt.dataStorage.get(self.container, `${self.ns}HashSkip`)) {\n const hash = decodeURI(location.hash.split('#')[1])\n if (hash) {\n // check\n const checkHash = (el, hash) => {\n if (el.getAttribute(options.hash) === hash) {\n return true\n }\n return false\n }\n // check hash\n for (const el of self.elements) {\n let activated = false\n // check if activated\n if (save) {\n activated = checkHash(el, hash)\n }\n // check targets\n const targets = self.getTargets({ el })\n for (const tr of targets) {\n // check if activated\n if (save && !activated) {\n activated = checkHash(tr, hash)\n }\n }\n // activate\n if (activated && currents < options.max) {\n // initial\n currents++\n arr.push(el)\n // toggle event if present because of custom listeners\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, true)\n if (options.on) {\n const event = options.on.split(' ')[0]\n el.dispatchEvent(new CustomEvent(event, { detail: { force: true } }))\n } else {\n self._eventOn({ el, force: true })\n }\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, false)\n }\n }\n }\n }\n }\n // return\n return { currents, arr }\n }\n\n /**\n * jump handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventJumpHandler({ el }, e) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // useCapture event propagation check\n if (self.targets.includes(el)) {\n // handler\n self._eventJump({ el }, e)\n }\n }\n\n /**\n * nav handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventNavHandler({ el }, e) {\n const self = this\n // handler\n self._eventNav({ el }, e)\n }\n\n /**\n * closeauto handler\n * @param {Event} e\n */\n _eventCloseautoHandler(e) {\n const self = this\n // triggering e.detail.container\n if (!e?.detail?.container || e?.detail?.container.contains(self.container)) {\n // handler\n const currents = self._getCurrents()\n for (const current of currents) {\n self._eventOff({ el: current, force: true }, e)\n }\n }\n }\n\n /**\n * openauto handler\n * @param {Event} e\n */\n _eventOpenautoHandler(e) {\n const self = this\n // handler\n let found\n for (const el of Array.from(self.elements).filter(x => x.contains(e.target))) {\n found = el\n break\n }\n if (!found) {\n for (const tr of Array.from(self.targets).filter(x => x.contains(e.target))) {\n found = tr\n break\n }\n }\n if (found) {\n self._eventOn({ el: found }, e)\n }\n }\n\n /**\n * medialoaded\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.img\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Boolean} params.deferred\n * @param {Boolean} params.reinit\n */\n _eventMedialoadedHandler({ img, el, deferred = false, reinit = false } = {}) {\n const self = this\n const options = self.options\n // fix multiple calls\n Xt.dataStorage.set(img, `${self.ns}MedialoadedDone`, true)\n // mediaLoadedReinit\n if (options.mediaLoadedReinit && deferred && reinit) {\n clearTimeout(Xt.dataStorage.get(self.container, `${self.ns}MedialoadedTimeout`))\n Xt.dataStorage.set(\n self.container,\n `${self.ns}MedialoadedTimeout`,\n setTimeout(() => {\n self._eventMediaLoadedReinit()\n }, Xt.medialoadedDelay)\n )\n }\n // mediaLoaded\n if (options.mediaLoaded) {\n el.classList.add('xt-medialoaded')\n }\n // dispatch event\n el.dispatchEvent(\n new CustomEvent(`medialoaded.${self._componentNs}`, {\n detail: { deferred: deferred },\n })\n )\n }\n\n //\n // event util\n //\n\n /**\n * Get all elements from element or target\n * @return {Array} array of elements\n */\n getElementsGroups() {\n const self = this\n // groups\n const groups = []\n for (const el of self.elements) {\n // choose element by group\n const group = el.getAttribute('data-xt-group')\n if (group) {\n const alreadyFound = groups.filter(x => x.getAttribute('data-xt-group') === group)\n if (!alreadyFound.length) {\n groups.push(el)\n }\n } else {\n groups.push(el)\n }\n }\n return groups\n }\n\n /**\n * filter elements or targets array with groups array\n * @param {Object} params\n * @param {Array} params.els Elements or Targets\n * @param {String} params.attr Groups attribute\n * @param {Boolean} params.some Filter also if some in Groups attribute\n * @param {Boolean} params.same Use also data-xt-group-same\n * @return {Array} Filtered array\n */\n _groupFilter({ els, attr, some = false, same = false } = {}) {\n const self = this\n const options = self.options\n // logic\n const found = []\n for (const el of els) {\n let currentAttr = el.getAttribute('data-xt-group')\n if (same) {\n const currentAttrSame = el.getAttribute('data-xt-group-same')\n if (currentAttrSame) {\n currentAttr += options.groupSeparator + currentAttrSame\n }\n }\n // if same attr\n if (currentAttr === attr) {\n found.push(el)\n continue\n }\n // if some in attr\n if (some) {\n const groups = attr?.split(options.groupSeparator).filter(x => x) // filter out nullish\n const currentGroups = currentAttr?.split(options.groupSeparator).filter(x => x) // filter out nullish\n if (currentGroups && groups && currentGroups.some(x => groups.includes(x))) {\n found.push(el)\n }\n }\n }\n return found\n }\n\n /**\n * get elements from element or target\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {Boolean} params.same Use also data-xt-group-same\n * @return {Array} The first element is the one on getElementsGroups()\n */\n getElements({ el, same = false } = {}) {\n const self = this\n const options = self.options\n // getElements\n if (!self.elements || !self.elements.length) {\n return []\n }\n if (!el) {\n return []\n } else if (self._mode === 'unique') {\n // xtNamespace linked components\n const final = []\n const selfs = Xt.dataStorage.get(self.ns, 'xtNamespace')\n if (selfs) {\n for (const s of selfs) {\n // choose element by group\n final.push(...s.elements)\n }\n return final\n }\n return []\n } else if (self._mode === 'multiple') {\n // choose element by group\n let final\n let attr = el.getAttribute('data-xt-group')\n if (same) {\n const attrSame = el.getAttribute('data-xt-group-same')\n if (attrSame) {\n attr += options.groupSeparator + attrSame\n }\n }\n const some = self.elements.includes(el) ? false : true // data-xt-group some only if finding elements from targets\n const groupElements = self._groupFilter({ els: self.elements, attr, some, same })\n const groupTargets = self._groupFilter({ els: self.targets, attr, some, same })\n if (attr) {\n // if group all group targets\n final = groupElements\n } else {\n // not group targets by index\n if (Array.from(self.elements).includes(el)) {\n final = [el].filter(x => x) // filter out nullish\n } else {\n // groupElements and groupTargets are elements and targets without data-xt-group here\n const index = groupTargets.findIndex(x => x === el)\n final = [groupElements[index]].filter(x => x) // filter out nullish\n }\n }\n return final\n }\n }\n\n /**\n * Get all targets from element or target\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {Boolean} params.same Use also data-xt-group-same\n * @return {Array}\n */\n getTargets({ el, same = false } = {}) {\n const self = this\n const options = self.options\n // getTargets\n if (!self.targets || !self.targets.length) {\n return []\n }\n if (!el) {\n return []\n } else if (self._mode === 'unique') {\n // xtNamespace linked components\n const final = self.targets\n return final\n } else if (self._mode === 'multiple') {\n // choose only target by group\n let final\n let attr = el.getAttribute('data-xt-group')\n if (same) {\n const attrSame = el.getAttribute('data-xt-group-same')\n if (attrSame) {\n attr += options.groupSeparator + attrSame\n }\n }\n const some = self.targets.includes(el) ? false : true // data-xt-group some only if finding targets from elements\n const groupElements = self._groupFilter({ els: self.elements, attr, some, same })\n const groupTargets = self._groupFilter({ els: self.targets, attr, some, same })\n if (attr) {\n // if group all group targets\n final = groupTargets\n } else {\n // not group targets by index\n if (Array.from(self.targets).includes(el)) {\n final = [el].filter(x => x) // filter out nullish\n } else {\n // groupElements and groupTargets are elements and targets without data-xt-group here\n const index = groupElements.findIndex(x => x === el)\n final = [groupTargets[index]].filter(x => x) // filter out nullish\n }\n }\n return final\n }\n }\n\n /**\n * Get elements inner\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els Elements\n * @return {Array}\n */\n _getElementsInner({ els } = {}) {\n const self = this\n const options = self.options\n // inners\n let inners = []\n if (options.elementsInner) {\n for (const el of els) {\n const inner = Xt.dataStorage.get(el, `elementsInner/${self.ns}`)\n if (inner.length) {\n inners = inners.concat(inner)\n }\n }\n }\n return inners\n }\n\n /**\n * Get targets inner\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els Elements\n * @return {Array}\n */\n _getTargetsInner({ els } = {}) {\n const self = this\n const options = self.options\n // inners\n let inners = []\n if (options.targetsInner) {\n for (const el of els) {\n const inner = Xt.dataStorage.get(el, `targetsInner/${self.ns}`)\n if (inner.length) {\n inners = inners.concat(inner)\n }\n }\n }\n return inners\n }\n\n /**\n * get event parent\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {String} params.event\n * @return {Node|HTMLElement|EventTarget|Window}\n */\n _getEventParent({ el, event } = {}) {\n const self = this\n const options = self.options\n // getCurrents\n if (options.mouseParent) {\n if (['mouseenter', 'mouseleave', 'mousehover', 'mouseout'].includes(event)) {\n if (typeof options.mouseParent === 'string') {\n return el.closest(options.mouseParent)\n } else {\n return el.parentNode\n }\n }\n }\n return el\n }\n /**\n * get currents based on namespace (so shared between Xt objects)\n * @return {Array}\n */\n _getCurrents() {\n const self = this\n // getCurrents\n return Xt._currents[self.ns]\n }\n\n /**\n * set currents based on namespace (so shared between Xt objects)\n * @param {Array} arr\n */\n _setCurrents(arr) {\n const self = this\n // setCurrents\n Xt._currents[self.ns] = arr\n }\n\n /**\n * add current based on namespace (so shared between Xt objects)\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Boolean} params.running Running currents\n */\n _addCurrent({ el, running = false } = {}) {\n const self = this\n // addCurrent\n if (!self.hasCurrent({ el, running })) {\n const arr = running ? Xt._running : Xt._currents\n arr[self.ns].push(el)\n }\n }\n\n /**\n * remove currents based on namespace (so shared between Xt objects)\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be removed\n * @param {Boolean} params.running Running currents\n */\n _removeCurrent({ el, running = false } = {}) {\n const self = this\n // removeCurrent\n const arr = running ? Xt._running : Xt._currents\n arr[self.ns] = arr[self.ns].filter(x => x !== el)\n }\n\n /**\n * Check if element or target is activated\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element animating\n * @param {Boolean} params.same Use also data-xt-group-same\n * @param {Boolean} params.running Running currents\n */\n hasCurrent({ el, same = false, running = false } = {}) {\n const self = this\n const options = self.options\n // fix groupElements and targets\n const elements = options.groupElements || self.targets.includes(el) ? self.getElements({ el, same }) : [el]\n // hasCurrent\n const arr = running ? Xt._running : Xt._currents\n return arr[self.ns].filter(x => elements.includes(x)).length\n }\n\n /**\n * check element on\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be checked\n * @return {Boolean} If elements can activate\n */\n _checkOn({ el } = {}) {\n const self = this\n // check\n return !self.hasCurrent({ el })\n }\n\n /**\n * check element off\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be checked\n * @return {Boolean} If elements can deactivate\n */\n _checkOff({ el } = {}) {\n const self = this\n const options = self.options\n // skip if min >= currents\n if (options.min - self._getCurrents().length >= 0) {\n return false\n }\n // check\n return self.hasCurrent({ el })\n }\n\n /**\n * check element on\n * @param {Object} params\n * @param {Object} params.obj Queue object to end\n * @return {Boolean} If elements can activate\n */\n _checkOnRunning({ obj } = {}) {\n const self = this\n // running check to stop multiple activation/deactivation with delay\n const check = obj.elements.runningOn || !self.hasCurrent({ el: obj.elements.queueEls[0], running: true })\n obj.elements.runningOn = check\n return check\n }\n\n /**\n * check element off running\n * @param {Object} params\n * @param {Object} params.obj Queue object to end\n * @return {Boolean} If elements can activate\n */\n _checkOffRunning({ obj } = {}) {\n const self = this\n // running check to stop multiple activation/deactivation with delay\n const check = obj.elements.runningOff || self.hasCurrent({ el: obj.elements.queueEls[0], running: true })\n obj.elements.runningOff = check\n return check\n }\n\n /**\n * set index\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _setIndex({ el } = {}) {\n const self = this\n // set index\n const index = self.getIndex({ el })\n self._oldIndex = self.index ?? index\n self.index = index\n }\n\n /**\n * get index\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n getIndex({ el } = {}) {\n const self = this\n // fix groupElements and targets\n el = self.getElements({ el })[0]\n // set index\n let index = null\n for (const [i, element] of self.getElementsGroups().entries()) {\n if (el === element) {\n index = i\n break\n }\n }\n return index\n }\n\n /**\n * set direction\n */\n _setDirection() {\n const self = this\n // set direction\n if (self.index === null || self.index === self._oldIndex) {\n // initial direction and same index direction\n self.direction = 0\n } else if (self._inverse !== null) {\n // forced value\n self.direction = self._inverse ? -1 : 1\n } else {\n self.direction = self.index < self._oldIndex ? -1 : 1\n }\n }\n\n /**\n * activate element\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be activated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n */\n _activate({ el, type, skipSame } = {}) {\n const self = this\n const options = self.options\n // activation\n if (!skipSame && options.classSkip !== true && !options.classSkip[type]) {\n // input\n el.checked = true\n // activation\n el.classList.add(...self._classes)\n el.classList.remove(...self._classesOut)\n // needs TWO raf or sequential off/on flickr (e.g. display)\n Xt.frameDouble({\n el,\n func: () => {\n el.classList.add(...self._classesIn)\n el.classList.remove(...self._classesDone)\n },\n })\n // direction\n el.classList.remove(...self._classesBefore, ...self._classesAfter)\n if (self.direction < 0) {\n el.classList.add(...self._classesBefore)\n } else if (self.direction > 0) {\n el.classList.add(...self._classesAfter)\n }\n }\n }\n\n /**\n * activate element done\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be deactivated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n */\n _activateDone({ el, type, skipSame } = {}) {\n const self = this\n const options = self.options\n // activation\n if (!skipSame && options.classSkip !== true && !options.classSkip[type]) {\n // fix need to repeat inside frameDouble in case we cancel\n Xt.frameDouble({ el })\n el.classList.add(...self._classesIn, ...self._classesDone)\n }\n }\n\n /**\n * activate hash\n * @param {Object} params\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be activated\n * @param {String} type Type of element\n */\n _activateHash({ obj, el, type } = {}) {\n const self = this\n const options = self.options\n // hash\n if (!Xt.dataStorage.get(self.container, `${self.ns}HashSkip`)) {\n if (self._hasHash && !self.initial) {\n // fix no data-xt-group-same\n const elMain = obj.elements.queueEls[0]\n if (\n (type === 'elements' && self.getElements({ el: elMain }).includes(el)) ||\n (type === 'targets' && self.getTargets({ el: elMain }).includes(el))\n ) {\n const attr = el.getAttribute(options.hash)\n if (attr) {\n // raf prevents hash on chained activations (e.g: multiple hash on elements with same activation)\n Xt.frame({\n el: window,\n ns: `${self.ns}Hash`,\n func: () => {\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, true)\n history.pushState({}, '', `#${encodeURIComponent(attr)}`)\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, false)\n },\n })\n }\n }\n }\n }\n }\n\n /**\n * deactivate element\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be deactivated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n */\n _deactivate({ el, type, skipSame } = {}) {\n const self = this\n const options = self.options\n // activation\n if (!skipSame && options.classSkip !== true && !options.classSkip[type]) {\n // input\n el.checked = false\n // must be outside inside raf or page jumps (e.g. noqueue, done outside for toggle inverse)\n el.classList.remove(...self._classes)\n // needs TWO raf or sequential off/on flickr (e.g. backdrop megamenu)\n Xt.frameDouble({\n el,\n func: () => {\n el.classList.remove(...self._classesIn, ...self._classesDone)\n el.classList.add(...self._classesOut)\n },\n })\n // direction\n el.classList.remove(...self._classesBefore, ...self._classesAfter)\n if (self.direction < 0) {\n el.classList.add(...self._classesBefore)\n } else if (self.direction > 0) {\n el.classList.add(...self._classesAfter)\n }\n }\n }\n\n /**\n * deactivate element done\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be deactivated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n */\n _deactivateDone({ el, type, skipSame } = {}) {\n const self = this\n const options = self.options\n // activation\n if (!skipSame && options.classSkip !== true && !options.classSkip[type]) {\n // fix need to repeat inside frameDouble in case we cancel\n Xt.frameDouble({ el })\n el.classList.remove(...self._classesIn, ...self._classesOut)\n }\n }\n\n /**\n * deactivate hash\n * @param {Object} params\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be deactivated\n * @param {String} params.type Type of element\n */\n _deactivateHash({ obj, el, type } = {}) {\n const self = this\n const options = self.options\n // hash\n if (!Xt.dataStorage.get(self.container, `${self.ns}HashSkip`)) {\n if (options.hash && self._hasHash && !self.initial) {\n // fix no data-xt-group-same\n const elMain = obj.elements.queueEls[0]\n if (\n (type === 'elements' && self.getElements({ el: elMain }).includes(el)) ||\n (type === 'targets' && self.getTargets({ el: elMain }).includes(el))\n ) {\n const attr = el.getAttribute(options.hash)\n if (attr && attr === location.hash.split('#')[1]) {\n // raf prevents hash on chained activations (e.g: multiple hash on elements with same activation)\n Xt.frame({\n el: window,\n ns: `${self.ns}Hash`,\n func: () => {\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, true)\n history.pushState({}, '', '#')\n Xt.dataStorage.set(self.container, `${self.ns}HashSkip`, false)\n },\n })\n }\n }\n }\n }\n }\n\n //\n // event\n //\n\n /**\n * element on\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be activated\n * @param {Boolean} params.force\n * @param {Boolean} params.focus\n * @param {Event} e\n * @return {Boolean} If activated\n */\n _eventOn({ el, force = false, focus = false }, e) {\n const self = this\n const options = self.options\n force = force ? force : e?.detail?.force\n // disabled\n if (self.disabled && !force) {\n return false\n }\n // toggle\n if (force || self._checkOn({ el })) {\n // auto\n self._eventAutostop()\n // fix groupElements and targets\n const elements = options.groupElements || self.targets.includes(el) ? self.getElements({ el, same: true }) : [el]\n el = elements[0]\n // targets\n const targets = self.getTargets({ el, same: true })\n // inner\n const elementsInner = self._getElementsInner({ els: elements })\n const targetsInner = self._getTargetsInner({ els: targets })\n // on\n self._addCurrent({ el })\n self._setIndex({ el })\n self._setDirection()\n // queue obj\n const actionCurrent = 'In'\n const actionOther = 'Out'\n let obj = self._eventQueue({ elements, targets, elementsInner, targetsInner, force, e })\n // if currents > max\n const currents = self._getCurrents()\n if (currents.length > options.max) {\n // deactivate old\n const objFiltered = self._eventOff({ el: currents[0], objFilter: obj })\n // skip obj nodes that are in off and on (e.g. group same slider animation-js)\n if (!options.queue && objFiltered?.obj) {\n obj = objFiltered.obj\n }\n }\n // put in queue\n if (!options.queue) {\n self[`_queue${actionCurrent}`] = [obj]\n } else {\n self[`_queue${actionCurrent}`].unshift(obj)\n }\n // queue run\n for (const type in self[`_queue${actionCurrent}`][0]) {\n self._queueStart({ actionCurrent, actionOther, type, index: 0 })\n }\n // focus\n if (focus) {\n el = elementsInner[0] ?? el\n el.focus()\n }\n // return\n return true\n } else if (options.off && [...options.off.split(' ')].includes(e?.type)) {\n // fix same event for on and off same namespace\n self._eventOff({ el }, e)\n }\n // return\n return false\n }\n\n /**\n * element off\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be deactivated\n * @param {Boolean} params.force\n * @param {Boolean} params.focus\n * @param {Object} params.objFilter Object to filter from\n * @param {Event} e\n * @return {Boolean} If deactivated\n */\n _eventOff({ el, force = false, focus = false, objFilter } = {}, e) {\n const self = this\n const options = self.options\n force = force ? force : e?.detail?.force\n // disabled\n if (self.disabled && !force) {\n return false\n }\n // toggle\n if (force || self._checkOff({ el })) {\n // fix groupElements and targets\n const elements = options.groupElements || self.targets.includes(el) ? self.getElements({ el, same: true }) : [el]\n el = elements[0]\n // off\n self._removeCurrent({ el })\n // targets\n const targets = self.getTargets({ el, same: true })\n // inner\n const elementsInner = self._getElementsInner({ els: elements })\n const targetsInner = self._getTargetsInner({ els: targets })\n // auto\n if (!self._getCurrents().length) {\n self._eventAutostop()\n }\n // queue obj\n const actionCurrent = 'Out'\n const actionOther = 'In'\n const obj = self._eventQueue({ elements, targets, elementsInner, targetsInner, force, e })\n // fix groupSame do not deactivate/reactivate but do logic (e.g. group same slider animation-js and slider hash)\n if (options.groupSame && !options.queue && objFilter) {\n for (const key in obj) {\n const item = obj[key]\n if (item.queueEls) {\n const itemFilter = objFilter[key]\n const queueEls = item.queueEls.filter(x => !itemFilter.queueEls.includes(x))\n // activation object skip nodes that should deactivate/reactivate\n itemFilter.skipEls = itemFilter.queueEls.filter(x => item.queueEls.includes(x))\n // deactivation object remove nodes that should deactivate/reactivate\n item.queueEls = queueEls\n }\n }\n }\n // put in queue\n if (!options.queue) {\n self[`_queue${actionCurrent}`] = [obj]\n } else {\n self[`_queue${actionCurrent}`].unshift(obj)\n }\n // remove queue not started if queue too big\n if (self[`_queue${actionCurrent}`].length > options.max) {\n // remove queue and stop\n const removedOn = self[`_queue${actionOther}`].shift()\n self._queueStop({ actionCurrent: actionOther, actionOther: actionCurrent, obj: removedOn })\n // remove queue and stop\n const removedOff = self[`_queue${actionCurrent}`].shift()\n self._queueStop({ actionCurrent, actionOther, obj: removedOff })\n }\n // queue run\n for (const type in self[`_queue${actionCurrent}`][0]) {\n self._queueStart({ actionCurrent, actionOther, type, index: 0 })\n }\n // focus\n if (focus) {\n el = elementsInner[0] ?? el\n el.focus()\n }\n // return\n if (objFilter) {\n return { obj: objFilter }\n }\n return true\n }\n // return\n return false\n }\n\n /**\n * element on\n * @param {Object} params\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.elements\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.targets\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.elementsInner\n * @param {NodeList|Array|Node|HTMLElement|EventTarget|Window} params.targetsInner\n * @param {Boolean} params.force\n * @param {Event} params.e\n */\n _eventQueue({ elements, targets, elementsInner, targetsInner, force, e } = {}) {\n // populate\n const obj = {}\n obj.elements = {\n queueEls: elements,\n force: force,\n e: e,\n }\n if (targets.length) {\n obj.targets = {\n queueEls: targets,\n }\n }\n if (elementsInner.length) {\n obj.elementsInner = {\n queueEls: elementsInner,\n }\n }\n if (targetsInner.length) {\n obj.targetsInner = {\n queueEls: targetsInner,\n }\n }\n return obj\n }\n\n /**\n * auto\n */\n _eventAuto() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // auto\n if (!self._autoblock && self._autorunning) {\n if (Xt.visible({ el: self.container })) {\n // not when disabled\n if (options.auto.inverse) {\n self.goToPrev({ amount: options.auto.step, loop: options.auto.loop })\n } else {\n self.goToNext({ amount: options.auto.step, loop: options.auto.loop })\n }\n }\n }\n }\n\n /**\n * auto start\n */\n _eventAutostart() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // start\n if (options.auto && options.auto.time && Xt.autoTimescale) {\n if (!self._autoblock && !self._autorunning) {\n // not when nothing activated\n if (self.index !== null && (!self.initial || options.auto.initial)) {\n // paused\n self._autorunning = true\n // clear\n clearTimeout(Xt.dataStorage.get(self.container, `${self.ns}AutoTimeout`))\n // auto\n const time = options.auto.time\n // disabled\n if (self.disabled) {\n return\n }\n // timeout\n Xt.dataStorage.set(\n self.container,\n `${self.ns}AutoTimeout`,\n setTimeout(() => {\n // auto\n self._eventAuto()\n }, time / Xt.autoTimescale)\n )\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`autostart.${self._componentNs}`))\n }\n }\n }\n }\n\n /**\n * auto stop\n */\n _eventAutostop() {\n const self = this\n const options = self.options\n // stop\n if (options.auto && options.auto.time) {\n if (!self._autoblock && self._autorunning) {\n // paused\n self._autorunning = false\n // clear\n clearTimeout(Xt.dataStorage.get(self.container, `${self.ns}AutoTimeout`))\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`autostop.${self._componentNs}`))\n }\n }\n }\n\n /**\n * jump\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventJump({ el }, e) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // check disabled\n if (el.classList.contains(...self._classes) || !el.classList.contains('xt-jump')) {\n return\n }\n // prevent default\n e.preventDefault()\n // jump\n if (self._checkOn({ el })) {\n self._eventOn({ el })\n }\n }\n\n /**\n * nav\n * @param {Node|HTMLElement|EventTarget|Window} el\n */\n _eventNav({ el } = {}) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // nav\n const step = parseFloat(el.getAttribute('data-xt-nav'))\n if (step < 0) {\n self.goToPrev({ amount: -step })\n } else {\n self.goToNext({ amount: step })\n }\n }\n\n /**\n * medialoadedReinit\n */\n _eventMediaLoadedReinit() {\n const self = this\n // reinit\n self.reinit()\n }\n\n /**\n * eventVisibleReinit\n */\n _eventVisibleReinit() {\n const self = this\n // reinit\n self.reinit()\n }\n\n //\n // queue\n //\n\n /**\n * queue start\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {String} params.type Type of element\n * @param {Number} params.index Queue index\n */\n _queueStart({ actionCurrent, actionOther, type, index } = {}) {\n const self = this\n const options = self.options\n // queue start\n const obj = self[`_queue${actionCurrent}`][index]\n if (obj && obj[type] && !obj[type].done) {\n const queueOther = self[`_queue${actionOther}`]\n const objOther = queueOther[queueOther.length - 1]\n if (!objOther || !objOther[type] || objOther[type].done) {\n // fix if initial must be instant, fixes queue\n if (self.initial || !options.queue) {\n obj[type].instant = true\n } else if (options.queue && !options.queue[type]) {\n obj[type].instantType = true\n }\n // special\n self._specialClassBody({ actionCurrent, type })\n // start queue\n self._queueDelay({ actionCurrent, actionOther, obj, type })\n }\n }\n }\n\n /**\n * queue stop\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object to end\n */\n _queueStop({ actionCurrent, actionOther, obj } = {}) {\n const self = this\n // stop type if done\n for (const type in obj) {\n if (obj[type].done) {\n for (const el of obj[type].queueEls) {\n // clear timeout and frame\n Xt.frameDouble({ el, ns: `${self.ns}CollapseHeightFrame` })\n Xt.frameDouble({ el, ns: `${self.ns}CollapseWidthFrame` })\n clearTimeout(Xt.dataStorage.get(el, `${self.ns + type}DelayTimeout`))\n clearTimeout(Xt.dataStorage.get(el, `${self.ns + type}AnimTimeout`))\n // done other queue\n self._queueDelayDone({\n actionCurrent: actionOther,\n actionOther: actionCurrent,\n obj,\n el,\n type,\n skipQueue: true,\n })\n self._queueAnimDone({\n actionCurrent: actionOther,\n actionOther: actionCurrent,\n obj,\n el,\n type,\n skipQueue: true,\n })\n }\n }\n }\n }\n\n /**\n * queue delay\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object\n * @param {String} params.type Type of elements\n */\n _queueDelay({ actionCurrent, actionOther, obj, type } = {}) {\n const self = this\n const options = self.options\n // delay\n const els = obj[type].queueEls\n for (const el of els) {\n // fix groupSame do not deactivate/reactivate but do logic (e.g. group same slider animation-js and slider hash)\n const skipSame = obj[type].skipEls?.includes(el)\n // delay\n let delay =\n self.initial || self.disabled // off from disable/destroy\n ? false\n : Xt.delayTime({ el, duration: options.delay || options[`delay${actionCurrent}`], actionCurrent })\n if (delay) {\n if (typeof delay === 'function') {\n const count = Xt.dataStorage.get(el, `${self.ns + actionCurrent}Count`) || els.findIndex(x => x === el)\n const tot = Xt.dataStorage.get(el, `${self.ns + actionCurrent}Tot`) || els.length\n delay = delay({ current: count, total: tot - 1, el, self })\n }\n }\n // fnc\n clearTimeout(Xt.dataStorage.get(el, `${self.ns + type}DelayTimeout`))\n clearTimeout(Xt.dataStorage.get(el, `${self.ns + type}AnimTimeout`))\n if (!delay) {\n self._queueDelayDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n } else if (delay === 'raf') {\n Xt.frameDouble({\n el,\n ns: `${self.ns + type}QueueDelayDone`,\n func: () => {\n self._queueDelayDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n },\n })\n } else {\n Xt.dataStorage.set(\n el,\n `${self.ns + type}DelayTimeout`,\n setTimeout(() => {\n self._queueDelayDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n }, delay)\n )\n }\n // queue done\n if (obj[type].instant) {\n // only if last element\n if (el === els[els.length - 1]) {\n self._queueDone({ actionCurrent, actionOther, obj, type })\n }\n }\n }\n // queue done\n if (!els.length) {\n self._queueDone({ actionCurrent, actionOther, obj, type })\n }\n }\n\n /**\n * queue delay done\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be deactivated\n * @param {String} params.type Type of elements\n * @param {Boolean} params.skipSame If skip activation classes and events\n * @param {Boolean} params.skipQueue If skip queue\n */\n _queueDelayDone({ actionCurrent, actionOther, obj, el, type, skipSame, skipQueue = false } = {}) {\n const self = this\n // check if not already running or if force\n if (actionCurrent === 'In' && (self._checkOnRunning({ obj }) || obj.elements.force)) {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n self._addCurrent({ el, running: true })\n }\n // activation\n self._activate({ el, type })\n self._activateHash({ obj, el, type })\n // special\n self._specialZindex({ actionCurrent, obj, el, type })\n self._specialAppendto({ actionCurrent, el, type })\n self._specialClose({ actionCurrent, el, type, obj })\n if (!self.initial) {\n self._specialCollapse({ actionCurrent, el, type })\n } else {\n self._specialCollapse({ actionCurrent, el, type, reset: true })\n }\n // dispatch event\n if (!skipSame && type !== 'elementsInner' && type !== 'targetsInner') {\n // off from disable/destroy\n if (!self.disabled) {\n Xt.frame({\n el,\n ns: `${self.ns}${actionCurrent}DelayDone`,\n func: () => {\n el.dispatchEvent(\n new CustomEvent(`on.${self._componentNs}`, {\n detail: obj.elements.e,\n })\n )\n },\n })\n }\n }\n } else if (actionCurrent === 'Out' && (self._checkOffRunning({ obj }) || obj.elements.force)) {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n self._removeCurrent({ el, running: true })\n // if no currents\n if (!self._getCurrents().length) {\n // reset index and direction\n self.index = null\n self._setDirection()\n }\n }\n // activation\n self._deactivate({ el, type })\n self._deactivateHash({ obj, el, type })\n // special\n self._specialCollapse({ actionCurrent, el, type })\n self._specialClose({ actionCurrent, el, type, obj })\n // dispatch event\n if (!skipSame && type !== 'elementsInner' && type !== 'targetsInner') {\n // off from disable/destroy\n if (!self.disabled) {\n Xt.frame({\n el,\n ns: `${self.ns}${actionCurrent}DelayDone`,\n func: () => {\n el.dispatchEvent(\n new CustomEvent(`off.${self._componentNs}`, {\n detail: obj.elements.e,\n })\n )\n },\n })\n }\n }\n }\n // queue\n if (!skipQueue) {\n // off from disable/destroy\n // must be instant on destroy (e.g. overlay mobile)\n if (self.disabled) {\n Xt.frame({\n el,\n ns: `${self.ns + type}QueueAnim`,\n })\n self._queueAnim({ actionCurrent, actionOther, obj, el, type, skipSame })\n } else {\n // needs ONE raf or sequential off/on flickr (e.g. toggle inverse)\n Xt.frame({\n el,\n ns: `${self.ns + type}QueueAnim`,\n func: () => {\n self._queueAnim({ actionCurrent, actionOther, obj, el, type, skipSame })\n },\n })\n }\n // queue done\n if (!obj[type].instant && obj[type].instantType) {\n const els = obj[type].queueEls\n // only if last element\n if (el === els[els.length - 1]) {\n self._queueDone({ actionCurrent, actionOther, obj, type })\n }\n }\n }\n }\n\n /**\n * queue anim\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n */\n _queueAnim({ actionCurrent, actionOther, obj, el, type, skipSame } = {}) {\n const self = this\n const options = self.options\n // duration\n const els = obj[type].queueEls\n let duration =\n self.initial || self.disabled // off from disable/destroy\n ? false\n : Xt.animTime({ el, duration: options.duration || options[`duration${actionCurrent}`], actionCurrent })\n if (duration) {\n if (typeof duration === 'function') {\n const count = Xt.dataStorage.get(el, `${self.ns + actionCurrent}Count`) || els.findIndex(x => x === el)\n const tot = Xt.dataStorage.get(el, `${self.ns + actionCurrent}Tot`) || els.length\n duration = duration({ current: count, total: tot - 1, el, self })\n }\n }\n // fnc\n clearTimeout(Xt.dataStorage.get(el, `${self.ns + type}AnimTimeout`))\n if (!duration) {\n self._queueAnimDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n } else if (duration === 'raf') {\n Xt.frameDouble({\n el,\n ns: `${self.ns + type}QueueAnimDone`,\n func: () => {\n self._queueAnimDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n },\n })\n } else {\n Xt.dataStorage.set(\n el,\n `${self.ns + type}AnimTimeout`,\n setTimeout(() => {\n self._queueAnimDone({ actionCurrent, actionOther, obj, el, type, skipSame })\n }, duration)\n )\n }\n }\n\n /**\n * queue anim done\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n * @param {Boolean} params.skipSame If skip activation classes and events\n * @param {Boolean} params.skipQueue If skip queue\n */\n _queueAnimDone({ actionCurrent, actionOther, obj, el, type, skipSame, skipQueue = false } = {}) {\n const self = this\n // special\n if (actionCurrent === 'In') {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n // if no queueOut\n if (!self[`_queue${actionOther}`].length) {\n // reset all zIndex\n for (const type in obj) {\n self._specialZindex({ actionCurrent: actionOther, obj, type })\n }\n }\n }\n // activation\n self._activateDone({ el, type })\n // special\n self._specialCollapse({ actionCurrent, el, type, reset: true })\n self._specialScrollto({ actionCurrent, el, type, obj })\n // dispatch event\n if (!skipSame && type !== 'elementsInner' && type !== 'targetsInner') {\n // off from disable/destroy\n if (!self.disabled) {\n Xt.frame({\n el,\n ns: `${self.ns}${actionCurrent}AnimDone`,\n func: () => {\n el.dispatchEvent(\n new CustomEvent(`ondone.${self._componentNs}`, {\n detail: obj.elements.e,\n })\n )\n },\n })\n }\n }\n } else if (actionCurrent === 'Out') {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n // if no currents\n if (!self._getCurrents().length) {\n // reset all zIndex\n for (const type in obj) {\n self._specialZindex({ actionCurrent, obj, type })\n }\n }\n }\n // activation\n self._deactivateDone({ el, type })\n // special\n self._specialAppendto({ actionCurrent, el, type })\n self._specialCollapse({ actionCurrent, el, type, reset: true })\n // dispatch event\n if (!skipSame && type !== 'elementsInner' && type !== 'targetsInner') {\n // off from disable/destroy\n if (!self.disabled) {\n Xt.frame({\n el,\n ns: `${self.ns}${actionCurrent}AnimDone`,\n func: () => {\n el.dispatchEvent(\n new CustomEvent(`offdone.${self._componentNs}`, {\n detail: obj.elements.e,\n })\n )\n },\n })\n }\n }\n }\n // queue\n if (!skipQueue) {\n // queue done\n if (!obj[type].instant && !obj[type].instantType) {\n const els = obj[type].queueEls\n // only if last element\n if (el === els[els.length - 1]) {\n self._queueDone({ actionCurrent, actionOther, obj, type })\n }\n }\n }\n }\n\n /**\n * queue done\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.actionOther Other action\n * @param {Object} params.obj Queue object\n * @param {String} params.type Type of element\n */\n _queueDone({ actionCurrent, actionOther, obj, type } = {}) {\n const self = this\n // check\n if (obj[type]) {\n // type done\n obj[type].done = true\n // check done\n let done = 0\n for (const type in obj) {\n if (obj[type].done) {\n done++\n }\n }\n // all done\n if (done === Object.entries(obj).length) {\n // queue other when all done\n for (const type in obj) {\n self._queueStart({\n actionCurrent: actionOther,\n actionOther: actionCurrent,\n type,\n index: self[`_queue${actionOther}`].length - 1,\n })\n }\n // remove queue\n self[`_queue${actionCurrent}`].pop()\n // queue complete\n self._queueComplete({ actionCurrent, obj })\n }\n }\n }\n\n /**\n * logic to execute on queue complete\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Object} params.obj Queue object\n */\n _queueComplete({ actionCurrent, obj } = {}) {\n const self = this\n const options = self.options\n // logic\n if (actionCurrent === 'In') {\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n if (self.initial) {\n // fix before _initScope or slider absolute has multiple active and bugs initial calculations\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n // remove class initial\n for (const type in obj) {\n for (const el of obj[type].queueEls) {\n el.classList.remove(...self._classesInitial)\n }\n }\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n }\n // fix autostart after self.initial or it gives error on reinitialization (demos fullscreen)\n self._eventAutostart()\n // initial after autostart\n if (self.initial) {\n self.initial = false\n }\n // reset\n self._inverse = null\n },\n })\n // focusLimit\n if (options.focusLimit && !self._focusTrap) {\n const trs = self.targets.length ? self.targets : self.elements\n self._focusTrap = focusTrap.createFocusTrap(trs, options.focusTrap)\n self._focusTrap.activate()\n }\n } else if (actionCurrent === 'Out') {\n // focusLimit\n if (options.focusLimit && self._focusTrap) {\n self._focusTrap.deactivate()\n self._focusTrap = null\n }\n }\n }\n\n //\n // special\n //\n\n /**\n * zindex on activation\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n */\n _specialZindex({ actionCurrent, obj, el, type } = {}) {\n const self = this\n const options = self.options\n // fix when standalone !self.targets.length && type === 'elements'\n if (!self.targets.length && type === 'elements') {\n type = 'targets'\n }\n // set zIndex\n if (options.zIndex && options.zIndex[type]) {\n if (actionCurrent === 'In') {\n self.zIndex = self.zIndex ? self.zIndex : options.zIndex[type].start\n self.zIndex = self.zIndex + options.zIndex[type].factor\n el.style.zIndex = self.zIndex\n } else if (actionCurrent === 'Out') {\n self.zIndex = options.zIndex[type].start\n // check actionOther\n if (obj[type]) {\n for (const el of obj[type].queueEls) {\n el.style.zIndex = self.zIndex\n }\n }\n }\n }\n }\n\n /**\n * add or remove html class\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {String} params.type Type of element\n */\n _specialClassBody({ actionCurrent, type } = {}) {\n const self = this\n const options = self.options\n if (options.classBody) {\n // fix when standalone !self.targets.length && type === 'elements'\n if (type === 'targets' || (!self.targets.length && type === 'elements')) {\n if (actionCurrent === 'In') {\n // raf because only one time on route update\n Xt.frame({\n el: self.container,\n ns: `${self.ns}ClassBodyFrame`,\n func: () => {\n for (const c of options.classBody.split(' ')) {\n // checks\n Xt._classBody.add({\n c: c,\n ns: self.ns,\n })\n // class on\n const container = document.documentElement.querySelector('body')\n container.classList.add(c)\n }\n },\n })\n } else if (actionCurrent === 'Out') {\n // raf because only one time on route update\n Xt.frame({\n el: self.container,\n ns: `${self.ns}ClassBodyFrame`,\n func: () => {\n for (const c of options.classBody.split(' ')) {\n // checks\n Xt._classBody.remove({\n c: c,\n ns: self.ns,\n })\n if (!Xt._classBody.get({ c: c }).length) {\n // class off\n const container = document.documentElement.querySelector('body')\n container.classList.remove(c)\n }\n }\n },\n })\n }\n }\n }\n }\n\n /**\n * appendTo\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n */\n _specialAppendto({ actionCurrent, el, type } = {}) {\n const self = this\n const options = self.options\n if (options.appendTo) {\n // fix when standalone !self.targets.length && type === 'elements'\n if (type === 'targets' || (!self.targets.length && type === 'elements')) {\n if (actionCurrent === 'In') {\n // appendTo\n const appendToTarget = document.querySelector(options.appendTo)\n const appendOrigin = document.querySelector(`[data-xt-origin=\"${self.ns}\"]`)\n if (!appendOrigin) {\n el.before(Xt.node({ str: `<div class=\"xt-ignore hidden\" data-xt-origin=\"${self.ns}\"></div>` }))\n }\n appendToTarget.append(el)\n } else if (actionCurrent === 'Out') {\n // appendTo\n const appendOrigin = document.querySelector(`[data-xt-origin=\"${self.ns}\"]`)\n if (appendOrigin) {\n appendOrigin.before(el)\n appendOrigin.remove()\n } else {\n el.remove()\n }\n }\n }\n }\n }\n\n /**\n * scrollto\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Object} params.obj Queue object\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n */\n _specialScrollto({ actionCurrent, obj, el, type } = {}) {\n const self = this\n const options = self.options\n if (options.scrollto) {\n if (actionCurrent === 'In') {\n const scrollto = ({ el }) => {\n // using data-xt-hash or options.min or .on and scrollto should not scroll on init\n if (!self.initial || options.scrolltoInit) {\n // Xt.ready complete and raf to be right after page refresh\n const instant = self.initial\n Xt.ready({\n state: 'complete',\n func: () => {\n requestAnimationFrame(() => {\n if (instant) {\n Xt.scrolltoHashforce = true\n }\n el.dispatchEvent(new CustomEvent('scrollto.trigger.xt.scrollto'))\n })\n },\n })\n }\n }\n // check\n if (typeof options.scrollto === 'string') {\n if (type === options.scrollto) {\n scrollto({ el })\n } else if (type === 'elements' && el === obj.elements.queueEls[0]) {\n let scrolltoElement = self.container.querySelector(options.scrollto)\n scrolltoElement = scrolltoElement ?? document.querySelector(options.scrollto)\n if (scrolltoElement) {\n scrollto({ el: scrolltoElement })\n }\n }\n } else if (type === 'elements' && el === obj.elements.queueEls[0]) {\n scrollto({ el: self.container })\n }\n }\n }\n }\n\n /**\n * open or close or reset collapse\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n * @param {Boolean} reset Reset\n */\n _specialCollapse({ actionCurrent, el, type, reset = false } = {}) {\n const self = this\n const options = self.options\n if (options.collapseHeight) {\n if (actionCurrent === 'In') {\n if (options.collapseHeight === type) {\n if (reset) {\n el.style.height = 'inherit'\n el.style.maxHeight = 'none'\n el.classList.add('xt-collapse-reset')\n Xt.frameDouble({ el, ns: `${self.ns}CollapseHeightFrame` })\n } else {\n el.classList.remove('xt-collapse-reset')\n el.style.height = 'auto'\n el.style.maxHeight = 'none'\n const final = el.offsetHeight\n el.style.height = ''\n el.style.maxHeight = ''\n let initial = el.offsetHeight\n initial = initial === final ? 0 : initial\n el.style.height = `${initial}px`\n el.style.maxHeight = 'none'\n Xt.frameDouble({\n el,\n ns: `${self.ns}CollapseHeightFrame`,\n func: () => {\n el.style.height = `${final}px`\n },\n })\n }\n }\n } else if (actionCurrent === 'Out') {\n if (options.collapseHeight === type) {\n if (reset) {\n el.style.height = ''\n el.style.maxHeight = ''\n Xt.frameDouble({ el, ns: `${self.ns}CollapseHeightFrame` })\n } else {\n el.classList.remove('xt-collapse-reset')\n const current = el.offsetHeight // fix keep current off initial\n el.style.height = ''\n el.style.maxHeight = ''\n let final = el.offsetHeight\n el.style.height = 'auto'\n el.style.maxHeight = 'none'\n const initial = el.offsetHeight\n final = initial === final ? 0 : final\n el.style.height = `${current}px`\n Xt.frameDouble({\n el,\n ns: `${self.ns}CollapseHeightFrame`,\n func: () => {\n el.style.height = `${final}px`\n },\n })\n }\n }\n }\n }\n if (options.collapseWidth) {\n if (actionCurrent === 'In') {\n if (options.collapseWidth === type) {\n if (reset) {\n el.style.width = 'inherit'\n el.style.maxWidth = 'none'\n el.classList.add('xt-collapse-reset')\n Xt.frameDouble({ el, ns: `${self.ns}CollapseWidthFrame` })\n } else {\n el.classList.remove('xt-collapse-reset')\n el.style.width = 'auto'\n el.style.maxWidth = 'none'\n const final = el.offsetWidth\n el.style.width = ''\n el.style.maxWidth = ''\n let initial = el.offsetWidth\n initial = initial === final ? 0 : initial\n el.style.width = `${initial}px`\n el.style.maxWidth = 'none'\n Xt.frameDouble({\n el,\n ns: `${self.ns}CollapseWidthFrame`,\n func: () => {\n el.style.width = `${final}px`\n },\n })\n }\n }\n } else if (actionCurrent === 'Out') {\n if (options.collapseWidth === type) {\n if (reset) {\n el.style.width = ''\n el.style.maxWidth = ''\n Xt.frameDouble({ el, ns: `${self.ns}CollapseWidthFrame` })\n } else {\n el.classList.remove('xt-collapse-reset')\n const current = el.offsetWidth // fix keep current off initial\n el.style.width = ''\n el.style.maxWidth = ''\n let final = el.offsetWidth\n el.style.width = 'auto'\n el.style.maxWidth = 'none'\n const initial = el.offsetWidth\n final = initial === final ? 0 : final\n el.style.width = `${current}px`\n Xt.frameDouble({\n el,\n ns: `${self.ns}CollapseWidthFrame`,\n func: () => {\n el.style.width = `${final}px`\n },\n })\n }\n }\n }\n }\n }\n\n /**\n * add or remove close events on element\n * @param {Object} params\n * @param {String} params.actionCurrent Current action\n * @param {Node|HTMLElement|EventTarget|Window} params.el Element to be animated\n * @param {String} params.type Type of element\n * @param {Object} obj Queue object\n */\n _specialClose({ actionCurrent, el, type, obj } = {}) {\n const self = this\n const options = self.options\n if (actionCurrent === 'In') {\n // closeInside\n if (options.closeInside) {\n if (type === 'elements' || type === 'targets') {\n const closeElement = el\n const specialcloseinsideHandler = Xt.dataStorage.put(\n closeElement,\n `click/close/${self.ns}`,\n self._eventSpecialcloseinsideHandler.bind(self)\n )\n // raf because do not close when clicking things that trigger this\n requestAnimationFrame(() => {\n closeElement.removeEventListener('click', specialcloseinsideHandler)\n closeElement.addEventListener('click', specialcloseinsideHandler)\n })\n }\n }\n // closeOutside\n if (options.closeOutside) {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n const outsides = document.querySelectorAll(options.closeOutside)\n for (const outside of outsides) {\n const specialcloseoutsideHandler = Xt.dataStorage.put(\n outside,\n `mousedown/close/${self.ns}`,\n self._eventSpecialcloseoutsideHandler.bind(self)\n )\n // raf because do not close when clicking things that trigger this\n requestAnimationFrame(() => {\n outside.removeEventListener('mousedown', specialcloseoutsideHandler)\n outside.addEventListener('mousedown', specialcloseoutsideHandler)\n })\n }\n }\n }\n // closeDeep\n if (options.closeDeep) {\n // fix when standalone !self.targets.length && type === 'elements'\n if (type === 'targets' || (!self.targets.length && type === 'elements')) {\n const closeElements = el.querySelectorAll(options.closeDeep)\n for (const closeElement of closeElements) {\n const specialclosedeepHandler = Xt.dataStorage.put(\n closeElement,\n `click/close/${self.ns}`,\n self._eventSpecialclosedeepHandler.bind(self)\n )\n // raf because do not close when clicking things that trigger this\n requestAnimationFrame(() => {\n closeElement.removeEventListener('click', specialclosedeepHandler)\n closeElement.addEventListener('click', specialclosedeepHandler)\n })\n // focusable\n const specialclosedeepKeydownHandler = Xt.dataStorage.put(\n closeElement,\n `keydown/close/${self.ns}`,\n self._eventSpecialclosedeepKeydownHandler.bind(self).bind(self, { closeElement })\n )\n // raf because do not close when clicking things that trigger this\n requestAnimationFrame(() => {\n closeElement.addEventListener('keydown', specialclosedeepKeydownHandler)\n closeElement.setAttribute('tabindex', '0')\n closeElement.setAttribute('role', 'button')\n })\n }\n }\n }\n } else if (actionCurrent === 'Out') {\n // closeInside\n if (options.closeInside) {\n if (type === 'elements' || type === 'targets') {\n const closeElement = el\n const specialcloseinsideHandler = Xt.dataStorage.get(closeElement, `click/close/${self.ns}`)\n closeElement.removeEventListener('click', specialcloseinsideHandler)\n }\n }\n // closeOutside\n if (options.closeOutside) {\n // only one time and if last element\n if (type === 'elements' && el === obj.elements.queueEls[0]) {\n const closeElements = document.querySelectorAll(options.closeOutside)\n for (const closeElement of closeElements) {\n const specialcloseoutsideHandler = Xt.dataStorage.get(closeElement, `mousedown/close/${self.ns}`)\n closeElement.removeEventListener('mousedown', specialcloseoutsideHandler)\n }\n }\n }\n // closeDeep\n if (options.closeDeep) {\n // fix when standalone !self.targets.length && type === 'elements'\n if (type === 'targets' || (!self.targets.length && type === 'elements')) {\n const closeElements = el.querySelectorAll(options.closeDeep)\n for (const closeElement of closeElements) {\n const specialclosedeepHandler = Xt.dataStorage.get(closeElement, `click/close/${self.ns}`)\n closeElement.removeEventListener('click', specialclosedeepHandler)\n // focusable\n const specialclosedeepKeydownHandler = Xt.dataStorage.get(closeElement, `keydown/close/${self.ns}`)\n closeElement.removeEventListener('keydown', specialclosedeepKeydownHandler)\n closeElement.removeAttribute('tabindex')\n closeElement.removeAttribute('role')\n }\n }\n }\n }\n }\n\n /**\n * specialCloseinside handler\n * @param {Event} e\n */\n _eventSpecialcloseinsideHandler(e) {\n const self = this\n const options = self.options\n // handler\n if (e.target.matches(options.closeInside)) {\n const currents = self._getCurrents()\n for (const current of currents) {\n self._eventOff({ el: current, force: true })\n }\n }\n }\n\n /**\n * specialCloseoutside handler\n * @param {Event} e\n */\n _eventSpecialcloseoutsideHandler(e) {\n const self = this\n // handler\n if (!Xt.contains({ els: [...self.elements, ...self.targets], tr: e.target })) {\n const currents = self._getCurrents()\n for (const current of currents) {\n self._eventOff({ el: current, force: true })\n }\n }\n }\n\n /**\n * specialClosedeep handler\n * @param {Event} e\n */\n _eventSpecialclosedeepHandler(e) {\n const self = this\n // handler\n if (Xt.contains({ els: [...self.elements, ...self.targets], tr: e.target })) {\n const currents = self._getCurrents()\n for (const current of currents) {\n self._eventOff({ el: current, force: true })\n }\n }\n }\n\n /**\n * specialClosedeep keydown handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.closeElement\n * @param {Event} e\n */\n _eventSpecialclosedeepKeydownHandler({ closeElement }, e) {\n const key = e.key\n // key enter or space\n if (key === 'Enter' || key === ' ') {\n e.preventDefault()\n closeElement.dispatchEvent(new CustomEvent('click'))\n }\n }\n\n //\n // index\n //\n\n /**\n * Get next activation index\n * @param {Object} params\n * @param {Number} params.index\n * @param {Number} params.amount\n * @param {Boolean} params.loop\n * @return {Number} index\n */\n getNextIndex({ index = false, amount = 1, loop = null } = {}) {\n const self = this\n // logic\n if (index !== false) {\n index = index + amount\n } else if (self.index !== null) {\n index = self.index + amount\n } else {\n index = 0\n }\n return self.getNumIndex({ index, loop })\n }\n\n /**\n * Get next element\n * @param {Object} params\n * @param {Number} params.amount\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n getNext({ amount = 1, loop = null } = {}) {\n const self = this\n // logic\n const i = self.getNextIndex({ amount, loop })\n return self.getElementsGroups()[i]\n }\n\n /**\n * Activate next element\n * @param {Object} params\n * @param {Number} params.amount\n * @param {Boolean} params.force\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n goToNext({ amount = 1, force = false, loop = null } = {}) {\n const self = this\n // goToNum\n self._inverse = false\n const index = self.getNextIndex({ amount, loop })\n const el = self.goToNum({ index, force, loop })\n return el\n }\n\n /**\n * Get prev activation index\n * @param {Object} params\n * @param {Number} params.index\n * @param {Number} params.amount\n * @param {Boolean} params.loop\n * @return {Number} index\n */\n getPrevIndex({ index = false, amount = 1, loop = null } = {}) {\n const self = this\n // logic\n if (index !== false) {\n index = index - amount\n } else if (self.index !== null) {\n index = self.index - amount\n } else {\n index = self.getElementsGroups().length - 1\n }\n return self.getNumIndex({ index, loop })\n }\n\n /**\n * Get previous element\n * @param {Object} params\n * @param {Number} params.amount\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n getPrev({ amount = 1, loop = null } = {}) {\n const self = this\n // logic\n const i = self.getPrevIndex({ amount, loop })\n return self.getElementsGroups()[i]\n }\n\n /**\n * Activate previous element\n * @param {Object} params\n * @param {Number} params.amount\n * @param {Boolean} params.force\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n goToPrev({ amount = 1, force = false, loop = null } = {}) {\n const self = this\n // goToNum\n self._inverse = true\n const index = self.getPrevIndex({ amount, loop })\n const el = self.goToNum({ index, force, loop })\n return el\n }\n\n /**\n * Get index from number\n * @param {Object} params\n * @param {Number} params.index\n * @param {Boolean} params.loop\n * @return {Number} index\n */\n getNumIndex({ index, loop = null } = {}) {\n const self = this\n const options = self.options\n // check\n const min = 0\n const max = self.getElementsGroups().length - 1\n if (min === max) {\n // if only one\n index = null\n } else {\n if (index > max) {\n if (loop || (loop === null && (options.loop || self._wrap))) {\n index = index - max - 1\n index = index > max ? max : index // prevent overflow\n } else {\n index = null\n }\n } else if (index < min) {\n if (loop || (loop == null && (options.loop || self._wrap))) {\n index = index + max + 1\n index = index < min ? min : index // prevent overflow\n } else {\n index = null\n }\n }\n }\n // element\n return index\n }\n\n /**\n * Get element from index\n * @param {Object} params\n * @param {Number} params.index\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n getNum({ index = 1, loop = null } = {}) {\n const self = this\n // logic\n const i = self.getNumIndex({ index, loop })\n return self.getElementsGroups()[i]\n }\n\n /**\n * activate number element\n * @param {Object} params\n * @param {Number} params.index\n * @param {Boolean} params.force\n * @param {Boolean} params.loop\n * @return {Node|HTMLElement|EventTarget|Window} Element\n */\n goToNum({ index, force = false, loop = null } = {}) {\n const self = this\n // go\n const el = self.getNum({ index, loop })\n if (el) {\n self._eventOn({ el, force })\n }\n return el\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n self.container.removeAttribute(`data-${self.componentName}-disabled`)\n for (const el of self.elements) {\n el.removeAttribute(`data-${self.componentName}-disabled`)\n }\n for (const tr of self.targets) {\n tr.removeAttribute(`data-${self.componentName}-disabled`)\n }\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n const options = self.options\n if (!self.disabled) {\n self.disabled = true\n // off from disable/destroy\n // need to deactivate on disable on some components (e.g. destroy overlay mobile, matches disable)\n if (options.disableDeactivate) {\n for (const el of self.elements.filter(x => self.hasCurrent({ el: x }))) {\n self._eventOff({ el, force: true })\n }\n }\n // disable\n self.container.setAttribute(`data-${self.componentName}-disabled`, '')\n for (const el of self.elements) {\n el.setAttribute(`data-${self.componentName}-disabled`, '')\n }\n for (const tr of self.targets) {\n tr.setAttribute(`data-${self.componentName}-disabled`, '')\n }\n // jump\n if (options.jump) {\n for (const jump of self.targets) {\n jump.classList.remove('xt-jump')\n }\n }\n // intersection observer\n if (self._observer) {\n self._observer.disconnect()\n self._observer = null\n }\n // stop auto\n clearTimeout(Xt.dataStorage.get(self.container, `${self.ns}AutoTimeout`))\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // a11y\n //\n\n /**\n * init a11y\n */\n _initA11y() {\n const self = this\n const options = self.options\n // a11y\n if (options.a11y) {\n // vars\n let els = self.elements\n let trs = self.targets\n // when self mode\n if (!self.targets.length) {\n els = []\n trs = self.elements\n }\n // inside self.container\n self._hasContainer = self._mode === 'unique' || self.elements.includes(self.container) ? false : true\n // init\n self._initA11yRole({ els, trs })\n self._initA11yId({ els, trs })\n self._initA11ySetup()\n self._initA11yAuto()\n self._initA11yChange()\n self._initA11yStatus({ els })\n self._initA11yKeyboard({ els: self.elements })\n }\n }\n\n /**\n * init a11y role\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els\n * @param {Node|HTMLElement|EventTarget|Window} params.trs\n */\n _initA11yRole({ els, trs } = {}) {\n const self = this\n const options = self.options\n if (options.a11y.role) {\n let multi = false\n // aria-orientation\n if (options.a11y.vertical && self._hasContainer) {\n self.container.setAttribute('aria-orientation', 'vertical')\n }\n // role\n if (options.a11y.role === 'popup') {\n // popup\n for (const el of els) {\n el.setAttribute('aria-haspopup', true)\n }\n } else if (options.a11y.role === 'dialog') {\n // dialog\n for (const el of els) {\n el.setAttribute('aria-haspopup', 'dialog')\n }\n for (const tr of trs) {\n tr.setAttribute('role', 'dialog')\n tr.setAttribute('aria-modal', 'true')\n }\n } else if (options.a11y.role === 'tooltip') {\n // tooltip\n for (const tr of trs) {\n tr.setAttribute('role', 'tooltip')\n }\n } else if (options.a11y.role === 'carousel' && self._hasContainer) {\n // carousel\n self.container.setAttribute('role', 'group')\n self.container.setAttribute('aria-roledescription', 'carousel')\n for (const tr of trs) {\n tr.setAttribute('role', 'group')\n tr.setAttribute('aria-roledescription', 'slide')\n }\n } else if (options.a11y.role === 'tablist' && self._hasContainer && self.targets.length) {\n // tab\n multi = true\n self.container.setAttribute('role', 'tablist')\n for (const el of els) {\n el.setAttribute('role', 'tab')\n }\n for (const tr of trs) {\n tr.setAttribute('role', 'tabpanel')\n }\n } else if (options.a11y.role === 'menu' && self._hasContainer && self.targets.length) {\n // menu\n self.container.setAttribute('role', 'menu')\n for (const el of els) {\n el.setAttribute('role', 'menuitem')\n }\n for (const tr of trs) {\n tr.setAttribute('role', 'menu')\n }\n } else if (options.a11y.role === 'listbox' && self._hasContainer && self.targets.length) {\n // listbox\n multi = true\n self.container.setAttribute('role', 'listbox')\n for (const el of els) {\n el.setAttribute('role', 'option')\n }\n }\n // aria-multiselectable\n if (multi && options.max > 1) {\n self.container.setAttribute('aria-multiselectable', 'true')\n }\n }\n }\n\n /**\n * init a11y id\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els\n * @param {Node|HTMLElement|EventTarget|Window} params.trs\n */\n _initA11yId({ els, trs } = {}) {\n const self = this\n const options = self.options\n // not when self mode (no targets)\n if (self.targets.length) {\n // id\n if (options.a11y.labelElements || options.a11y.controls) {\n // targets\n for (const tr of trs) {\n const id = tr.getAttribute('id')\n if (!id) {\n tr.setAttribute('id', Xt.uniqueId())\n }\n }\n }\n if (options.a11y.labelTargets) {\n // elements\n for (const el of els) {\n const id = el.getAttribute('id')\n if (!id) {\n el.setAttribute('id', Xt.uniqueId())\n }\n }\n }\n }\n }\n\n /**\n * init a11y setup\n */\n _initA11ySetup() {\n const self = this\n const options = self.options\n // not when self mode (no targets)\n if (self.targets.length) {\n // aria-labelledby and aria-controls\n if (options.a11y.labelElements || options.a11y.controls) {\n for (const el of self.elements) {\n const trs = self.getTargets({ el })\n let str = ''\n for (const tr of trs) {\n str += `${tr.getAttribute('id')} `\n }\n if (options.a11y.labelElements) {\n el.setAttribute('aria-labelledby', str.trim())\n el.removeAttribute('aria-label')\n }\n if (options.a11y.controls) {\n el.setAttribute('aria-controls', str.trim())\n }\n }\n }\n // aria-labelledby\n if (options.a11y.labelTargets) {\n for (const tr of self.targets) {\n const els = self.getElements({ el: tr })\n let str = ''\n for (const el of els) {\n str += `${el.getAttribute('id')} `\n }\n tr.setAttribute('aria-labelledby', str.trim())\n tr.removeAttribute('aria-label')\n }\n }\n }\n }\n\n /**\n * init a11y change\n */\n _initA11yChange() {\n const self = this\n const options = self.options\n // aria-selected and aria-expanded\n if (options.a11y.selected || options.a11y.expanded) {\n if (options.a11y.expanded) {\n for (const tr of self.targets) {\n tr.setAttribute('aria-expanded', 'false')\n }\n }\n for (const el of self.elements) {\n if (options.a11y.selected && self._hasContainer && self.targets.length) {\n el.setAttribute('aria-selected', 'false')\n }\n // on\n const onHandler = Xt.dataStorage.put(\n el,\n `on.${self._componentNs}/ariaselected/${self.ns}`,\n self._eventA11yChangeOn.bind(self).bind(self, { el })\n )\n el.addEventListener(`on.${self._componentNs}`, onHandler)\n // off\n const offHandler = Xt.dataStorage.put(\n el,\n `off.${self._componentNs}/ariaselected/${self.ns}`,\n self._eventA11yChangeOff.bind(self).bind(self, { el })\n )\n el.addEventListener(`off.${self._componentNs}`, offHandler)\n }\n }\n }\n\n /**\n * event a11y change on\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventA11yChangeOn({ el } = {}) {\n const self = this\n const options = self.options\n // aria-expanded\n if (options.a11y.expanded) {\n const trs = self.getTargets({ el })\n for (const tr of trs) {\n tr.setAttribute('aria-expanded', 'true')\n }\n }\n // aria-selected\n if (options.a11y.selected && self._hasContainer && self.targets.length) {\n el.setAttribute('aria-selected', 'true')\n }\n }\n\n /**\n * event a11y change off\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventA11yChangeOff({ el } = {}) {\n const self = this\n const options = self.options\n // aria-expanded\n if (options.a11y.expanded) {\n const trs = self.getTargets({ el })\n for (const tr of trs) {\n tr.setAttribute('aria-expanded', 'false')\n }\n }\n // aria-selected\n if (options.a11y.selected && self._hasContainer && self.targets.length) {\n el.setAttribute('aria-selected', 'false')\n }\n }\n\n /**\n * init a11y auto\n */\n _initA11yAuto() {\n const self = this\n const options = self.options\n // aria-live\n if (options.auto && options.auto.time) {\n if (options.a11y.live) {\n const container = self.container\n container.setAttribute('aria-live', 'polite')\n // on\n const onHandler = Xt.dataStorage.put(\n container,\n `autostart.${self._componentNs}/arialive/${self.ns}`,\n self._eventA11yAutostart.bind(self).bind(self, { container })\n )\n container.addEventListener(`autostart.${self._componentNs}`, onHandler)\n // off\n const offHandler = Xt.dataStorage.put(\n container,\n `autostop.${self._componentNs}/arialive/${self.ns}`,\n self._eventA11yAutostop.bind(self).bind(self, { container })\n )\n container.addEventListener(`autostop.${self._componentNs}`, offHandler)\n }\n }\n }\n\n /**\n * event a11y autostart\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.container\n */\n _eventA11yAutostart({ container } = {}) {\n // aria-live\n container.setAttribute('aria-live', 'off')\n }\n\n /**\n * event a11y autostop\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.container\n */\n _eventA11yAutostop({ container } = {}) {\n // aria-live\n container.setAttribute('aria-live', 'polite')\n }\n\n /**\n * init a11y status\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els\n */\n _initA11yStatus({ els } = {}) {\n const self = this\n const options = self.options\n // aria-disabled\n if (options.a11y.disabled) {\n const container = self.container\n // status\n const statusHandler = Xt.dataStorage.put(\n container,\n `status.${self._componentNs}/ariastatus/${self.ns}`,\n self._eventA11yStatus.bind(self).bind(self, { els })\n )\n container.addEventListener(`status.${self._componentNs}`, statusHandler)\n }\n }\n\n /**\n * event a11y status\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els\n */\n _eventA11yStatus({ els } = {}) {\n const self = this\n // aria-disabled\n for (const el of els) {\n if (self.disabled) {\n el.setAttribute('aria-disabled', 'true')\n } else {\n el.removeAttribute('aria-disabled')\n }\n }\n }\n\n /**\n * init a11y keyboard\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.els\n */\n _initA11yKeyboard({ els } = {}) {\n const self = this\n const options = self.options\n // keyboard\n if (options.a11y.keyboard) {\n for (const el of els) {\n // on\n const onHandler = Xt.dataStorage.put(\n el,\n `on.${self._componentNs}/ariakeyboard/${self.ns}`,\n self._eventA11yOn.bind(self).bind(self, { el })\n )\n el.addEventListener(`on.${self._componentNs}`, onHandler)\n // off\n const offHandler = Xt.dataStorage.put(\n el,\n `off.${self._componentNs}/ariakeyboard/${self.ns}`,\n self._eventA11yOff.bind(self).bind(self, { el })\n )\n el.addEventListener(`off.${self._componentNs}`, offHandler)\n }\n }\n }\n\n /**\n * event a11y on\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventA11yOn({ el } = {}) {\n const self = this\n const options = self.options\n // keydown\n const keydownHandler = Xt.dataStorage.put(el, `keydown/ariakeyboard/${self.ns}`, self._eventA11yKeydown.bind(self))\n el.addEventListener('keydown', keydownHandler, { passive: false })\n // documentKeydown\n if (options.a11y.role === 'popup' || options.a11y.role === 'dialog' || options.a11y.items) {\n const documentKeydownHandler = Xt.dataStorage.put(\n document,\n `keydown/ariakeyboard/document/${self.ns}`,\n self._eventA11yDocumentKeydown.bind(self).bind(self, { el })\n )\n document.removeEventListener('keydown', documentKeydownHandler)\n document.addEventListener('keydown', documentKeydownHandler)\n }\n }\n\n /**\n * event a11y off\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n */\n _eventA11yOff({ el } = {}) {\n const self = this\n // keydown\n const keydownHandler = Xt.dataStorage.get(el, `keydown/ariakeyboard/${self.ns}`)\n el.removeEventListener('keydown', keydownHandler)\n // documentKeydown\n const documentKeydownHandler = Xt.dataStorage.get(el, `keydown/ariakeyboard/document/${self.ns}`)\n document.removeEventListener('keydown', documentKeydownHandler)\n }\n\n /**\n * event a11y keydown\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventA11yKeydown(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n const key = e.key\n const prevKey = options.a11y.vertical ? 'ArrowUp' : 'ArrowLeft'\n const nextKey = options.a11y.vertical ? 'ArrowDown' : 'ArrowRight'\n // navigate elements\n let el\n if (options.a11y.vertical) {\n if (key === prevKey) {\n el = self.getPrev()\n } else if (key === nextKey) {\n el = self.getNext()\n }\n } else {\n if (key === prevKey) {\n el = self.getPrev()\n } else if (key === nextKey) {\n el = self.getNext()\n }\n }\n if (el) {\n // activation\n self._eventOn({ el, focus: true })\n // prevent page scroll\n e.preventDefault()\n return\n }\n }\n\n /**\n * event a11y document keydown\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el\n * @param {Event} e\n */\n _eventA11yDocumentKeydown({ el } = {}, e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n const key = e.key\n const prevKey = options.a11y.vertical ? 'ArrowLeft' : 'ArrowUp'\n const nextKey = options.a11y.vertical ? 'ArrowRight' : 'ArrowDown'\n // Escape\n if (key === 'Escape') {\n if (options.a11y.role === 'popup' || options.a11y.role === 'dialog') {\n // activation\n self._eventOff({ el, focus: true })\n return\n }\n }\n // navigate items\n if (options.a11y.items) {\n let item\n const items = []\n const trs = self.targets.filter(x => self.hasCurrent({ el: x }))\n for (const tr of trs) {\n items.push(...tr.querySelectorAll(options.a11y.items))\n }\n if (items.length) {\n const current = items.indexOf(document.activeElement)\n if (key === prevKey) {\n if (current === -1) {\n item = items[items.length - 1]\n } else {\n const prev = (current - 1 + items.length) % items.length\n item = items[prev]\n }\n // prevent page scroll\n e.preventDefault()\n } else if (key === nextKey) {\n if (current === -1) {\n item = items[0]\n } else {\n const next = (current + 1) % items.length\n item = items[next]\n }\n // prevent page scroll\n e.preventDefault()\n } else {\n self._search = self._search + e.key.toLowerCase()\n const found = items.filter(x => x.innerText?.toLowerCase().startsWith(self._search))\n if (found.length) {\n item = found[0]\n }\n // clear\n clearTimeout(Xt.dataStorage.get(document, `${self.ns}SearchTimeout`))\n Xt.dataStorage.set(\n document,\n `${self.ns}SearchTimeout`,\n setTimeout(() => {\n self._search = ''\n }, 500)\n )\n }\n if (item) {\n // focus\n item.focus()\n return\n }\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * Reinit component and save currents as initial\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n */\n reinit({ save = true } = {}) {\n const self = this\n const options = self.options\n // need to reset appendto\n if (options.disableDeactivate) {\n for (const tr of self.targets.filter(x => self.hasCurrent({ el: x }))) {\n self._specialAppendto({ actionCurrent: 'Out', el: tr, type: 'targets' })\n }\n }\n // reinit\n self._initLogic({ save })\n }\n\n /**\n * restart\n */\n restart() {\n const self = this\n // restart\n self._initStart()\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`restart.${self._componentNs}`))\n }\n\n /**\n * add namespace\n */\n _addNamespace() {\n const self = this\n // xtNamespace linked components\n if (self._mode === 'unique') {\n const arr = Xt.dataStorage.get(self.ns, 'xtNamespace') ?? []\n if (!arr.includes(self)) {\n arr.push(self)\n Xt.dataStorage.set(self.ns, 'xtNamespace', arr)\n }\n }\n }\n\n /**\n * remove namespace\n */\n _removeNamespace() {\n const self = this\n // xtNamespace linked components\n if (self._mode === 'unique') {\n let arr = Xt.dataStorage.get(self.ns, 'xtNamespace')\n if (arr) {\n arr = arr.filter(x => x !== self)\n Xt.dataStorage.set(self.ns, 'xtNamespace', arr)\n }\n }\n }\n\n /**\n * removeEvents\n */\n _removeEvents() {\n const self = this\n // remove internal events on self._destroyElements\n for (const el of self._destroyElements) {\n const storages = Xt.dataStorage.getAll(el)\n if (storages) {\n for (const [key] of storages) {\n if (key) {\n if (key.endsWith(self.ns)) {\n const handler = Xt.dataStorage.get(el, key)\n if (typeof handler === 'function') {\n const events = key.split('/')[0].split(' ')\n for (const event of events) {\n el.removeEventListener(event, handler)\n el.removeEventListener(event, handler, true) // useCapture event propagation\n }\n // do not remove key because they are not overrided with Xt.dataStorage.put, or they trigger multiple times Xt.dataStorage.remove(element, key)\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * destroy\n * @param {Object} params\n * @param {Boolean} params.weak Do not destroy component\n */\n destroy({ weak = false } = {}) {\n const self = this\n // disable\n self.disable({ skipEvent: true })\n // remove matches\n Xt._removeMatches({ self, optionsInitial: self._optionsInitial })\n // remove events\n self._removeEvents()\n // namespace\n self._removeNamespace()\n // weak\n if (!weak) {\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n }\n\n //\n}\n\n//\n// options\n//\n\nToggle.componentName = 'xt-toggle'\nToggle.optionsDefaultSuper = {\n debug: false,\n // element\n elements: '[data-xt-toggle-element]',\n targets: '[data-xt-toggle-target]',\n elementsInner: false,\n targetsInner: false,\n exclude: false,\n // class\n class: 'on',\n classIn: 'in',\n classOut: 'out',\n classDone: 'done',\n classInitial: 'initial',\n classBefore: 'dir-before',\n classAfter: 'dir-after',\n classSkip: false,\n hash: 'data-xt-hash',\n groupSeparator: ',',\n groupElements: true,\n // quantity\n min: 0,\n max: 1,\n // event\n on: 'click',\n off: 'click',\n mouseParent: false,\n eventLimit: '.xt-event-limit',\n closeDeep: false,\n closeInside: false,\n closeOutside: false,\n preventEvent: false,\n // timing\n queue: {\n elements: false,\n targets: true,\n elementsInner: false,\n targetsInner: true,\n },\n delay: false,\n delayIn: false,\n delayOut: false,\n duration: false,\n durationIn: false,\n durationOut: false,\n // auto\n auto: {\n time: false,\n initial: true,\n step: 1,\n inverse: false,\n pause: 'a, button',\n loop: true,\n },\n // other\n disableDeactivate: false,\n scrollto: false,\n scrolltoInit: false,\n matches: false,\n disabled: false,\n visibleReinit: false,\n loop: false,\n jump: false,\n navigation: false,\n appendTo: false,\n classBody: false,\n closeauto: false,\n openauto: false,\n mediaLoaded: false,\n mediaLoadedReinit: false,\n zIndex: false,\n focusLimit: false,\n focusTrap: {\n initialFocus: false,\n preventScroll: true,\n allowOutsideClick: true,\n fallbackFocus: 'body', // needed to prevent error on deactivation sometimes\n },\n collapseHeight: false,\n collapseWidth: false,\n a11y: {\n role: false,\n labelElements: false,\n labelTargets: true,\n controls: true,\n selected: false,\n expanded: false,\n live: true,\n disabled: true,\n keyboard: true,\n vertical: false,\n items: false,\n },\n}\n\n//\n// export\n//\n\nXt.Toggle = Toggle\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Toggle.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Toggle.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Toggle(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport './toggle.mjs'\nimport JSON5 from 'json5'\nimport { createPopper } from '@popperjs/core'\nXt.JSON5 = JSON5\nXt.createPopper = createPopper\n\n/**\n * Drop\n */\nclass Drop extends Xt.Toggle {\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n super(object, optionsCustom)\n }\n\n //\n // event util\n //\n\n /**\n * activate element\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be activated\n * @param {String} params.type Type of element\n */\n _activate({ el, type } = {}) {\n super._activate({ el, type })\n const self = this\n const options = self.options\n // popperjs\n if (options.popperjs) {\n if (type === 'targets') {\n // instant\n el.style.transition = 'none'\n requestAnimationFrame(() => {\n el.style.transition = ''\n })\n // popperjs\n const element = self.getElements({ el })[0]\n const popperEl = options.positionInner ? element.querySelector(options.positionInner) ?? element : element\n // fix element and target must be visible\n if (Xt.visible({ el: popperEl }) && Xt.visible({ el })) {\n const arrow = el.querySelector(':scope > .xt-arrow')\n const popperOptionsDefault = {\n placement: el.getAttribute('data-xt-position') || options.position,\n strategy: options.strategy,\n resize: false,\n modifiers: [\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n },\n },\n {\n name: 'preventOverflow',\n options: {\n padding: options.spaceOverflow,\n },\n },\n {\n name: 'flip',\n options: {\n padding: options.spaceFlip,\n },\n },\n ],\n }\n if (arrow) {\n popperOptionsDefault.modifiers.push({\n name: 'arrow',\n options: {\n element: arrow,\n padding: options.spaceArrow === false ? arrow.getBoundingClientRect().height / 2 : options.spaceArrow,\n },\n })\n }\n // inset\n if (options.inset) {\n const inset = {\n name: 'offset',\n options: {\n offset: ({ placement, popper }) => {\n if (placement.search('left') !== -1 || placement.search('right') !== -1) {\n return [0, -popper.width]\n }\n if (placement.search('top') !== -1 || placement.search('bottom') !== -1) {\n return [0, -popper.height]\n }\n return []\n },\n },\n }\n popperOptionsDefault.modifiers.push(inset)\n el.setAttribute('data-popper-inset', 'true')\n } else {\n el.removeAttribute('data-popper-inset', 'true')\n }\n const popperOptions = Xt.merge([popperOptionsDefault, options.popperjs])\n // init\n let popperInstance = Xt.dataStorage.get(el, 'PopperInstance')\n if (popperInstance) {\n popperInstance.setOptions(popperOptions)\n } else {\n popperInstance = createPopper(popperEl, el, popperOptions)\n Xt.dataStorage.set(el, 'PopperInstance', popperInstance)\n }\n // fix recalc position with new css depending on position\n requestAnimationFrame(() => {\n popperInstance.update()\n })\n }\n }\n }\n }\n\n //\n}\n\n//\n// options\n//\n\nDrop.componentName = 'xt-drop'\nDrop.optionsDefault = {\n // element\n elements: '[data-xt-drop-element]',\n targets: '[data-xt-drop-target]',\n // quantity\n min: 0,\n max: 1,\n // event\n on: 'click',\n off: 'click',\n mouseParent: false,\n eventLimit: '.xt-event-limit, .xt-drop',\n closeauto: true,\n openauto: false,\n closeDeep: '.xt-dismiss',\n closeInside: '.xt-backdrop',\n closeOutside: 'body',\n preventEvent: false,\n // timing\n queue: {\n elements: false,\n targets: true,\n elementsInner: false,\n targetsInner: true,\n },\n // other\n disableDeactivate: true,\n position: 'bottom-start',\n inset: false,\n positionInner: false,\n strategy: 'absolute',\n spaceOverflow: 15,\n spaceFlip: 15,\n spaceArrow: false,\n popperjs: true,\n zIndex: {\n targets: {\n start: 400, // same as options.zIndex.targets.start\n factor: -1,\n },\n },\n a11y: {\n role: 'popup',\n labelElements: false,\n labelTargets: false,\n controls: true,\n selected: false,\n expanded: true,\n live: true,\n disabled: true,\n keyboard: true,\n vertical: false,\n items: 'a, button',\n },\n}\n\n//\n// export\n//\n\nXt.Drop = Drop\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Drop.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Drop.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Drop(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\n\nif (typeof window !== 'undefined') {\n /**\n * checks labels .on\n */\n\n Xt.mount({\n matches: 'label input[type=\"checkbox\"], label input[type=\"radio\"]',\n mount: ({ ref }) => {\n // vars\n\n const name = ref.getAttribute('name')\n const form = ref.form\n const inputs = document.querySelectorAll(`[name=\"${name}\"]`)\n\n // change\n\n const toggle = input => {\n const label = input.closest('label')\n if (input.checked) {\n Xt.on({ el: label })\n } else {\n Xt.off({ el: label })\n }\n }\n\n const change = () => {\n // fix execute after activation/deactivation because sometimes component toggle is initialized after this javascript\n requestAnimationFrame(() => {\n for (const input of inputs) {\n toggle(input)\n }\n })\n }\n\n ref.addEventListener('change', change)\n if (form) {\n form.addEventListener('reset', change)\n }\n\n if (ref.checked) {\n change()\n }\n },\n })\n\n /**\n * Validation\n */\n\n Xt.mount({\n matches: 'form:not([novalidate])',\n mount: ({ ref }) => {\n // vars\n\n const items = ref.elements\n\n // valid\n\n const change = e => {\n const item = e.target\n if (item.dataset.xtValidate === 'true') {\n item.classList.add('valid-submit')\n item.classList.remove('invalid-submit')\n item.removeAttribute('aria-invalid')\n item.checkValidity()\n }\n }\n\n for (const item of items) {\n item.addEventListener('input', change)\n item.addEventListener('change', change)\n }\n\n // invalid\n\n const scroll = () => {\n window.scrollTo(window.scrollX, window.scrollY - Xt.innerHeight * Xt.formScrollWindowFactor)\n }\n\n const invalid = e => {\n const item = e.target\n item.classList.remove('valid-submit')\n item.classList.add('invalid-submit')\n item.setAttribute('aria-invalid', true)\n item.dataset.xtValidate = 'true'\n // scroll to views\n if (Xt.formScrollWindowFactor) {\n addEventListener('scroll', scroll, { once: true })\n }\n }\n\n const submit = () => {\n for (const item of items) {\n delete item.dataset.xtValidate\n }\n }\n\n for (const item of items) {\n item.addEventListener('invalid', invalid)\n item.addEventListener('submit', submit)\n }\n\n // unmount\n\n return () => {\n removeEventListener('scroll', scroll)\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\n/* global google MarkerClusterer */\nimport { Xt } from './xt.mjs'\n\n/**\n * Googlelocator\n */\nclass Googlelocator {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n _locateCache\n _predictionCache\n _animatingLoc\n componentName\n ns\n options\n initial\n disabled = false\n container\n locations\n loaderElement\n itemsTemplate\n itemsContainer\n resultElement\n foundElement\n mapElement\n map\n info\n cluster\n searchInput\n search\n searchBtn\n filters\n position\n viewport\n radius\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n self.loaderElement = self.container.querySelector(options.elements.loader)\n self.itemsTemplate = self.container.querySelector(options.elements.itemsTemplate)\n self.itemsContainer = self.container.querySelector(options.elements.itemsContainer)\n self.foundElement = self.container.querySelector(options.elements.resultsFound)\n // init\n self.mapElement = self.container.querySelector(options.elements.map)\n self.map = new google.maps.Map(self.mapElement, options.map)\n self.searchInput = self.container.querySelector(options.elements.searchInput)\n self.search = new google.maps.places.Autocomplete(self.searchInput, self.options.autocompleteOptions)\n const searchHandler = Xt.dataStorage.put(self.searchInput, `keypress/${self.ns}`, self._searchSubmit.bind(self))\n self.searchInput.addEventListener('keypress', searchHandler)\n // submit triggers places autocomplete\n self.searchBtn = self.container.querySelector(options.elements.searchBtn)\n const submitHandler = Xt.dataStorage.put(self.searchBtn, `click/${self.ns}`, self._searchClick.bind(self))\n self.searchBtn.addEventListener('click', submitHandler)\n // minimum zoom\n if (options.map.zoomMin) {\n google.maps.event.addListener(self.map, 'zoom_changed', () => {\n google.maps.event.addListener(self.map, 'bounds_changed', () => {\n if (self.map.getZoom() > options.map.zoomMin) {\n self.map.setZoom(options.map.zoomMin)\n }\n })\n })\n }\n // search place\n google.maps.event.addListener(self.search, 'place_changed', self._placeChanged.bind(self))\n // submitCurrent\n if (options.elements.repeatBtn) {\n self.repeatElement = self.container.querySelector(options.elements.repeatBtn)\n if (self.repeatElement) {\n const repeatHandler = Xt.dataStorage.put(self.repeatElement, `click/${self.ns}`, self._submitCurrent.bind(self))\n self.repeatElement.addEventListener('click', repeatHandler)\n }\n }\n // locate\n if (options.elements.locateBtn) {\n self.locateElement = self.container.querySelector(options.elements.locateBtn)\n if (self.locateElement) {\n if (location.protocol === 'https:') {\n if (navigator.geolocation) {\n if (options.initialLocate) {\n self._locate({ initial: true })\n }\n const locateHandler = Xt.dataStorage.put(self.locateElement, `click/${self.ns}`, self._locate.bind(self))\n self.locateElement.addEventListener('click', locateHandler)\n } else {\n self.locateElement.style.display = 'none'\n }\n } else {\n self.locateElement.style.display = 'none'\n }\n }\n }\n // initial\n self._initStart()\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n if (options.initialSearch) {\n google.maps.event.addListenerOnce(self.map, 'idle', () => {\n self.map.setCenter(options.map.center)\n self.map.setZoom(options.map.zoom)\n self._submitCurrent({ empty: true })\n })\n }\n }\n\n //\n // methods\n //\n\n /**\n * placeChanged\n */\n _placeChanged() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // search place\n let place = self.search.getPlace()\n if (place && place.name && place.name !== '') {\n if (place.geometry) {\n // place\n self.position = place.geometry.location\n self.viewport = place.geometry.viewport\n self.radius = options.searchRadius\n self._submit()\n return\n }\n }\n // locate prediction\n if (self._locateCache && self._locateCache.value === self.searchInput.value) {\n self.position = self._locateCache.position\n self.viewport = null\n self.radius = options.searchRadius\n self._submit()\n return\n }\n // cached prediction\n if (self._predictionCache && self._predictionCache.value === self.searchInput.value) {\n self.position = self._predictionCache.position\n self.viewport = self._predictionCache.viewport\n self.radius = options.searchRadius\n self._submit()\n return\n }\n // new prediction\n new google.maps.places.AutocompleteService().getPlacePredictions(\n { input: self.searchInput.value, ...self.options.autocompleteServiceOptions },\n results => {\n if (results && results.length) {\n const placesPreview = document.createElement('div')\n placesPreview.classList.add('hidden')\n new google.maps.places.PlacesService(placesPreview).getDetails(\n { reference: results[0].reference },\n results => {\n place = results\n self.searchInput.value = place.formatted_address\n self.position = place.geometry.location\n self.viewport = place.geometry.viewport\n self.radius = options.searchRadius\n self._predictionCache = {\n value: self.searchInput.value,\n position: self.position,\n viewport: self.viewport,\n }\n self._submit()\n placesPreview.remove()\n }\n )\n } else {\n self.locations = []\n self._populateItems()\n self.container.classList.add('noplace')\n self.container.classList.remove('empty')\n self.container.classList.remove('found')\n self.container.classList.remove('error')\n }\n }\n )\n }\n\n /**\n * searchSubmit\n * @param {Event} e\n */\n _searchSubmit(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // on enter\n const key = e.key\n if (key === 'Enter') {\n // prevent form submit\n e.preventDefault()\n // reset map and submit\n if (self.searchInput.value === '') {\n self.map.setCenter(options.map.center)\n self.map.setZoom(options.map.zoom)\n self._submitCurrent({ empty: true })\n }\n }\n }\n\n /**\n * searchClick\n * @param {Event} e\n */\n _searchClick(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // prevent form submit\n e.preventDefault()\n // reset map and submit\n if (self.searchInput.value === '') {\n self.map.setCenter(options.map.center)\n self.map.setZoom(options.map.zoom)\n self._submitCurrent({ empty: true })\n } else {\n // submit triggers places autocomplete\n google.maps.event.trigger(self.search, 'place_changed')\n }\n }\n\n /**\n * submit\n */\n _submit() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // fix .getBounds not ready\n if (!self.map.getBounds()) {\n google.maps.event.addListenerOnce(self.map, 'bounds_changed', () => {\n self._submit()\n })\n return false\n }\n // filter\n self.filters = self.container.querySelectorAll(options.elements.filter)\n // markers\n self.locations = []\n let index = 0\n const markers = options.markers\n const bounds = new google.maps.LatLngBounds()\n if (options.infoWindow) {\n self.info = new google.maps.InfoWindow(options.infoWindow)\n }\n for (const marker of markers) {\n if (!self.filters.length || self._filterMarker({ marker })) {\n const latLng = new google.maps.LatLng(\n options.formatData.lat ? options.formatData.lat(self, marker) : marker.lat,\n options.formatData.lng ? options.formatData.lng(self, marker) : marker.lng\n )\n const distance = google.maps.geometry.spherical.computeDistanceBetween(self.position, latLng)\n if (\n (!self.radius && !self.viewport) ||\n (self.radius && distance <= self.radius) ||\n (self.viewport && self.viewport.contains(latLng))\n ) {\n const loc = new google.maps.Marker({\n map: self.map,\n position: latLng,\n title: marker.name,\n icon: marker.icon || options.map.icon,\n animation: marker.animation || options.map.animation,\n distance: distance,\n marker: marker,\n index: index,\n })\n bounds.extend(latLng)\n self.locations.push(loc)\n loc.addListener('click', () => {\n self._populateInfo({ loc, type: 'marker' })\n })\n index++\n }\n }\n }\n // assign index before sort\n for (const [i, loc] of self.locations.entries()) {\n loc.index = i\n }\n // order locations\n options.formatData.sort(self)\n // populate items after order\n self._populateItems()\n // markers\n if (options.map.cluster) {\n if (self.cluster) {\n self.cluster.clearMarkers()\n }\n self.cluster = new MarkerClusterer(self.map, self.locations, options.map.cluster)\n }\n // populate\n if (self.locations.length) {\n self.container.classList.remove('noplace')\n self.container.classList.remove('empty')\n self.container.classList.add('found')\n self.container.classList.remove('error')\n if (self.foundElement) {\n self.foundElement.innerHTML = self.locations.length\n }\n // map\n self.map.fitBounds(bounds)\n self.map.panToBounds(bounds)\n } else {\n self.container.classList.remove('noplace')\n self.container.classList.add('empty')\n self.container.classList.remove('found')\n self.container.classList.remove('error')\n }\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug('xt-googlelocator locations', self.locations)\n }\n // change\n Xt.frame({\n el: self.container,\n ns: `${self.ns}Change`,\n func: () => {\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`change.${self._componentNs}`))\n },\n })\n }\n\n /**\n * populateItems\n */\n _populateItems() {\n const self = this\n // remove old\n const removes = self.container.querySelectorAll('.xt-googlelocator-clone')\n for (const remove of removes) {\n remove.remove()\n }\n // populateItem\n for (const loc of self.locations) {\n self._populateItem({ loc })\n }\n }\n\n /**\n * filterMarker\n * @param {Object} params\n * @param {Object} params.marker\n */\n _filterMarker({ marker } = {}) {\n const self = this\n const options = self.options\n // filter\n return options.formatData.filter(self, marker, self.filters)\n }\n\n /**\n * populateItem\n * @param {Object} params\n * @param {Object} params.loc\n */\n _populateItem({ loc } = {}) {\n const self = this\n const options = self.options\n // clone\n let cloned = document.createElement('div')\n cloned.innerHTML = Xt.sanitize(self.itemsTemplate.innerHTML)\n cloned = cloned.querySelector(':scope > *')\n cloned.classList.add('xt-googlelocator-clone')\n cloned.setAttribute('data-xt-index', loc.index.toString())\n // append clone\n self.itemsContainer.append(cloned)\n // populate clone\n const els = cloned.querySelectorAll('[data-xt-populate]')\n for (const el of els) {\n const func = options.formatData[el.getAttribute('data-xt-populate')]\n if (func) {\n func(self, loc, el)\n }\n }\n // info\n cloned.addEventListener('click', () => {\n self._populateInfo({ loc, type: 'result' })\n })\n }\n\n /**\n * populateInfo\n * @param {Object} params\n * @param {Object} params.loc\n * @param {String} params.type\n */\n _populateInfo({ loc, type } = {}) {\n const self = this\n const options = self.options\n // stop animation\n if (self._animatingLoc) {\n self._animatingLoc.setAnimation(null)\n self._animatingLoc = null\n }\n // animation\n const anim =\n type === 'marker'\n ? options.events.animateMarkerClick\n : type === 'result'\n ? options.events.animateMarkerResultClick\n : null\n if (anim) {\n loc.setAnimation(anim)\n self._animatingLoc = loc\n }\n // activation\n const item = self.itemsContainer.querySelector(`[data-xt-index=\"${loc.index}\"]`)\n const old = self.itemsContainer.querySelector('[data-xt-index].on')\n if (old) {\n Xt.off({ el: old })\n }\n if (type === 'marker') {\n if (item) {\n item.focus()\n Xt.on({ el: item })\n }\n }\n // infowindow\n if (options.infoWindow) {\n const info =\n type === 'marker'\n ? options.events.infoWindowMarkerClick\n : type === 'result'\n ? options.events.infoWindowMarkerResultClick\n : null\n if (info) {\n if (item) {\n const content = options.formatData.info(self, loc, item)\n if (content) {\n self.info.setContent(content)\n self.info.open(self.map, loc)\n }\n }\n } else {\n self.info.close(self.map)\n }\n }\n }\n\n /**\n * submitCurrent\n * @param {Object} params\n * @param {Boolean} params.empty\n */\n _submitCurrent({ empty = false } = {}) {\n const self = this\n const options = self.options\n // position\n self.searchInput.value = ''\n self.position = self.map.getCenter()\n self.viewport = null\n if (!empty || options.seachMapBounds) {\n self.radius = google.maps.geometry.spherical.computeDistanceBetween(\n self.position,\n self.map.getBounds().getNorthEast()\n )\n }\n self._submit()\n }\n\n /**\n * locate\n * @param {Object} params\n * @param {Boolean} params.initial\n */\n _locate({ initial = false } = {}) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // loader\n if (!initial) {\n self._loaderShow()\n }\n // locate\n window.navigator.geolocation.getCurrentPosition(self._locateSuccess.bind(self), self._locateError.bind(self))\n }\n\n /**\n * locateSuccess\n * @param {Object} pos\n */\n _locateSuccess(pos) {\n const self = this\n const options = self.options\n // loader\n self._loaderHide()\n // position\n self.searchInput.value = options.locateText\n self.position = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude)\n self.viewport = null\n self.radius = options.searchRadius\n self._locateCache = {\n value: self.searchInput.value,\n position: self.position,\n }\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug('xt-googlelocator locate', pos, self.position)\n }\n // submit on zoom only one time\n self.map.setCenter(self.position)\n self._submit()\n }\n\n /**\n * locateError\n * @param {String} error\n */\n _locateError(error) {\n const self = this\n // loader\n self._loaderHide()\n // error\n console.error('Error: Xt.Googlelocator locate error', error)\n }\n\n /**\n * loaderShow\n */\n _loaderShow() {\n const self = this\n Xt.on({ el: self.loaderElement })\n }\n\n /**\n * loaderHide\n */\n _loaderHide() {\n const self = this\n Xt.off({ el: self.loaderElement })\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n const options = self.options\n // events\n const searchHandler = Xt.dataStorage.get(self.searchInput, `keypress/${self.ns}`)\n self.searchInput.removeEventListener('keypress', searchHandler)\n const submitHandler = Xt.dataStorage.get(self.searchBtn, `click/${self.ns}`)\n self.searchBtn.removeEventListener('click', submitHandler)\n if (self.locateElement) {\n const locateHandler = Xt.dataStorage.get(self.locateElement, `click/${self.ns}`)\n self.locateElement.removeEventListener('click', locateHandler)\n }\n if (self.repeatElement) {\n const repeatHandler = Xt.dataStorage.get(self.repeatElement, `click/${self.ns}`)\n self.repeatElement.removeEventListener('click', repeatHandler)\n }\n // search place\n google.maps.event.removeListener(self.search, 'place_changed', self._placeChanged.bind(self))\n // locate\n if (options.elements.locateBtn) {\n self.locateElement = self.container.querySelector(options.elements.locateBtn)\n if (self.locateElement) {\n if (location.protocol === 'https:') {\n if (navigator.geolocation) {\n const locateHandler = Xt.dataStorage.put(self.locateElement, `click/${self.ns}`, self._locate.bind(self))\n self.locateElement.removeEventListener('click', locateHandler)\n }\n }\n }\n }\n // populate\n self.container.classList.remove('noplace')\n self.container.classList.remove('empty')\n self.container.classList.remove('found')\n self.container.classList.remove('error')\n // clone\n const removes = self.container.querySelectorAll('.xt-googlelocator-clone')\n for (const remove of removes) {\n remove.remove()\n }\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n}\n\n//\n// option\n//\n\nGooglelocator.componentName = 'xt-googlelocator'\nGooglelocator.optionsDefault = {\n debug: false,\n // setting\n initialLocate: false,\n initialSearch: false,\n seachMapBounds: false,\n searchRadius: 25000,\n locateText: 'Locate',\n // element\n elements: {\n loader: '[data-xt-googlelocator-loader]',\n searchInput: '[data-xt-googlelocator-search-input]',\n searchBtn: '[data-xt-googlelocator-search-btn]',\n map: '[data-xt-googlelocator-map]',\n itemsTemplate: '[data-xt-googlelocator-items-template]',\n itemsContainer: '[data-xt-googlelocator-items-container]',\n results: '[data-xt-googlelocator-results]',\n resultsFound: '[data-xt-googlelocator-results-found]',\n locateBtn: '[data-xt-googlelocator-locate-btn]',\n repeatBtn: '[data-xt-googlelocator-repeat-btn]',\n filter: '[data-xt-googlelocator-filter]',\n },\n // event\n events: {\n animateMarkerClick: false,\n animateMarkerResultClick: false,\n infoWindowMarkerClick: true,\n infoWindowMarkerResultClick: false,\n },\n // autocomplete\n autocompleteOptions: false,\n autocompleteServiceOptions: false,\n // map\n map: {\n center: false,\n zoom: false,\n zoomMin: false,\n scrollwheel: false,\n zoomControl: true,\n mapTypeControl: false,\n scaleControl: true,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n cluster: false,\n },\n // infoWindow\n infoWindow: {},\n // format\n formatData: {\n lat: false,\n lng: false,\n sort: false,\n filter: false,\n name: false,\n address: false,\n additional: false,\n img: false,\n direction: false,\n distance: false,\n info: false,\n },\n}\n\n//\n// export\n//\n\nXt.Googlelocator = Googlelocator\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Groupnumber\n */\nclass Groupnumber {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n componentName\n ns\n options\n initial\n disabled = false\n container\n inputs\n steps\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // elements\n self.inputs = self.container.querySelectorAll(options.inputs)\n self.steps = self.container.querySelectorAll(options.steps)\n // voidable\n for (const input of self.inputs) {\n Xt.dataStorage.set(input, `voidable/${self.ns}`, input.value === '')\n }\n // steps\n const eventsSteps = options.events?.steps ? [...options.events.steps.split(' ')] : []\n if (eventsSteps.length) {\n for (const step of self.steps) {\n const stepHandler = Xt.dataStorage.put(\n step,\n `${options.events.steps}/${self.ns}`,\n self._eventChange.bind(self, { button: step })\n )\n for (const event of eventsSteps) {\n step.addEventListener(event, stepHandler)\n }\n }\n }\n // inputs\n const eventsInput = options.events?.input ? [...options.events.input.split(' ')] : []\n if (eventsInput.length) {\n for (const input of self.inputs) {\n const inputHandler = Xt.dataStorage.put(\n input,\n `${options.events.input}/${self.ns}`,\n self._eventChange.bind(self, {})\n )\n for (const event of eventsInput) {\n input.addEventListener(event, inputHandler)\n }\n }\n }\n // ally\n self._initA11y()\n // initial\n self._initStart()\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n self._eventChange.bind(self)()\n }\n\n //\n // methods\n //\n\n /**\n * change\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.button\n * @param {Event} e\n */\n _eventChange({ button } = {}, e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // trigger external events and skip internal events\n if (!e?.detail?.skip) {\n if (e) {\n e.preventDefault()\n // prevent same listener because we retrigger 'change' after\n e.stopImmediatePropagation()\n }\n // inputs\n for (const input of self.inputs) {\n const inputStep = input.getAttribute('step')\n const buttonStep = button?.getAttribute('data-xt-step')\n const step =\n inputStep && inputStep !== ''\n ? parseFloat(inputStep) * Math.sign(parseFloat(buttonStep))\n : parseFloat(buttonStep) ?? 1\n let val = parseFloat(input.value)\n val = isNaN(val) ? 0 : val\n if (step) {\n val += step\n // remove floating point up to step\n val = parseFloat(val.toFixed(self._countDecimals({ num: step })))\n }\n self._validate({ val, input })\n }\n // disabled\n if (options.limit) {\n for (const button of self.steps) {\n const disabled = Xt.dataStorage.get(button, `${self.ns}ButtonDisabled`)\n if (disabled) {\n button.setAttribute('disabled', 'disabled')\n } else {\n button.removeAttribute('disabled')\n }\n Xt.dataStorage.remove(button, `${self.ns}ButtonDisabled`)\n }\n }\n }\n }\n\n /**\n * validate\n * @param {Object} params\n * @param {Number} params.val\n * @param {Node|HTMLElement|EventTarget|Window} params.input\n */\n _validate({ val, input } = {}) {\n const self = this\n const options = self.options\n // step\n const inputStep = input.getAttribute('step')\n const step = inputStep && inputStep !== '' ? parseFloat(inputStep) : null\n if (options.validate) {\n val = options.validate({ val, step })\n }\n // limit\n if (options.limit) {\n const voidable = Xt.dataStorage.get(input, `voidable/${self.ns}`)\n const inputMin = input.getAttribute('min')\n const inputMax = input.getAttribute('max')\n const min = inputMin && inputMin !== '' ? parseFloat(inputMin) : options.min\n const max = inputMax && inputMax !== '' ? parseFloat(inputMax) : options.max\n for (const button of self.steps) {\n const buttonStep = button.getAttribute('data-xt-step')\n let voidMin\n let voidMax\n if (voidable) {\n if (val === 0) {\n val = ''\n }\n if (min >= 0) {\n voidMin = true\n if (val < min) {\n val = ''\n }\n }\n if (max <= 0) {\n voidMax = true\n if (val > max) {\n val = ''\n }\n }\n }\n if (buttonStep < 0) {\n if (val < min || (!voidMin && val === min) || (voidMin && val === '')) {\n val = val !== '' ? min : val\n Xt.dataStorage.set(button, `${self.ns}ButtonDisabled`, true)\n }\n } else if (buttonStep > 0) {\n if (val > max || (!voidMax && val === max) || (voidMax && val === '')) {\n val = val !== '' ? max : val\n Xt.dataStorage.set(button, `${self.ns}ButtonDisabled`, true)\n }\n }\n }\n }\n // set value\n input.value = val\n // trigger external events and skip internal events\n if (!self.initial) {\n input.dispatchEvent(new Event('input', { detail: { skip: true } })) // needed to change value (e.g. x-model)\n input.dispatchEvent(new CustomEvent('change', { detail: { skip: true } }))\n }\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // a11y\n //\n\n /**\n * init a11y\n */\n _initA11y() {\n const self = this\n const options = self.options\n // a11y\n if (options.a11y) {\n // init\n self._initA11yId()\n self._initA11ySetup()\n }\n }\n\n /**\n * init a11y id\n * @param {Object} params\n */\n _initA11yId() {\n const self = this\n const options = self.options\n // id\n if (options.a11y.controls) {\n for (const input of self.inputs) {\n const id = input.getAttribute('id')\n if (!id) {\n input.setAttribute('id', Xt.uniqueId())\n }\n }\n }\n }\n\n /**\n * init a11y setup\n */\n _initA11ySetup() {\n const self = this\n const options = self.options\n // aria-controls\n if (options.a11y.controls) {\n let str = ''\n for (const input of self.inputs) {\n str += `${input.getAttribute('id')} `\n }\n for (const step of self.steps) {\n step.setAttribute('aria-controls', str.trim())\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * countDecimals\n * @param {Object} params\n * @param {Boolean} params.num\n */\n _countDecimals({ num } = {}) {\n if (Math.floor(num) === num) return 0\n return num.toString().split('.')[1].length || 0\n }\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n const options = self.options\n // remove events\n const eventsSteps = options.events?.steps ? [...options.events.steps.split(' ')] : []\n if (eventsSteps.length) {\n for (const step of self.steps) {\n const stepHandler = Xt.dataStorage.get(step, `${options.events.steps}/${self.ns}`)\n for (const event of eventsSteps) {\n step.removeEventListener(event, stepHandler)\n }\n }\n }\n const eventsInput = options.events?.input ? [...options.events.input.split(' ')] : []\n if (eventsInput.length) {\n for (const input of self.inputs) {\n const inputHandler = Xt.dataStorage.get(input, `${options.events.input}/${self.ns}`)\n for (const event of eventsInput) {\n input.removeEventListener(event, inputHandler)\n }\n }\n }\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nGroupnumber.componentName = 'xt-groupnumber'\nGroupnumber.optionsDefault = {\n debug: false,\n // groupnumber\n limit: true,\n voidable: true,\n validate: ({ val, step }) => {\n if (step && val % step) {\n return Math.ceil(val / step) * step\n }\n return val\n },\n // quantity\n min: '-Infinity',\n max: 'Infinity',\n // elements\n inputs: 'input[type=\"number\"]',\n steps: '[data-xt-step]',\n // event\n events: {\n input: 'change',\n steps: 'click',\n },\n // other\n a11y: {\n controls: true,\n },\n}\n\n//\n// export\n//\n\nXt.Groupnumber = Groupnumber\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Groupnumber.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Groupnumber.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Groupnumber(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Infinitescroll\n */\nclass Infinitescroll {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n _itemsFake\n _url\n _scrollResume\n _scrollTopOld\n componentName\n ns\n options\n initial\n disabled = false\n container\n current\n scrollUp\n scrollDown\n itemsContainer\n spaceAdditionals\n paginations\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n // vars\n const options = self.options\n self.current = options.min\n // fake\n if (!options.get) {\n self._itemsFake = self.container.querySelector(options.elements.itemsContainer).cloneNode(true)\n }\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // elements\n self.scrollUp = self.container.querySelectorAll(options.elements.scrollUp)\n self.scrollDown = self.container.querySelectorAll(options.elements.scrollDown)\n self.itemsContainer = self.container.querySelector(options.elements.itemsContainer)\n self.spaceAdditionals = self.container.querySelectorAll(options.elements.spaceAdditional)\n self.paginations = self.container.querySelectorAll(options.elements.pagination)\n // events\n if (options.nocache) {\n const beforeunloadHandler = Xt.dataStorage.put(\n window,\n `beforeunload/${self.ns}`,\n self._eventBeforeunload.bind(self)\n )\n addEventListener('beforeunload', beforeunloadHandler)\n }\n const scrollHandler = Xt.dataStorage.put(window, `scroll/${self.ns}`, self._eventScroll.bind(self))\n addEventListener('scroll', scrollHandler)\n // trigger\n const events = options.events?.on ? [...options.events.on.split(' ')] : []\n if (events.length) {\n for (const trigger of [...Array.from(self.scrollUp), ...Array.from(self.scrollDown)]) {\n const triggerHandler = Xt.dataStorage.put(\n trigger,\n `${options.events.on}/${self.ns}`,\n self._eventTrigger.bind(self, { trigger })\n )\n for (const event of events) {\n trigger.addEventListener(event, triggerHandler)\n }\n }\n }\n // initial\n self._initStart()\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n ns: `${self.ns}Init`,\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n self._setCurrent()\n self._update()\n self._paginate()\n self._prefetch()\n if (self.itemsContainer) {\n const found = self.itemsContainer.querySelector(options.elements.item)\n if (found) {\n found.setAttribute('data-item-first', self.current)\n }\n }\n // resume state\n if (options.nocache) {\n const add = self._additionalSpace()\n const state = history.state\n if (state && state[`scrollResume${self._componentNs}`]) {\n // need readyState complete to properly scroll after page load browsers scrolling\n Xt.ready({\n state: 'complete',\n func: () => {\n requestAnimationFrame(() => {\n const found = self.itemsContainer.querySelector(options.elements.item)\n document.scrollingElement.scrollTop = state[`scrollResume${self._componentNs}`] + found.offsetTop + add\n })\n },\n })\n }\n }\n }\n\n //\n // methods\n //\n\n /**\n * trigger\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.trigger\n */\n _eventTrigger({ trigger } = {}) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // request\n const up = parseFloat(trigger.getAttribute('data-xt-infinitescroll-up'))\n const down = parseFloat(trigger.getAttribute('data-xt-infinitescroll-down'))\n const amount = up || down\n if (!amount) {\n self._setCurrent({ page: options.min })\n location = self._url.href\n } else {\n const current = self._getNext({ amount })\n const items = self.itemsContainer.querySelectorAll(`[data-item-first=\"${current}\"]`)\n if (current !== self.current && !items.length) {\n self._setCurrent({ page: current })\n self.inverse = !!up\n // not if requesting\n if (!self.container.classList.contains('xt-infinitescroll-loading')) {\n self.container.classList.add('xt-infinitescroll-loading')\n self._request()\n self._prefetch({ trigger })\n }\n }\n }\n }\n\n /**\n * get next page index\n * @param {Object} params\n * @param {Number} params.amount\n */\n _getNext({ amount } = {}) {\n const self = this\n const options = self.options\n // return next index\n let current = self.current + amount\n current = current < options.min ? options.min : current\n current = current > options.max ? options.max : current\n return current\n }\n\n /**\n * unload\n */\n _eventBeforeunload() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // save scroll position\n if (self._scrollResume) {\n const state = {}\n state[`scrollResume${self._componentNs}`] = self._scrollResume\n history.replaceState(state, '', self._url.href)\n }\n }\n\n /**\n * scroll\n */\n _eventScroll() {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // scroll\n const scrollTop = document.scrollingElement.scrollTop\n const windowHeight = window.innerHeight\n // current page\n let found = self.itemsContainer.querySelector(options.elements.item)\n const items = self.itemsContainer.querySelectorAll('[data-item-first]')\n for (const item of items) {\n const itemTop = item.offsetTop\n if (scrollTop > itemTop - windowHeight / 2) {\n found = item\n }\n }\n self._setCurrent({ page: parseFloat(found.getAttribute('data-item-first')) })\n self._paginate()\n // save scroll position\n if (options.nocache) {\n const add = self._additionalSpace()\n self._scrollResume = scrollTop - found.offsetTop - add\n }\n // replace state\n const linkOrigin = self._url.origin || `${self._url.protocol}//${self._url.host}`\n if (linkOrigin === location.origin) {\n if (self._url.href !== location.href) {\n history.replaceState(null, '', self._url.href)\n }\n } else {\n console.error('Error: Xt.Infinitescroll cannot set history with different origin', linkOrigin)\n }\n // triggers\n const events = options.events?.on ? [...options.events.on.split(' ')] : []\n if (events.length) {\n if (options.events.scrollUp && self._scrollTopOld > scrollTop) {\n for (const trigger of self.scrollUp) {\n const top = trigger.offsetTop\n if (scrollTop < top) {\n const triggerHandler = Xt.dataStorage.get(trigger, `${options.events.on}/${self.ns}`)\n triggerHandler({ target: trigger })\n }\n }\n }\n if (options.events.scrollDown && self._scrollTopOld <= scrollTop) {\n for (const trigger of self.scrollDown) {\n const top = trigger.offsetTop\n const bottom = top + trigger.offsetHeight\n if (scrollTop + windowHeight > bottom) {\n const triggerHandler = Xt.dataStorage.get(trigger, `${options.events.on}/${self.ns}`)\n triggerHandler({ target: trigger })\n }\n }\n }\n }\n self._scrollTopOld = scrollTop\n }\n\n /**\n * request\n */\n _request() {\n const self = this\n // request\n fetch(self._url.href, {\n method: 'GET',\n })\n .then(response => {\n if (response.ok) {\n return response.text()\n } else {\n return Promise.reject(response)\n }\n })\n .then(text => {\n self._success({ text })\n })\n .catch(() => {\n self._error()\n })\n }\n\n /**\n * response\n * @param {Object} params\n * @param {XMLHttpRequest|Object} params.request Html response\n */\n _response({ request } = {}) {\n const self = this\n // request\n if (request.status >= 200 && request.status <= 300) {\n self._success({ request })\n } else {\n self._error()\n }\n }\n\n /**\n * success\n * @param {Object} params\n * @param {String} params.text Html response\n */\n _success({ text } = {}) {\n const self = this\n const options = self.options\n // set substitute\n const html = document.createElement('html')\n html.innerHTML = text\n const itemsContainer = html.querySelector(options.elements.itemsContainer)\n if (options.get && itemsContainer) {\n self._populate({ itemsContainer })\n } else {\n // fake\n setTimeout(() => {\n self._populate({ itemsContainer: self._itemsFake.cloneNode(true) })\n }, 1000)\n }\n }\n\n /**\n * error\n */\n _error() {\n const self = this\n // class\n self.container.classList.remove('xt-infinitescroll-loading')\n }\n\n /**\n * populate\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.itemsContainer Items element\n */\n _populate({ itemsContainer } = {}) {\n const self = this\n const options = self.options\n // vars\n const items = itemsContainer.querySelectorAll(options.elements.item)\n // current page\n items[0].setAttribute('data-item-first', self.current)\n // populate dom\n let last\n const all = self.itemsContainer.querySelectorAll(`${options.elements.item}`)\n for (const item of items) {\n if (self.inverse) {\n const first = all[0]\n first.before(item)\n } else {\n // repeat code querySelectorAll because it always needs to be the last inside loop\n const all = self.itemsContainer.querySelectorAll(`${options.elements.item}`)\n last = all[all.length - 1]\n last.after(item)\n }\n }\n // class\n self.container.classList.remove('xt-infinitescroll-loading')\n // update\n self._update()\n self._paginate()\n self._eventScroll()\n // populate\n Xt.frame({\n el: self.container,\n ns: `${self.ns}Populate`,\n func: () => {\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`populate.${self._componentNs}`))\n },\n })\n }\n\n /**\n * paginate\n */\n _paginate() {\n const self = this\n const options = self.options\n // paginate\n for (const pagination of self.paginations) {\n if (!pagination.dataset.current || self.current > parseFloat(pagination.dataset.current)) {\n pagination.dataset.current = self.current\n pagination.dataset.html = pagination.dataset.html ? pagination.dataset.html : pagination.innerHTML\n let html = pagination.dataset.html\n let regex = new RegExp('xt-num', 'ig')\n if (html.search(regex) !== -1) {\n html = html.replace(regex, self.current)\n }\n regex = new RegExp('xt-tot', 'ig')\n if (html.search(regex) !== -1) {\n html = html.replace(regex, options.max)\n }\n pagination.innerHTML = Xt.sanitize(html)\n }\n }\n }\n\n /**\n * update\n */\n _update() {\n const self = this\n const options = self.options\n // class\n if (self.current <= options.min) {\n self.container.classList.add('xt-infinitescroll-first')\n }\n if (self.current >= options.max) {\n self.container.classList.add('xt-infinitescroll-last')\n }\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * additionalSpace\n * @return {Number} additionalSpace\n */\n _additionalSpace() {\n const self = this\n // logic\n let add = 0\n for (const additional of self.spaceAdditionals) {\n add += additional.offsetHeight\n }\n return add\n }\n\n /**\n * setCurrent\n * @param {Object} params\n * @param {Number} params.page Page number to set\n */\n _setCurrent({ page = null } = {}) {\n const self = this\n const options = self.options\n // check url\n const url = new URL(location.href)\n const searchParams = new URLSearchParams(url.search)\n // set current\n const get = searchParams.get(options.get)\n self.current = page !== null ? page : get ? parseFloat(get) : self.current\n searchParams.set(options.get, self.current)\n url.search = searchParams.toString()\n self._url = url\n }\n\n /**\n * prefetch next page\n */\n _prefetch({ trigger } = {}) {\n const self = this\n const options = self.options\n // loop scroll down\n if (options.prefetch) {\n const triggers = trigger ? [trigger] : [...Array.from(self.scrollUp), ...Array.from(self.scrollDown)]\n for (const trigger of triggers) {\n const up = parseFloat(trigger.getAttribute('data-xt-infinitescroll-up'))\n const down = parseFloat(trigger.getAttribute('data-xt-infinitescroll-down'))\n const amount = up || down\n // check url\n const url = new URL(location.href)\n const searchParams = new URLSearchParams(url.search)\n // prefetch\n const next = self._getNext({ amount })\n if (self.current !== next) {\n searchParams.set(options.get, next)\n url.search = searchParams.toString()\n const link = document.createElement('link')\n link.rel = 'prefetch'\n link.href = url\n link.as = 'fetch'\n document.head.appendChild(link)\n }\n }\n }\n }\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n const options = self.options\n // events\n if (options.nocache) {\n const beforeunloadHandler = Xt.dataStorage.get(window, `beforeunload/${self.ns}`)\n removeEventListener('beforeunload', beforeunloadHandler)\n }\n const scrollHandler = Xt.dataStorage.get(window, `scroll/${self.ns}`)\n removeEventListener('scroll', scrollHandler)\n for (const trigger of [...Array.from(self.scrollUp), ...Array.from(self.scrollDown)]) {\n const triggerHandler = Xt.dataStorage.get(trigger, `${options.events.on}/${self.ns}`)\n trigger.removeEventListener(options.events.on, triggerHandler)\n }\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nInfinitescroll.componentName = 'xt-infinitescroll'\nInfinitescroll.optionsDefault = {\n debug: false,\n // infinitescroll\n get: false,\n nocache: false,\n prefetch: true,\n // quantity\n min: 1,\n max: 'Infinity',\n // event\n events: {\n scrollUp: false,\n scrollDown: false,\n on: 'click',\n },\n // element\n elements: {\n items: false,\n item: false,\n scrollUp: false,\n scrollDown: false,\n spaceAdditional: false,\n pagination: false,\n },\n}\n\n//\n// export\n//\n\nXt.Infinitescroll = Infinitescroll\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Infinitescroll.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Infinitescroll.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Infinitescroll(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Mousefollow\n */\nclass Mousefollow {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n _width\n _height\n componentName\n ns\n options\n initial\n disabled = false\n container\n targets\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Node|HTMLElement|EventTarget|Window} container Container node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n // raf after automatic scroll on hash (fixes when you have mouse over self.container on page load and page automatically scrolls)\n requestAnimationFrame(() => {\n self._initLogic()\n })\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // targets\n self.targets = self.container.querySelectorAll(options.targets)\n // events\n const moveHandler = Xt.dataStorage.put(self.container, `mousemove/${self.ns}`, self._mousemove.bind(self))\n self.container.addEventListener('mousemove', moveHandler)\n const enterHandler = Xt.dataStorage.put(self.container, `mouseenter/${self.ns}`, self._mouseenter.bind(self))\n self.container.addEventListener('mouseenter', enterHandler)\n const leaveHandler = Xt.dataStorage.put(self.container, `mouseleave/${self.ns}`, self._mouseleave.bind(self))\n self.container.addEventListener('mouseleave', leaveHandler)\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n //\n // methods\n //\n\n /**\n * mousemove\n */\n _mousemove(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // fix initial\n if (self._width === undefined) {\n self._mouseenter(e)\n }\n // position\n for (const tr of self.targets) {\n Xt._friction({\n el: tr,\n obj: {\n x: e.clientX - self._width / 2,\n y: e.clientY - self._height / 2,\n friction: options.friction,\n },\n transform: options.transform,\n })\n }\n // dispatch event\n self.container.dispatchEvent(\n new CustomEvent(`change.${self._componentNs}`, {\n detail: e,\n })\n )\n }\n\n /**\n * mouseenter\n * @param {Event} e\n */\n _mouseenter(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // check\n if (!options.mouseCheck || options.mouseCheck({ self })) {\n for (const tr of self.targets) {\n // size\n const rect = tr.getBoundingClientRect()\n self._width = rect.width\n self._height = rect.height\n // class\n if (!options.classSkip) {\n Xt.on({ el: tr })\n }\n // set\n const x = e.clientX - self._width / 2\n const y = e.clientY - self._height / 2\n if (options.transform) {\n tr.style.transform = `translateX(${x}px) translateY(${y}px)`\n } else {\n tr.style.left = `${x}px`\n tr.style.top = `${y}px`\n }\n }\n // dispatch event\n self.container.dispatchEvent(\n new CustomEvent(`on.${self._componentNs}`, {\n detail: e,\n })\n )\n }\n }\n\n /**\n * mouseleave\n * @param {Event} e\n */\n _mouseleave(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // check\n if (!options.mouseCheck || options.mouseCheck({ self })) {\n for (const tr of self.targets) {\n // class\n if (!options.classSkip) {\n Xt.off({ el: tr })\n }\n }\n // dispatch event\n self.container.dispatchEvent(\n new CustomEvent(`off.${self._componentNs}`, {\n detail: e,\n })\n )\n }\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n const options = self.options\n if (!self.disabled) {\n // disable\n self.disabled = true\n // position\n for (const tr of self.targets) {\n if (options.transform) {\n tr.style.transform = ''\n } else {\n tr.style.left = ''\n tr.style.top = ''\n }\n }\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n // disable\n self.disable({ skipEvent: true })\n // remove matches\n Xt._removeMatches({ self, optionsInitial: self._optionsInitial })\n // remove events\n const moveHandler = Xt.dataStorage.get(self.container, `mousemove/${self.ns}`)\n self.container.removeEventListener('mousemove', moveHandler)\n const enterHandler = Xt.dataStorage.get(self.container, `mouseenter/${self.ns}`)\n self.container.removeEventListener('mouseenter', enterHandler)\n const leaveHandler = Xt.dataStorage.get(self.container, `mouseleave/${self.ns}`)\n self.container.removeEventListener('mouseleave', leaveHandler)\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nMousefollow.componentName = 'xt-mousefollow'\nMousefollow.optionsDefault = {\n debug: false,\n // elements\n targets: '[data-xt-mousefollow-target]',\n // class\n classSkip: false,\n // mousefollow\n transform: true,\n friction: ({ delta }) => {\n return delta / 9\n },\n mouseCheck: false,\n}\n\n//\n// export\n//\n\nXt.Mousefollow = Mousefollow\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Mousefollow.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Mousefollow.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Mousefollow(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport './toggle.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Overlay\n */\nclass Overlay extends Xt.Toggle {\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n super(object, optionsCustom)\n }\n}\n\n//\n// options\n//\n\nOverlay.componentName = 'xt-overlay'\nOverlay.optionsDefault = {\n // element\n elements: '[data-xt-overlay-element]',\n targets: '[data-xt-overlay-target]',\n // quantity\n min: 0,\n max: 1,\n // event\n on: 'click',\n off: 'click',\n mouseParent: false,\n eventLimit: '.xt-event-limit, .xt-overlay',\n closeauto: true,\n openauto: true,\n closeDeep: '.xt-dismiss',\n closeInside: '.xt-backdrop, .xt-overlay-container',\n closeOutside: false,\n // timing\n queue: {\n elements: false,\n targets: true,\n elementsInner: false,\n targetsInner: true,\n },\n // other\n disableDeactivate: true,\n appendTo: 'body',\n classBody: 'xt-scrollbar-overlay',\n focusLimit: true,\n zIndex: {\n targets: {\n start: 5000, // same as options.zIndex.targets.start\n factor: 0,\n },\n },\n a11y: {\n role: 'dialog',\n labelElements: false,\n labelTargets: false,\n controls: true,\n selected: false,\n expanded: true,\n live: true,\n disabled: true,\n keyboard: true,\n vertical: false,\n items: false,\n },\n}\n\n//\n// export\n//\n\nXt.Overlay = Overlay\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Overlay.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Overlay.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Overlay(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\n\n/**\n * Ripple\n */\nclass Ripple {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n componentName\n ns\n options\n initial\n disabled = false\n container\n inner\n targets\n size\n top\n left\n sizeFinal\n scaleFinal\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // inner\n if (!self.inner) {\n self.container.append(Xt.node({ str: '<div class=\"xt-ripple-inner\"></div>' }))\n self.inner = self.container.querySelector(':scope > .xt-ripple-inner')\n }\n // on\n const onHandler = Xt.dataStorage.put(self.container, `mousedown touchstart/${self.ns}`, self._eventStart.bind(self))\n self.container.addEventListener('mousedown', onHandler)\n self.container.addEventListener('touchstart', onHandler, { passive: true })\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n //\n // methods\n //\n\n /**\n * eventStart\n * @param {Event} e\n */\n _eventStart(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // check if inside onlyInside\n if (!options.onlyInside || e.target.closest(options.onlyInside)) {\n self.inner.append(Xt.node({ str: '<div class=\"xt-ripple\"></div>' }))\n // fix prevent dragging links and images\n if (e.type === 'mousedown') {\n e.preventDefault()\n }\n // size\n const h = self.container.offsetHeight\n const w = self.container.offsetWidth\n const sizeObject = h > w ? h : w\n const size = sizeObject * options.sizeInitial + 1 // at least 1 pixel\n // scale from diagonal\n const sizeFinal = Math.sqrt(Math.pow(h, 2) + Math.pow(w, 2))\n const scaleFinal = (sizeFinal / size) * 2\n // offset (using clientX and clientY for touch so we need to get values with getBoundingClientRect also)\n let y\n let x\n if (e.clientX !== undefined) {\n y = e.clientY\n x = e.clientX\n } else if (e.touches && e.touches.length) {\n y = e.touches[0].clientY\n x = e.touches[0].clientX\n }\n const rectTarget = e.target.getBoundingClientRect()\n y = y - rectTarget.top\n x = x - rectTarget.left\n // position\n if (self.container !== e.target) {\n const rectObject = self.container.getBoundingClientRect()\n y += rectTarget.top - rectObject.top\n x += rectTarget.left - rectObject.left\n }\n const top = y - size / 2\n const left = x - size / 2\n // dispatch event\n self.size = size\n self.top = top\n self.left = left\n self.sizeFinal = sizeFinal\n self.scaleFinal = scaleFinal\n // dispatch event\n self.container.dispatchEvent(\n new CustomEvent(`on.${self._componentNs}`, {\n detail: e,\n })\n )\n // off\n const endHandler = Xt.dataStorage.put(window, `mouseup touchend/${self.ns}`, self._eventEnd.bind(self))\n addEventListener('mouseup', endHandler)\n addEventListener('touchend', endHandler, { passive: true })\n }\n }\n\n /**\n * eventEnd\n * @param {Event} e\n */\n _eventEnd(e) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // off\n const endHandler = Xt.dataStorage.get(window, `mouseup touchend/${self.ns}`)\n removeEventListener('mouseup', endHandler)\n removeEventListener('touchend', endHandler)\n // dispatch event\n self.container.dispatchEvent(\n new CustomEvent(`off.${self._componentNs}`, {\n detail: e,\n })\n )\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n // inner\n self.inner.remove()\n self.inner = null\n // remove events\n // on\n const onHandler = Xt.dataStorage.get(self.container, `mousedown touchstart/${self.ns}`)\n self.container.removeEventListener('mousedown', onHandler)\n self.container.removeEventListener('touchstart', onHandler, { passive: true })\n // off\n const endHandler = Xt.dataStorage.get(window, `mouseup touchend/${self.ns}`)\n removeEventListener('mouseup', endHandler)\n removeEventListener('touchend', endHandler)\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nRipple.componentName = 'xt-ripple'\nRipple.optionsDefault = {\n debug: false,\n // ripple\n sizeInitial: 0.3,\n onlyInside: 'a, button, .xt-button',\n}\n\n//\n// export\n//\n\nXt.Ripple = Ripple\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\n\n/**\n * Scrollto\n */\nclass Scrollto {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _componentNs\n _classes\n componentName\n ns\n options\n initial\n disabled = false\n container\n hashchange\n target\n scrollers\n scroller\n position\n space\n duration\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // vars\n self.initial = true\n // class\n self._classes = options.class ? [...options.class.split(' ')] : []\n // click\n const changeHandler = Xt.dataStorage.put(self.container, `click/${self.ns}`, self._eventChange.bind(self, {}))\n self.container.addEventListener('click', changeHandler)\n // scrollto\n const scrolltoHandler = Xt.dataStorage.put(window, `scrollto/${self.ns}`, self._eventScrollto.bind(self, {}))\n addEventListener(`scrollto.trigger.${self._componentNs}`, scrolltoHandler, true)\n // hash\n const hashHandler = Xt.dataStorage.put(\n window,\n `hashchange/${self.ns}`,\n self._eventChange.bind(self).bind(self, { hashchange: true })\n )\n addEventListener('hashchange', hashHandler)\n // scroll\n self.scrollers = [document.scrollingElement, ...document.querySelectorAll(options.scrollers)].reverse() // need reverse for proper activation\n for (const scroller of self.scrollers) {\n if (scroller) {\n const scrollHandler = Xt.dataStorage.put(\n scroller,\n `scroll/${self.ns}`,\n self._eventActivationHandler.bind(self).bind(self, { scroller })\n )\n const events = options.events ? [...options.events.split(' ')] : []\n if (scroller === document.scrollingElement) {\n for (const event of events) {\n addEventListener(event, scrollHandler)\n }\n } else {\n for (const event of events) {\n scroller.addEventListener(event, scrollHandler)\n }\n }\n }\n }\n // need readyState complete to properly scroll after page load browsers scrolling\n Xt.ready({\n state: 'complete',\n func: () => {\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initial needs to be inside raf for content added (e.g. react)\n self._initStart()\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n },\n })\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n // initial scrollto\n self._eventStart()\n // initial activation\n for (const scroller of self.scrollers) {\n if (scroller) {\n self._eventActivationHandler({ scroller })\n }\n }\n }\n\n //\n // methods\n //\n\n /**\n * start trigger current location hash\n */\n _eventStart() {\n const self = this\n const options = self.options\n // hash trigger\n const hash = location.hash\n if (hash) {\n const el = self.container.querySelector(options.anchors.replace('{hash}', hash))\n if (el) {\n self._eventChange({ el })\n }\n }\n }\n\n /**\n * scrollto\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el element\n * @param {Node|HTMLElement|EventTarget|Window} params.tr target\n * @param {Event} e\n */\n _eventScrollto({ el, tr } = {}, e) {\n const self = this\n const options = self.options\n // hashchange\n self.hashchange = el ? self.hashchange : false\n // element\n el = el ?? e.target\n // not null and HTML element and not window\n if (el && el.nodeName && el !== window) {\n self.target = tr ?? el\n if (self.target) {\n // current scroll\n for (const scroller of self.scrollers) {\n if (scroller) {\n if (scroller.contains(self.target)) {\n self.scroller = scroller\n break\n }\n }\n }\n // openauto.trigger.xt\n if (options.hash || el.getAttribute('data-xt-scrollto-hash')) {\n self.target.dispatchEvent(new CustomEvent('openauto.trigger.xt'))\n }\n // logic\n self._eventScrolltoLogic()\n }\n }\n }\n\n /**\n * scrollto logic\n */\n _eventScrolltoLogic() {\n const self = this\n const options = self.options\n // fix when multiple self.targets use only visible (e.g. scrollto: 'elements')\n if (Xt.visible({ el: self.target })) {\n // force no hashchange\n self.hashchange = Xt.scrolltoHashforce ?? self.hashchange\n Xt.scrolltoHashforce = null\n // vars\n self.position = options.position({ self })\n self.space = options.space({ self })\n self.duration = options.duration({ self })\n self.position = self.position - self.space\n // val\n const min = 0\n const max = self.scroller.scrollHeight - self.scroller.clientHeight\n self.position = self.position < min ? min : self.position\n self.position = self.position > max ? max : self.position\n // fix activate also if scroll position remains the same\n if (self.scroller.scrollTop === self.position) {\n self.scroller.dispatchEvent(new CustomEvent('scroll'))\n }\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`scrollto.${self._componentNs}`))\n }\n }\n\n /**\n * change\n * @param {Object} params\n * @param {Boolean} params.hashchange\n * @param {Node|HTMLElement|EventTarget|Window} params.el Change element\n * @param {Event} e\n */\n _eventChange({ hashchange = false, el }, e) {\n const self = this\n const options = self.options\n // hashchange\n self.hashchange = false\n if (hashchange) {\n self.hashchange = true\n const hash = location.hash\n const elCheck = self.container.querySelector(options.anchors.replace('{hash}', hash))\n // do not listen to hash change when no hash on element\n if (elCheck) {\n if (options.hash || elCheck.getAttribute('data-xt-scrollto-hash')) {\n el = elCheck\n }\n }\n }\n // useCapture event propagation check\n el = el ?? e.target\n // not null and HTML element and not window\n if (el && el.nodeName && el !== window) {\n el = el.closest(options.anchors.replace('{hash}', '#'))\n if (el && el.matches(options.anchors.replace('{hash}', '#'))) {\n // event\n const loc = new URL(el.getAttribute('href'), location)\n if (loc.hash && loc.pathname === location.pathname) {\n if (!hashchange || location.hash === el.hash) {\n const hash = hashchange ? loc.hash : el.hash.toString()\n const tr = self.container.querySelector(hash)\n if (tr) {\n // prevent page hash on click anchors\n if (e) {\n e.preventDefault()\n }\n // current scroll\n for (const scroller of self.scrollers) {\n if (scroller) {\n if (scroller.contains(tr)) {\n self.scroller = scroller\n break\n }\n }\n }\n // prevent page hash with automatic scroll\n if (\n !hashchange &&\n (options.hash || el.getAttribute('data-xt-scrollto-hash') === 'true') &&\n el.getAttribute('data-xt-scrollto-hash') !== 'false' &&\n location.hash !== el.hash\n ) {\n history.pushState({}, '', loc.hash)\n }\n // els\n const els = Array.from(self.container.querySelectorAll(options.anchors.replace('{hash}', '#')))\n // class\n for (const other of els) {\n other.classList.remove(...self._classes)\n }\n el.classList.add(...self._classes)\n // scrollto\n self._eventScrollto({ el, tr })\n }\n }\n }\n }\n }\n }\n\n /**\n * scroll activation handler\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.scroller Scroller element\n */\n _eventActivationHandler({ scroller } = {}) {\n const self = this\n const options = self.options\n // logic\n if (options.scrollActivation) {\n clearTimeout(Xt.dataStorage.get(scroller, `${self.ns}ScrollTimeout`))\n Xt.dataStorage.set(\n scroller,\n `${self.ns}ScrollTimeout`,\n setTimeout(() => {\n // handler\n self._eventActivation({ scroller })\n }, options.scrollDelay)\n )\n }\n }\n\n /**\n * scroll activation\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.scroller Scroller element\n */\n _eventActivation({ scroller } = {}) {\n const self = this\n const options = self.options\n // scroll\n self.target = false\n self.scroller = scroller\n let found = false\n let scrollTop = self.scroller.scrollTop\n // fake scroll position if on bottom of the page\n const scrollMax = self.scroller.scrollHeight\n if (scrollTop + self.scroller.clientHeight >= scrollMax) {\n scrollTop = scrollMax\n }\n // anchors\n const els = Array.from(self.container.querySelectorAll(options.anchors.replace('{hash}', '#')))\n // loop\n for (const el of els) {\n // fix don't activate if elements is inside a inner scroller\n for (const scroller of self.scrollers) {\n if (scroller) {\n if (scroller === self.scroller) {\n break\n }\n if (scroller.contains(el)) {\n return\n }\n }\n }\n // event\n const loc = new URL(el.getAttribute('href'), location)\n if (loc.hash) {\n // fix error is not a valid selector (e.g. _C1385.02)\n try {\n document.createDocumentFragment().querySelector(loc.hash)\n } catch {\n continue\n }\n self.target = document.querySelector(loc.hash)\n if (self.target && Xt.visible({ el: self.target })) {\n // vars\n const position = options.position({ self })\n const space = options.space({ self })\n // check if activating\n if (scrollTop >= Math.floor(position - space)) {\n // loop multiple els of\n const matches = options.anchors.replace('{hash}', loc.hash)\n const currents = els.filter(x => x.matches(matches))\n found = !!currents.length\n // reset others\n for (const other of els.filter(x => !currents.includes(x))) {\n other.classList.remove(...self._classes)\n }\n // class\n for (const current of currents) {\n if (self._classes.length && !current.classList.contains(...self._classes)) {\n current.classList.add(...self._classes)\n }\n }\n }\n }\n }\n }\n // reset others when not found anchors and found target\n if (!found && self.target) {\n for (const el of els) {\n el.classList.remove(...self._classes)\n }\n }\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n const options = self.options\n // click\n const changeHandler = Xt.dataStorage.get(self.container, `click/${self.ns}`)\n self.container.removeEventListener('click', changeHandler)\n // scrollto\n const scrolltoHandler = Xt.dataStorage.get(window, `scrollto/${self.ns}`)\n removeEventListener(`scrollto.trigger.${self._componentNs}`, scrolltoHandler, true)\n // hash\n const hashHandler = Xt.dataStorage.get(window, `hashchange/${self.ns}`)\n removeEventListener('hashchange', hashHandler)\n // scroll\n for (const scroller of self.scrollers) {\n if (scroller) {\n const scrollHandler = Xt.dataStorage.get(scroller, `scroll/${self.ns}`)\n const events = options.events ? [...options.events.split(' ')] : []\n if (scroller === document.scrollingElement) {\n for (const event of events) {\n removeEventListener(event, scrollHandler)\n }\n } else {\n for (const event of events) {\n scroller.removeEventListener(event, scrollHandler)\n }\n }\n }\n }\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nScrollto.componentName = 'xt-scrollto'\nScrollto.optionsDefault = {\n debug: false,\n // elements\n anchors: '[href*=\"{hash}\"]:not([href$=\"#\"])',\n scrollers: '.xt-overlay:not([data-xt-overlay-disabled])',\n // class\n class: 'on',\n // event\n events: 'scroll off.xt.overlay',\n scrollActivation: true,\n scrollDelay: 200,\n hash: false,\n // scroll\n position: ({ self }) => {\n const rect = self.target.getBoundingClientRect()\n let position = rect.top + self.scroller.scrollTop\n if (self.scroller !== document.scrollingElement) {\n const rectScrollElement = self.scroller.getBoundingClientRect()\n position = position - rectScrollElement.top\n }\n return position\n },\n space: () => {\n return window.innerHeight / 6\n },\n duration: ({ self }) => {\n const overlay = self.target.closest('.xt-overlay')\n // instant scroll on initial or hashchange or inside overlay and not already activated\n if (self.initial || self.hashchange || (overlay && !overlay.classList.contains('in'))) return 0\n return 1\n },\n}\n\n//\n// export\n//\n\nXt.Scrollto = Scrollto\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport './toggle.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Slider\n */\nclass Slider extends Xt.Toggle {\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n super(object, optionsCustom)\n }\n\n //\n // init\n //\n\n /**\n * init\n */\n _init() {\n // super after\n super._init()\n }\n\n /**\n * init elements, targets and currents\n */\n _initScope() {\n const self = this\n const options = self.options\n // dragger\n self.dragger = self.container.querySelector(options.drag.dragger)\n self._destroyElements.push(self.dragger)\n // dragger initial\n self.dragger.classList.add('initial')\n // @PERF\n self._destroyDrag()\n self.drag._wrapDir = 0\n self.drag._wrapIndex = null\n const rect = self.dragger.getBoundingClientRect()\n self.drag._size = rect.width\n self.drag._left = rect.left\n // fix when dragger not :visible (offsetWidth === 0) do not initialize\n if (self.drag._size === 0) {\n return\n }\n // grab\n if (!self.disabled) {\n self.dragger.classList.add('xt-grab')\n }\n // autoHeight and keepHeight\n if (options.autoHeight) {\n self._autoHeight = self.container.querySelector(options.autoHeight)\n }\n if (options.keepHeight) {\n self._keepHeight = self.container.querySelector(options.keepHeight)\n }\n // val\n self.drag._position = self.drag._final = self.drag._initial = 0\n // clean\n self._destroyNooverflow()\n self._destroyWrap()\n self._destroyPagination()\n // targets\n self._initScopeTargets()\n // initGroups\n self._initGroups()\n // initPagination\n self._initPagination()\n // elements\n self._initScopeElements()\n }\n\n /**\n * init elements\n */\n _initScopeElements() {\n super._initScopeElements()\n const self = this\n const options = self.options\n // elements\n self.elements = self.elements.filter(x => !x.classList.contains(...options.elementsTemplate.split(' ')))\n }\n\n /**\n * init groups\n */\n _initGroups() {\n const self = this\n const options = self.options\n // @PERF\n let sizeContent = 0\n let trWidthMax = 0\n for (const tr of self.targets) {\n let trLeft\n let trWidth\n if (options.mode === 'absolute') {\n trLeft = 0\n trWidth = self.drag._size\n } else {\n const rect = tr.getBoundingClientRect()\n trLeft = rect.left - self.drag._left\n trWidth = rect.width\n }\n sizeContent += trWidth\n trWidthMax = trWidth > trWidthMax ? trWidth : trWidthMax\n Xt.dataStorage.set(tr, `${self.ns}TrLeftInitial`, trLeft)\n Xt.dataStorage.set(tr, `${self.ns}TrLeft`, trLeft)\n Xt.dataStorage.set(tr, `${self.ns}TrWidth`, trWidth)\n }\n self.drag.sizeContent = sizeContent\n // initGroupsInitial\n self._initGroupsInitial()\n // disable slider if not overflowing\n if (options.nooverflow) {\n if (self.drag._availableSpace <= 0) {\n self.dragger.classList.add(...options.nooverflow.split(' '))\n // disabledManual\n self._disabledManual = true\n // needed for activation all slides\n self._initGroupsInitial({ group: 1 })\n } else {\n self._destroyNooverflow()\n }\n }\n // initGroupsPosition\n self._initGroupsPosition()\n // wrap\n if (options.wrap !== false && options.mode !== 'absolute' && self.drag._availableSpace > trWidthMax) {\n self._wrap = true\n } else {\n self._wrap = false\n }\n // wrap indexes\n self.drag._wrapFirst = 0\n self.drag._wrapLast = self._groups.length - 1\n // initGroupsContain\n self._initGroupsContain()\n // save cloned array of targets because we change it in the first loop and breaks second loop\n for (const group of self._groups) {\n group.targetsInitial = [...group.targets]\n }\n // initGroupsSame\n self._initGroupsSame()\n }\n\n /**\n * init groups initial\n * @param {Object} params\n * @param {Number} params.group\n */\n _initGroupsInitial({ group } = {}) {\n const self = this\n const options = self.options\n // inital groups\n self._groups = []\n let currentGroup = 0\n group = group ?? options.group\n const sizeAvailable = group ? self.drag._size * group : 0\n let currentCount = sizeAvailable\n self.drag._availableSpace = -self.drag._size\n for (const [i, target] of self.targets.entries()) {\n const targetWidth = Xt.dataStorage.get(target, `${self.ns}TrWidth`)\n currentCount -= targetWidth\n self.drag._availableSpace += targetWidth\n if (currentCount >= 0) {\n // add to previous group\n } else if (i !== 0) {\n // next group and reset count\n currentGroup++\n currentCount = sizeAvailable\n currentCount -= targetWidth\n }\n // assign group\n if (!self._groups[currentGroup]) {\n self._groups[currentGroup] = {\n target: target,\n targets: [target],\n }\n } else {\n self._groups[currentGroup].targets.push(target)\n }\n target.removeAttribute('data-xt-group') // needed or nooverflow doesn't reset\n target.setAttribute('data-xt-group', `${self.ns}-${currentGroup}`)\n target.removeAttribute('data-xt-group-same')\n }\n }\n\n /**\n * init groups position\n */\n _initGroupsPosition() {\n const self = this\n const options = self.options\n // groups position\n self._usedWidth = 0\n for (const group of self._groups) {\n const tr = group.target\n // vars\n const trLeft = Xt.dataStorage.get(tr, `${self.ns}TrLeft`)\n const targets = self.getTargets({ el: tr })\n let groupLeft = Infinity\n let groupWidth = 0\n // vars\n for (const tr of targets) {\n // @PERF\n const targetLeft = Xt.dataStorage.get(tr, `${self.ns}TrLeft`)\n // groupLeft is last on the left\n groupLeft = targetLeft < groupLeft ? trLeft : groupLeft\n if (options.mode === 'absolute') {\n // when absolute mode make fake positions as if all items displaced inside dragger\n groupLeft += self._usedWidth\n }\n groupWidth += Xt.dataStorage.get(tr, `${self.ns}TrWidth`)\n self._usedWidth += groupWidth\n }\n // left with alignment\n let left\n if (options.align === 'center') {\n left = self.drag._size / 2 - groupLeft - groupWidth / 2\n } else if (options.align === 'left') {\n left = -groupLeft\n } else if (options.align === 'right') {\n left = self.drag._size - groupLeft - groupWidth\n }\n // save position\n for (const tr of targets) {\n Xt.dataStorage.set(tr, `${self.ns}GroupLeft`, Math.floor(left))\n Xt.dataStorage.set(tr, `${self.ns}GroupWidth`, groupWidth)\n }\n }\n }\n\n /**\n * init groups contain\n */\n _initGroupsContain() {\n const self = this\n const options = self.options\n // contain groups\n if (options.contain && options.mode !== 'absolute' && !self._wrap && self._usedWidth > self.drag._size) {\n // only if slides overflow dragger\n const first = self._groups[self.drag._wrapFirst].target\n const last = self._groups[self.drag._wrapLast].target\n const firstLeft = Xt.dataStorage.get(first, `${self.ns}TrLeft`)\n const lastLeft = Xt.dataStorage.get(last, `${self.ns}TrLeft`)\n const lastWidth = Xt.dataStorage.get(last, `${self.ns}GroupWidth`)\n const min = -firstLeft\n const max = -lastLeft - lastWidth + self.drag._size\n // group contain slides with same position\n let iRemoved = 0\n for (let i = 0; i < self._groups.length - iRemoved; i++) {\n const group = self._groups[i]\n for (const tr of group.targets) {\n let left = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n if (left >= min) {\n left = min\n // first group\n const firstIndex = 0\n let width = Xt.dataStorage.get(self._groups[firstIndex].target, `${self.ns}GroupWidth`)\n width += Xt.dataStorage.get(group.target, `${self.ns}GroupWidth`)\n // put group in firstIndex group\n if (i > firstIndex) {\n const groupStr = self._groups[firstIndex].target.getAttribute('data-xt-group')\n for (const target of group.targets) {\n self._groups[firstIndex].targets.push(target) // put at end\n target.setAttribute('data-xt-group', groupStr)\n }\n }\n // group firstIndex contain new position on dragger limit\n for (const tr of self._groups[firstIndex].targets) {\n Xt.dataStorage.set(tr, `${self.ns}GroupLeft`, left)\n Xt.dataStorage.set(tr, `${self.ns}GroupWidth`, width)\n }\n // splice reindex\n if (i > firstIndex) {\n self._groups.splice(i, 1)\n iRemoved++\n i--\n }\n } else {\n // break loop\n i = self._groups.length\n break\n }\n }\n }\n for (let i = self._groups.length - 1; i >= 0; i--) {\n const group = self._groups[i]\n for (const tr of group.targets) {\n let left = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n if (left <= max) {\n left = max\n // last group\n const lastIndex = self._groups.length - 1\n let width = Xt.dataStorage.get(self._groups[lastIndex].target, `${self.ns}GroupWidth`)\n width += Xt.dataStorage.get(group.target, `${self.ns}GroupWidth`)\n // put group in lastIndex group\n if (i < lastIndex) {\n const groupStr = self._groups[lastIndex].target.getAttribute('data-xt-group')\n for (const target of group.targets) {\n self._groups[lastIndex].targets.unshift(target) // put at start\n target.setAttribute('data-xt-group', groupStr)\n }\n }\n // group lastIndex contain new position on dragger limit\n for (const target of self._groups[lastIndex].targets) {\n Xt.dataStorage.set(target, `${self.ns}GroupLeft`, left)\n Xt.dataStorage.set(target, `${self.ns}GroupWidth`, width)\n }\n // splice reindex\n if (i < lastIndex) {\n self._groups.splice(i, 1)\n }\n } else {\n // break loop\n i = 0\n break\n }\n }\n }\n // save position\n for (const group of self._groups) {\n let groupWidth = 0\n const left = Xt.dataStorage.get(group.target, `${self.ns}GroupLeft`)\n for (const tr of group.targets) {\n groupWidth += Xt.dataStorage.get(tr, `${self.ns}TrWidth`)\n }\n for (const tr of group.targets) {\n Xt.dataStorage.set(tr, `${self.ns}GroupLeft`, left)\n Xt.dataStorage.set(tr, `${self.ns}GroupWidth`, groupWidth)\n }\n }\n // wrap indexes\n self.drag._wrapFirst = 0\n self.drag._wrapLast = self._groups.length - 1\n }\n }\n\n /**\n * init groups same\n */\n _initGroupsSame() {\n const self = this\n const options = self.options\n // groups multiple targets if are inside dragger\n if (options.groupSame && options.mode !== 'absolute') {\n for (const [z, group] of self._groups.entries()) {\n const tr = group.target\n const groupGroup = tr.getAttribute('data-xt-group')\n const groupWidth = Xt.dataStorage.get(tr, `${self.ns}GroupWidth`)\n const groupLeft = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n const trLeft = Xt.dataStorage.get(tr, `${self.ns}TrLeft`)\n const spaceLeft = trLeft + groupLeft // left space available from slide to dragger\n const spaceRight = self.drag._size - spaceLeft - groupWidth // right space available from slide to dragger\n // group on the right of current\n let usedWidth = 0\n for (let i = 0; i <= self._groups.length - 1; i++) {\n // loop from current group to nexts\n let iLoop = z + 1 + i\n // when wrap and more than length, loop to first\n iLoop = self._wrap && iLoop > self._groups.length - 1 ? iLoop - self._groups.length : iLoop\n if (iLoop > self._groups.length - 1) break\n const groupCurrent = self._groups[z]\n for (let k = 0; k < self._groups[iLoop].targetsInitial.length; k++) {\n const targetTargets = self._groups[iLoop].targetsInitial[k]\n const width = Xt.dataStorage.get(targetTargets, `${self.ns}TrWidth`)\n usedWidth += width\n if (usedWidth <= spaceRight) {\n // add to current group this target\n groupCurrent.targets.push(targetTargets) // put at end\n // add to target current group\n const groupStr =\n groupGroup +\n options.groupSeparator +\n targetTargets.getAttribute('data-xt-group') +\n options.groupSeparator +\n (targetTargets.getAttribute('data-xt-group-same') ?? '')\n targetTargets.setAttribute('data-xt-group-same', groupStr)\n } else {\n // break loop\n i = self._groups.length - 1\n break\n }\n }\n }\n // group on the left of current\n usedWidth = 0\n for (let i = 0; i <= self._groups.length - 1; i++) {\n // loop from current group to previouses\n let iLoop = z - 1 - i\n // when wrap and less than 0, loop to last\n iLoop = self._wrap && iLoop < 0 ? iLoop + self._groups.length : iLoop\n if (iLoop < 0) break\n const groupCurrent = self._groups[z]\n for (let k = self._groups[iLoop].targetsInitial.length - 1; k >= 0; k--) {\n const targetTargets = self._groups[iLoop].targetsInitial[k]\n const width = Xt.dataStorage.get(targetTargets, `${self.ns}TrWidth`)\n usedWidth += width\n if (usedWidth <= spaceLeft) {\n // add to current group this target\n groupCurrent.targets.unshift(targetTargets) // put at start\n // add to target current group\n const groupStr =\n targetTargets.getAttribute('data-xt-group') +\n options.groupSeparator +\n groupGroup +\n options.groupSeparator +\n (targetTargets.getAttribute('data-xt-group-same') ?? '')\n targetTargets.setAttribute('data-xt-group-same', groupStr)\n } else {\n // break loop\n i = self._groups.length - 1\n break\n }\n }\n }\n }\n }\n }\n\n /**\n * init slider pagination\n */\n _initPagination() {\n const self = this\n const options = self.options\n // not when empty it's possible to start empty\n if (!self.targets.length) {\n return false\n }\n // generate elements\n const pags = self.container.querySelectorAll(options.pagination)\n if (!pags.length) {\n console.error('Error: Xt.Slider pagination not found for', self.container)\n }\n // pags\n self.pags = self.pags ? self.pags : []\n const template = `${options.elements}.${options.elementsTemplate.split(' ').join('.')}`\n const templateInverse = `${options.elements}:not(.${options.elementsTemplate.split(' ').join('.')})`\n for (const [z, pag] of pags.entries()) {\n // vars\n const cloned = pag.querySelector(template)\n if (!cloned) {\n console.error(`Error: Xt.Slider ${template} not found inside`, pag)\n }\n const container = cloned.parentNode\n // populate\n self.pags[z] = []\n for (const [i, group] of self._groups.entries()) {\n const item = document.createElement('div') // needed to set innerHTML instead of outerHTML to do html.search also attributes\n const clone = cloned.cloneNode(true)\n clone.classList.remove(...options.elementsTemplate.split(' '))\n item.append(clone)\n let html = item.innerHTML\n const classes = ['xt-clone']\n let regex = new RegExp('xt-content', 'ig')\n if (html.search(regex) !== -1) {\n let replace = ''\n for (const tr of group.targets) {\n const content = tr.querySelector('[data-xt-slider-content]')\n if (content) {\n replace += content.innerHTML\n }\n const attr = tr.querySelector('[data-xt-slider-element-classes]')\n if (attr) {\n classes.push(attr.getAttribute('data-xt-slider-element-classes'))\n }\n }\n html = html.replace(regex, replace)\n }\n regex = new RegExp('xt-num', 'ig')\n if (html.search(regex) !== -1) {\n html = html.replace(regex, (i + 1).toString())\n }\n regex = new RegExp('xt-tot', 'ig')\n if (html.search(regex) !== -1) {\n html = html.replace(regex, self._groups.length.toString())\n }\n item.innerHTML = Xt.sanitize(html)\n if (classes.length) {\n item.children[0].classList.add(...classes)\n }\n item.children[0].setAttribute('data-xt-group', group.target.getAttribute('data-xt-group'))\n container.insertBefore(item.children[0], cloned)\n item.remove()\n self.pags[z][i] = container.querySelectorAll(templateInverse)[i]\n // save group element for activation\n self._groups[i].element = self.pags[0][i]\n }\n }\n }\n\n /**\n * init events\n */\n _initEvents() {\n super._initEvents()\n const self = this\n // init\n const initHandler = Xt.dataStorage.put(self.container, `init/${self.ns}`, self._eventInitHandler.bind(self))\n self.container.addEventListener('init.xt.slider', initHandler)\n // dragposition\n const dragpositionHandler = Xt.dataStorage.put(\n self.dragger,\n `dragposition/${self.ns}`,\n self._eventDragpositionHandler.bind(self)\n )\n self.dragger.addEventListener('dragposition.xt.slider', dragpositionHandler)\n // drag start\n const dragstartHandler = Xt.dataStorage.put(\n window,\n `mousedown touchstart/drag/${self.ns}`,\n self._eventDragstartHandler.bind(self)\n )\n const events = ['mousedown', 'touchstart']\n for (const event of events) {\n addEventListener(event, dragstartHandler, { passive: false })\n }\n // fix prevent dragging links and images\n const dragstartFixHandler = Xt.dataStorage.put(window, `dragstart/drag/${self.ns}`, self._eventDragstartFix)\n self.dragger.addEventListener('dragstart', dragstartFixHandler)\n // resize\n const reinitHandler = Xt.dataStorage.put(window, `resize/reinit/${self.ns}`, Xt._eventReinit.bind(null, { self }))\n addEventListener('resize.xt', reinitHandler)\n }\n\n /**\n * init start\n * @param {Object} params\n * @param {Boolean} params.save Save currents\n */\n _initStart({ save = false } = {}) {\n const self = this\n // init drag\n Xt.frame({\n el: self.container,\n ns: `${self.ns}InitDrag`,\n func: () => {\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n },\n })\n // super after\n super._initStart({ save })\n }\n\n //\n // handler\n //\n\n /**\n * init handler\n * @param {Event} e\n */\n _eventInitHandler() {\n const self = this\n // dragger initial\n self.dragger.classList.remove('initial')\n }\n\n /**\n * drag position handler\n * @param {Event} e\n */\n _eventDragpositionHandler() {\n const self = this\n const options = self.options\n // dragposition\n if (!options.dragposition && options.mode !== 'absolute') {\n self.initial || self.drag._instant ? self.dragger.classList.remove('on') : self.dragger.classList.add('on')\n // set internal position to resume animation mid dragging\n self.drag._position = self.drag._final\n self.dragger.style.transform = `translateX(${self.drag._final}px)`\n }\n }\n\n /**\n * drag fix\n * @param {Event} e\n */\n _eventDragstartFix(e) {\n e.preventDefault()\n }\n\n /**\n * drag on handler\n * @param {Event} e\n */\n _eventDragstartHandler(e) {\n const self = this\n const options = self.options\n // not when outside dragger\n if (!self.dragger.contains(e.target)) {\n return\n }\n // not right click or it gets stuck\n if (!e.button || e.button !== 2) {\n // handler\n if (options.eventLimit) {\n const eventLimit = self._containerTargets.querySelectorAll(options.eventLimit)\n if (!Xt.contains({ els: eventLimit, tr: e.target })) {\n self._eventDragstart(e)\n }\n } else {\n self._eventDragstart(e)\n }\n // dragend\n const dragendHandler = Xt.dataStorage.put(\n window,\n `mouseup touchend/drag/${self.ns}`,\n self._eventDragendHandler.bind(self)\n )\n const events = ['mouseup', 'touchend']\n for (const event of events) {\n addEventListener(event, dragendHandler)\n }\n }\n }\n\n /**\n * drag off handler\n * @param {Event} e\n */\n _eventDragendHandler(e) {\n const self = this\n const options = self.options\n // logic\n if (options.eventLimit) {\n const eventLimit = self._containerTargets.querySelectorAll(options.eventLimit)\n if (!Xt.contains({ els: eventLimit, tr: e.target })) {\n self._eventDragend(e)\n }\n } else {\n self._eventDragend(e)\n }\n }\n\n /**\n * drag on\n * @param {Event} e\n */\n _eventDragstart(e) {\n const self = this\n // event move\n const dragHandler = Xt.dataStorage.put(\n window,\n `mousemove touchmove/drag/${self.ns}`,\n self._eventDragHandler.bind(self)\n )\n const events = ['mousemove', 'touchmove']\n for (const event of events) {\n addEventListener(event, dragHandler, { passive: false })\n }\n // logic\n self._logicDragstart(e)\n }\n\n /**\n * drag handler\n * @param {Event} e\n */\n _eventDragHandler(e) {\n const self = this\n // logic\n self._logicDrag(e)\n }\n\n /**\n * drag off\n * @param {Event} e\n */\n _eventDragend(e) {\n const self = this\n // event off\n const dragendHandler = Xt.dataStorage.get(window, `mouseup touchend/drag/${self.ns}`)\n const eventsoff = ['mouseup', 'touchend']\n for (const event of eventsoff) {\n removeEventListener(event, dragendHandler)\n }\n // event move\n const dragHandler = Xt.dataStorage.get(window, `mousemove touchmove/drag/${self.ns}`)\n const eventsmove = ['mousemove', 'touchmove']\n for (const event of eventsmove) {\n removeEventListener(event, dragHandler)\n }\n // logic\n self._logicDragend(e)\n }\n\n //\n // event\n //\n\n /**\n * element on\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el To be activated\n * @param {Boolean} params.force\n * @param {Event} e\n * @return {Boolean} If activated\n */\n _eventOn({ el, force = false }, e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // get the right slide\n let found\n for (const group of self._groups) {\n // targetsInitial because multiple pagination\n if (group.element === el || group.targetsInitial.includes(el)) {\n found = group\n }\n }\n if (!found) return\n const group = found\n el = found.element\n const tr = found.target\n // fix keep self.drag._instant\n const isDrag = self.drag._instant\n // activation\n super._eventOn({ el, force }, e)\n // vars\n const first = self._groups[self.drag._wrapFirst].target\n const last = self._groups[self.drag._wrapLast].target\n const min = Xt.dataStorage.get(first, `${self.ns}GroupLeft`)\n const max = Xt.dataStorage.get(last, `${self.ns}GroupLeft`)\n const maxCheck = options.mode !== 'absolute' ? max : Xt.dataStorage.get(first, `${self.ns}GroupWidth`)\n // val\n self.drag._initial = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n // fix absolute loop\n if (options.mode === 'absolute' && options.loop && !self.initial) {\n if (tr === last && (self.drag._direction < 0 || self.drag._position >= min)) {\n // val\n self.drag._final = max - min + self.drag._position - maxCheck\n // dispatch event\n self.drag._instant = true\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n } else if (tr === first && (self.drag._direction > 0 || self.drag._position <= max)) {\n self.drag._final = min - max + self.drag._position + maxCheck\n // dispatch event\n self.drag._instant = true\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n }\n }\n // fix absolute multi step activation (only if not already applied fix)\n if (options.mode === 'absolute' && !self.drag._instant && self.direction) {\n const diff = self.drag._initial - self.drag._position\n if (Math.abs(diff) > maxCheck) {\n // remainder add or remove maxCheck depending on direction\n let remainder = diff % maxCheck\n remainder += maxCheck * self.direction\n // val\n self.drag._final = self.drag._initial - remainder\n // dispatch event\n self.drag._instant = true\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n }\n }\n // val\n self.drag._final = self.drag._initial\n // ratio\n self.drag._ratioInverse = Math.abs(self.drag._final - self.drag._position) / Math.abs(maxCheck - min)\n self.drag._ratio = 1 - self.drag._ratioInverse\n // dispatch event\n self.drag._instant = false\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n // fix keep self.drag._instant\n self.drag._instant = isDrag\n Xt.frame({\n el: self.container,\n ns: `${self.ns}isDrag`,\n func: () => {\n self.drag._instant = false\n },\n })\n // wrap after self.drag._final for proper initial initialization direction (e.g. slider api)\n self._eventWrap({ index: self.index })\n // autoHeight and keepHeight\n if (self._autoHeight || (self._keepHeight && self.initial)) {\n let groupHeight = 0\n for (const tr of group.targets) {\n const content = tr.children.length ? tr.children[0] : tr\n const height = content.offsetHeight\n groupHeight = height > groupHeight ? height : groupHeight\n }\n if (groupHeight > 0) {\n groupHeight += 'px'\n if (self._autoHeight.style.height !== groupHeight) {\n self._autoHeight.style.height = groupHeight\n // dispatch event\n tr.dispatchEvent(new CustomEvent(`autoheight.${self._componentNs}`))\n }\n if (self._keepHeight && self.initial) {\n self._keepHeight.style.height = groupHeight\n }\n }\n }\n }\n\n /**\n * set direction\n */\n _setDirection() {\n const self = this\n // set direction\n if (self.index === null || self.index === self._oldIndex) {\n // initial direction and same index direction\n self.direction = 0\n } else if (self._inverse !== null) {\n // forced value\n self.direction = self._inverse ? -1 : 1\n } else {\n // direction before setting positions we check target activations positions (also when wrap there's no other way)\n const left = Xt.dataStorage.get(self._groups[self.index].target, `${self.ns}GroupLeft`)\n const leftOld = Xt.dataStorage.get(self._groups[self._oldIndex].target, `${self.ns}GroupLeft`)\n self.direction = left > leftOld ? -1 : 1\n }\n self._inverse = self.direction < 0\n }\n\n /**\n * wrap\n * @param {Object} params\n * @param {Boolean} params.index\n */\n _eventWrap({ index } = {}) {\n const self = this\n // logic\n if (self._wrap) {\n const tr = self._groups[index].target\n const wrapLeft = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n const previousWidth = Xt.dataStorage.get(tr, `${self.ns}GroupWidth`)\n // only one call\n let direction = self.direction\n if (!direction) {\n // fix on init and reinit set direction to left (-1) if on left, to right (1) if on right\n direction = self.drag._final > -self.drag._size ? -1 : 1\n }\n if (self.drag._wrapDir !== direction || self.drag._wrapIndex !== index) {\n self.drag._wrapDir = direction\n self.drag._wrapIndex = index\n self._eventMove({ index, direction, wrapLeft, previousWidth, wrapSpace: previousWidth })\n }\n }\n }\n\n /**\n * eventMove\n * @param {Object} params\n * @param {Number} params.index\n * @param {Number} params.direction\n * @param {Number} params.wrapLeft\n * @param {Number} params.previousWidth\n * @param {Number} params.wrapSpace\n */\n _eventMove({ index, direction, wrapLeft, previousWidth, wrapSpace } = {}) {\n const self = this\n const options = self.options\n // index\n const tot = self._groups.length\n if (direction < 0) {\n index = self.getPrevIndex({ index })\n // keep index of moved slides\n self.drag._wrapFirst = index\n self.drag._wrapFirst = self.drag._wrapFirst < tot ? self.drag._wrapFirst : self.drag._wrapFirst - tot\n self.drag._wrapFirst = self.drag._wrapFirst >= 0 ? self.drag._wrapFirst : tot + self.drag._wrapFirst\n // keep index of moved slides\n self.drag._wrapLast = self.drag._wrapFirst - 1\n self.drag._wrapLast = self.drag._wrapLast < tot ? self.drag._wrapLast : self.drag._wrapLast - tot\n self.drag._wrapLast = self.drag._wrapLast >= 0 ? self.drag._wrapLast : tot + self.drag._wrapLast\n } else if (direction > 0) {\n index = self.getNextIndex({ index })\n // keep index of moved slides\n self.drag._wrapLast = index\n self.drag._wrapLast = self.drag._wrapLast < tot ? self.drag._wrapLast : self.drag._wrapLast - tot\n self.drag._wrapLast = self.drag._wrapLast >= 0 ? self.drag._wrapLast : tot + self.drag._wrapLast\n // keep index of moved slides\n self.drag._wrapFirst = self.drag._wrapLast + 1\n self.drag._wrapFirst = self.drag._wrapFirst < tot ? self.drag._wrapFirst : self.drag._wrapFirst - tot\n self.drag._wrapFirst = self.drag._wrapFirst >= 0 ? self.drag._wrapFirst : tot + self.drag._wrapFirst\n }\n // when only one item index is null\n if (index === null) return\n // logic\n let translate\n let left = wrapLeft\n const group = self._groups[index].targetsInitial\n const tr = group[0]\n const leftInitial = Xt.dataStorage.get(tr, `${self.ns}TrLeftInitial`)\n const width = Xt.dataStorage.get(tr, `${self.ns}GroupWidth`)\n // calculate left (left position of the dragger when tr activated)\n // values are inverted (+ is going left, - is going right)\n // we need different calculation depending on direction because the line is on the left or on the right of tr\n if (direction < 0) {\n if (options.align === 'center') {\n // left is the center position of current tr\n left += previousWidth / 2 + width / 2\n } else if (options.align === 'left') {\n // left is the left position of current tr\n left += width\n } else if (options.align === 'right') {\n // left is the right position of current tr\n left += previousWidth\n }\n } else if (direction > 0) {\n if (options.align === 'center') {\n // left is the center position of current tr\n left -= previousWidth / 2 + width / 2\n } else if (options.align === 'left') {\n // left is the left position of current tr\n left -= previousWidth\n } else if (options.align === 'right') {\n // left is the right position of current tr\n left -= width\n }\n }\n for (const tr of group) {\n Xt.dataStorage.set(tr, `${self.ns}GroupLeft`, left)\n }\n // calculate translate (translate position of the tr)\n // values are inverted (+ is going left, - is going right)\n if (direction < 0) {\n // translate is the difference from current wrapLeft and tr initial left and tr width\n translate = wrapLeft + leftInitial + width\n } else if (direction > 0) {\n // translate is the difference from current wrapLeft and tr initial left and previous tr width\n translate = wrapLeft + leftInitial - previousWidth\n }\n if (options.align === 'center') {\n // remove the space between left drag position and final position\n // remove from translate the difference between half drag size and half previous tr width\n translate -= self.drag._size / 2 - previousWidth / 2\n } else if (options.align === 'left') {\n // remove the space between left drag position and final position\n translate -= 0\n } else if (options.align === 'right') {\n // remove the space between left drag position and final position\n // remove from translate the difference from drag size and previous tr width\n translate -= self.drag._size - previousWidth\n }\n for (const tr of group) {\n const trLeftInitial = Xt.dataStorage.get(tr, `${self.ns}TrLeftInitial`)\n Xt.dataStorage.set(tr, `${self.ns}TrLeft`, trLeftInitial - translate)\n tr.style.transform = `translateX(${-translate}px)`\n }\n // calculate space (current wrap space difference of activation to check against drag size)\n // we need different calculation depending on direction because the line is on the left or on the right of tr\n if (direction < 0) {\n if (options.align === 'center') {\n wrapSpace += width + previousWidth / 2\n } else if (options.align === 'left') {\n wrapSpace += width + self.drag._size - previousWidth\n } else if (options.align === 'right') {\n wrapSpace += width\n }\n } else if (direction > 0) {\n if (options.align === 'center') {\n wrapSpace += width + previousWidth / 2\n } else if (options.align === 'left') {\n wrapSpace += width\n } else if (options.align === 'right') {\n wrapSpace += width + self.drag._size - previousWidth\n }\n }\n // continue moving only if wrapSpace is smaller than drag\n if (wrapSpace <= self.drag._size) {\n self._eventMove({ index, direction, wrapLeft: left, previousWidth: width, wrapSpace })\n }\n }\n\n //\n // logic\n //\n\n /**\n * drag on logic\n * @param {Event} e\n */\n _logicDragstart(e) {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // save event\n if (e.clientX !== undefined) {\n self.drag._start = e.clientX\n self.drag._startOther = e.clientY\n } else if (e.touches && e.touches.length) {\n self.drag._start = e.touches[0].clientX\n self.drag._startOther = e.touches[0].clientY\n }\n // auto\n self._eventAutostop()\n // vars\n self._autoblock = true\n self.drag._instant = true\n self.drag._lock = false\n self.drag._prevent = false\n self.drag._index = self.index\n self.drag._old = self.drag._start\n self.drag._overflow = null\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragstart.${self._componentNs}`))\n }\n\n /**\n * drag off logic\n * @param {Event} e\n */\n _logicDragend(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // save event\n if (e.clientX !== undefined) {\n self.drag._current = e.clientX\n self.drag._currentOther = e.clientY\n } else if (e.touches && e.touches.length) {\n self.drag._current = e.touches[0].clientX\n self.drag._currentOther = e.touches[0].clientY\n }\n // vars\n self._autoblock = false\n // disable interaction\n for (const tr of self.targets) {\n tr.classList.remove('pointer-events-none')\n }\n // fix no drag change when click\n if (self.drag._start === self.drag._current) {\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragend.${self._componentNs}`))\n return\n }\n // raf because on.xt.slider event after all drag.xt.slider\n requestAnimationFrame(() => {\n // only if dragging enough\n if (self.drag._lock) {\n const index = self.index\n // if on the same slide as we started dragging\n if (index !== self.drag._index || Math.abs(self.drag._distance) >= self.drag._size) {\n // goToNum\n self.goToNum({ index })\n } else {\n // depending on direction and if direction is not going back\n const direction = Math.sign(self.drag._distance)\n if (\n direction > 0 &&\n self.drag._direction > 0 &&\n (options.loop || self._wrap || index !== self.getElementsGroups().length - 1)\n ) {\n self.goToNext({ amount: 1 })\n } else if (direction < 0 && self.drag._direction < 0 && (options.loop || self._wrap || index !== 0)) {\n self.goToPrev({ amount: 1 })\n } else {\n self._logicDragreset()\n }\n }\n } else {\n self._logicDragreset()\n }\n // auto\n self._eventAutostart()\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragend.${self._componentNs}`))\n })\n }\n\n /**\n * drag logic\n * @param {Event} e\n */\n _logicDrag(e) {\n const self = this\n const options = self.options\n // disabled\n if (self.disabled) {\n return\n }\n // save event\n if (e.clientX !== undefined) {\n self.drag._current = e.clientX\n self.drag._currentOther = e.clientY\n } else if (e.touches && e.touches.length) {\n self.drag._current = e.touches[0].clientX\n self.drag._currentOther = e.touches[0].clientY\n }\n // check threshold\n self.drag._distance = self.drag._start - self.drag._current\n self.drag._distanceOther = self.drag._startOther - self.drag._currentOther\n // prevent drag and lock drag\n if (!self.drag._lock && !self.drag._prevent) {\n if (Math.abs(self.drag._distanceOther) > options.drag.threshold) {\n // only if dragging enough other\n // prevent drag\n self.drag._prevent = true\n } else if (Math.abs(self.drag._distance) > options.drag.threshold) {\n // only if dragging enough\n // lock drag\n self.drag._lock = true\n }\n }\n // prevent drag\n if (self.drag._prevent) {\n return\n }\n if (self.drag._lock) {\n // prevent page scroll\n if (e.cancelable) {\n e.preventDefault()\n }\n // disable interaction\n for (const tr of self.targets) {\n tr.classList.add('pointer-events-none')\n }\n }\n // calc\n const first = self._groups[self.drag._wrapFirst].target\n const last = self._groups[self.drag._wrapLast].target\n const min = Xt.dataStorage.get(first, `${self.ns}GroupLeft`)\n const max = Xt.dataStorage.get(last, `${self.ns}GroupLeft`)\n const maxCheck = options.mode !== 'absolute' ? max : Xt.dataStorage.get(first, `${self.ns}GroupWidth`)\n // val\n let final = self.drag._position + (self.drag._current - self.drag._old) * options.drag.factor\n self.drag._direction = self.drag._current > self.drag._old ? -1 : 1\n self.drag._old = self.drag._current\n // overflow\n if (options.drag.overflow && !self._wrap && options.mode !== 'absolute') {\n const direction = Math.sign(self.drag._distance)\n if (final > min && direction < 0) {\n self.drag._overflow = self.drag._overflow ? self.drag._overflow : self.drag._current\n const overflow = self.drag._current - self.drag._overflow\n final = overflow > 0 ? min + options.drag.overflow({ overflow }) : final\n } else if (final < max && direction > 0) {\n self.drag._overflow = self.drag._overflow ? self.drag._overflow : self.drag._current\n const overflow = self.drag._current - self.drag._overflow\n final = overflow < 0 ? max - options.drag.overflow({ overflow: -overflow }) : final\n }\n }\n // val\n self.drag._final = final\n // set direction\n self.direction = Math.sign(self.drag._initial - self.drag._final)\n self._inverse = self.direction < 0\n // ratio\n self.drag._ratio = Math.abs(self.drag._final - self.drag._initial) / Math.abs(maxCheck - min)\n self.drag._ratioInverse = 1 - self.drag._ratio\n // fix dragging furiously more than one\n if (options.mode === 'absolute' && (self.drag._ratio > 1 || self.drag._ratio < -1)) {\n return\n }\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`drag.${self._componentNs}`))\n // reset\n self._inverse = null\n // activation\n if (options.mode !== 'absolute' && self.drag._lock) {\n // get nearest\n const found = self._logicDragfind({ index: self.index })\n if (found !== null && found !== self.index) {\n super._eventOn({ el: self._groups[found].element, force: true })\n self._eventWrap({ index: found })\n }\n }\n }\n\n /**\n * drag reset logic\n */\n _logicDragreset() {\n const self = this\n // set direction\n self.direction = self.direction * -1\n self._inverse = self.direction < 0\n // ratio\n self.drag._ratio = self.drag._ratioInverse\n self.drag._ratioInverse = 1 - self.drag._ratio\n // val\n self.drag._final = self.drag._initial\n // dispatch event\n self.drag._instant = false\n self.dragger.dispatchEvent(new CustomEvent(`dragposition.${self._componentNs}`))\n // dispatch event\n self.dragger.dispatchEvent(new CustomEvent(`dragreset.${self._componentNs}`))\n // reset\n self._inverse = null\n // auto\n self._eventAutostart()\n }\n\n /**\n * activate index depending on drag position\n * @param {Object} params\n * @param {Boolean} params.index\n * @return {Number} Activation index\n */\n _logicDragfind({ index } = {}) {\n const self = this\n // find activation\n const direction = self.drag._direction\n if (direction < 0) {\n const first = self._groups[self.drag._wrapFirst].target\n const min = Xt.dataStorage.get(first, `${self.ns}GroupLeft`)\n if (self.drag._final >= min) {\n return self.drag._wrapFirst\n }\n for (let i = index; i >= 0; i--) {\n const tr = self._groups[i].target\n const left = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n const width = Xt.dataStorage.get(tr, `${self.ns}GroupWidth`)\n // first inside dragger on the left\n if (self.drag._final < left + width / 2) {\n return i\n }\n if (i === 0) {\n // continue loop\n i = self._groups.length\n }\n if (i === index + 1) {\n // break loop\n break\n }\n }\n } else if (direction > 0) {\n const last = self._groups[self.drag._wrapLast].target\n const max = Xt.dataStorage.get(last, `${self.ns}GroupLeft`)\n if (self.drag._final <= max) {\n return self.drag._wrapLast\n }\n for (let i = index; i < self._groups.length; i++) {\n const tr = self._groups[i].target\n const left = Xt.dataStorage.get(tr, `${self.ns}GroupLeft`)\n const width = Xt.dataStorage.get(tr, `${self.ns}GroupWidth`)\n // last inside dragger on the right\n if (self.drag._final > left - width / 2) {\n return i\n }\n if (i === self._groups.length - 1) {\n // continue loop\n i = -1\n }\n if (i === index - 1) {\n // break loop\n break\n }\n }\n }\n return null\n }\n\n //\n // status\n //\n\n /**\n * disable\n */\n enable() {\n const self = this\n const options = self.options\n // enable\n if (self.disabled) {\n // grab\n self.dragger.classList.add('xt-grab')\n // hideDisable\n if (options.hideDisable) {\n const els = self.container.querySelectorAll(options.hideDisable)\n for (const el of els) {\n el.classList.remove('hidden')\n }\n }\n }\n // super after\n super.enable()\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n const options = self.options\n // disable\n if (!self.disabled) {\n // clean\n self._destroyGrab()\n self._destroyIntraction()\n // hideDisable\n if (options.hideDisable) {\n const els = self.container.querySelectorAll(options.hideDisable)\n for (const el of els) {\n el.classList.add('hidden')\n }\n }\n }\n // super after\n super.disable({ skipEvent })\n }\n\n //\n // util\n //\n\n /**\n * destroy\n * @param {Object} params\n * @param {Boolean} params.weak Do not destroy component\n */\n destroy({ weak = false } = {}) {\n const self = this\n // clean\n self._destroyGrab()\n self._destroyIntraction()\n self._destroyNooverflow()\n self._destroyDrag()\n self._destroyAutoheight()\n self._destroyPagination()\n self._destroyWrap()\n // super after\n super.destroy({ weak })\n }\n\n /**\n * destroy grab\n */\n _destroyGrab() {\n const self = this\n // grab\n if (self.dragger) {\n self.dragger.classList.remove('xt-grab')\n }\n }\n\n /**\n * destroy intraction\n */\n _destroyIntraction() {\n const self = this\n // disable interaction\n for (const tr of self.targets) {\n tr.classList.remove('pointer-events-none')\n }\n }\n\n /**\n * destroy drag\n */\n _destroyDrag() {\n const self = this\n // drag position\n self.dragger.style.transform = ''\n }\n\n /**\n * destroy nooverflow\n */\n _destroyNooverflow() {\n const self = this\n const options = self.options\n // reset nooverflow\n if (options.nooverflow) {\n self.dragger.classList.remove(...options.nooverflow.split(' '))\n self._disabledManual = false\n }\n }\n\n /**\n * destroy autoheight\n */\n _destroyAutoheight() {\n const self = this\n // autoHeight\n if (self._autoHeight || self._keepHeight) {\n self._autoHeight.style.height = ''\n }\n }\n\n /**\n * destroy pagination\n */\n _destroyPagination() {\n const self = this\n // clean pagination\n if (self.pags && self.pags.length) {\n for (const pag of self.pags) {\n for (const oldPag of pag) {\n oldPag.remove()\n }\n }\n self.pags = []\n }\n }\n\n /**\n * destroy wrap\n */\n _destroyWrap() {\n const self = this\n // clean wrap also if no wrap in options\n for (const tr of self.targets) {\n tr.style.transform = ''\n }\n }\n\n //\n}\n\n//\n// options\n//\n\nSlider.componentName = 'xt-slider'\nSlider.optionsDefault = {\n // slider\n mode: 'relative',\n group: false,\n groupSame: true,\n align: 'center',\n contain: true,\n wrap: false,\n dragposition: false,\n nooverflow: '!transform-none justify-center',\n autoHeight: false,\n keepHeight: false,\n pagination: '[data-xt-slider-pagination]',\n hideDisable: '[data-xt-slider-pagination], [data-xt-nav], [data-xt-slider-hide-disabled]',\n drag: {\n dragger: '[data-xt-slider-dragger]',\n threshold: 30,\n factor: 1,\n overflow: ({ overflow }) => {\n return Math.min(overflow, Math.log(1 + Math.pow(overflow, 10)))\n },\n },\n // element\n elementsTemplate: 'hidden',\n elements: '[data-xt-slider-element]',\n targets: '[data-xt-slider-target]',\n // quantity\n min: 1,\n max: 1,\n // event\n on: 'click',\n off: 'click',\n mouseParent: false,\n // timing\n queue: false,\n // other\n visibleReinit: true,\n jump: false,\n navigation: '[data-xt-nav]',\n zIndex: {\n targets: {\n start: 200, // same as options.zIndex.targets.start\n factor: -1,\n },\n },\n a11y: {\n role: 'carousel',\n labelElements: false,\n labelTargets: true,\n controls: true,\n selected: false,\n expanded: false,\n live: true,\n disabled: true,\n keyboard: true,\n vertical: false,\n items: false,\n },\n}\n\n//\n// export\n//\n\nXt.Slider = Slider\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Slider.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Slider.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Slider(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Stickyflow\n */\nclass Stickyflow {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n _scrollTopOld\n componentName\n ns\n options\n initial\n disabled = false\n container\n element\n filler\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // elements\n self.element = self.container.querySelector(options.element)\n self.filler = self.container.querySelector(options.filler)\n // vars\n self._scrollTopOld = 0\n // events\n const changeHandler = Xt.dataStorage.put(window, `scroll resize/${self.ns}`, self._eventChange.bind(self))\n addEventListener('scroll', changeHandler)\n addEventListener('resize', changeHandler)\n // initial\n self._initStart()\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // initial\n self._eventChange()\n }\n\n //\n // methods\n //\n\n /**\n * eventChange\n * @param {Node|HTMLElement|EventTarget|Window} step\n * @param {Event} e\n */\n _eventChange() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // position\n const scrollTop = document.scrollingElement.scrollTop\n const windowHeight = window.innerHeight\n const objectHeight = self.element.offsetHeight\n if (objectHeight < windowHeight) {\n self.filler.style.height = ''\n self.element.style.top = '0'\n self.element.style.bottom = ''\n } else {\n if (scrollTop > self._scrollTopOld) {\n if (!self.element.classList.contains('xt-stickyflow-top')) {\n const pos = windowHeight - objectHeight\n const height = Math.max(0, self.element.offsetTop - self.filler.offsetTop)\n self.filler.style.height = `${height}px`\n self.element.style.top = `${pos}px`\n self.element.style.bottom = ''\n self.element.classList.remove('xt-stickyflow-bottom')\n self.element.classList.add('xt-stickyflow-top')\n }\n } else {\n if (!self.element.classList.contains('xt-stickyflow-bottom')) {\n const pos = windowHeight - objectHeight\n const height = Math.max(0, self.element.offsetTop - self.filler.offsetTop)\n self.filler.style.height = `${height}px`\n self.element.style.top = ''\n self.element.style.bottom = `${pos}px`\n self.element.classList.add('xt-stickyflow-bottom')\n self.element.classList.remove('xt-stickyflow-top')\n }\n }\n }\n // change\n Xt.frame({\n el: self.container,\n ns: `${self.ns}Change`,\n func: () => {\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`change.${self._componentNs}`))\n },\n })\n self._scrollTopOld = scrollTop\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // position\n self.filler.style.height = ''\n self.element.style.top = ''\n self.element.style.bottom = ''\n self.element.classList.remove('xt-stickyflow-bottom')\n self.element.classList.remove('xt-stickyflow-top')\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n // remove events\n const changeHandler = Xt.dataStorage.get(window, `scroll resize/${self.ns}`)\n removeEventListener('scroll', changeHandler)\n removeEventListener('resize', changeHandler)\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nStickyflow.componentName = 'xt-stickyflow'\nStickyflow.optionsDefault = {\n debug: false,\n // elements\n element: false,\n filler: false,\n}\n\n//\n// export\n//\n\nXt.Stickyflow = Stickyflow\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Stickyflow.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Stickyflow.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Stickyflow(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport JSON5 from 'json5'\nXt.JSON5 = JSON5\n\n/**\n * Textareaautosize\n */\nclass Textareaautosize {\n /**\n * fields\n */\n _optionsCustom\n _optionsDefault\n _optionsInitial\n _componentNs\n componentName\n ns\n options\n initial\n disabled = false\n container\n form\n\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n const self = this\n self.container = object\n self._optionsCustom = optionsCustom\n self.componentName = self.constructor.componentName\n self._componentNs = self.componentName.replace('-', '.')\n // init\n self._initVars()\n self._initLogic()\n }\n\n //\n // init\n //\n\n /**\n * init vars\n */\n _initVars() {\n const self = this\n // options\n self._optionsDefault = Xt.merge([self.constructor.optionsDefault, Xt.options[self.componentName]])\n self._optionsInitial = self.options = Xt.merge([self._optionsDefault, self._optionsCustom])\n }\n\n /**\n * init logic\n */\n _initLogic() {\n const self = this\n const options = self.options\n // set self\n Xt._set({ name: self.componentName, el: self.container, self })\n // namespace\n self.ns = self.ns ?? Xt.uniqueId()\n // enable first for proper initial activation\n self.enable()\n // matches\n Xt._initMatches({ self, optionsInitial: self._optionsInitial })\n // vars\n self.initial = true\n // key\n const changeHandler = Xt.dataStorage.put(\n self.container,\n `keydown keyup reset/${self.ns}`,\n self._keychange.bind(self)\n )\n self.container.addEventListener('keydown', changeHandler)\n self.container.addEventListener('keyup', changeHandler)\n self.form = self.container.closest('form')\n if (self.form) {\n self.form.addEventListener('reset', changeHandler)\n }\n // initial\n self._initStart()\n // init\n // needs frameDouble after ondone\n Xt.frameDouble({\n el: self.container,\n ns: `${self.ns}Init`,\n func: () => {\n // initialized class\n self.container.setAttribute(`data-${self.componentName}-init`, '')\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`init.${self._componentNs}`))\n self.initial = false\n // debug\n if (options.debug) {\n // eslint-disable-next-line no-console\n console.debug(`${self.componentName} init`, self)\n }\n },\n })\n // disable last for proper options.disableDeactivate\n if (self.options.disabled) {\n self.disable()\n }\n }\n\n /**\n * init start\n */\n _initStart() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // logic\n self._keychange.bind(self)()\n }\n\n //\n // methods\n //\n\n /**\n * keychange\n */\n _keychange() {\n const self = this\n // disabled\n if (self.disabled) {\n return\n }\n // size\n self.container.style.height = '5px'\n self.container.style.height = `${self.container.scrollHeight}px` // fixes both safari RAF and form reset\n Xt.frame({\n el: self.container,\n ns: `${self.ns}Keychange`,\n func: () => {\n self.container.style.height = '5px' // fixes both safari RAF and form reset\n self.container.style.height = `${self.container.scrollHeight}px`\n },\n })\n }\n\n //\n // status\n //\n\n /**\n * enable\n */\n enable() {\n const self = this\n if (self.disabled) {\n // enable\n self.disabled = false\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n\n /**\n * disable\n * @param {Object} params\n * @param {Boolean} params.skipEvent Skip dispatch event\n */\n disable({ skipEvent = false } = {}) {\n const self = this\n if (!self.disabled) {\n // disable\n self.disabled = true\n // size\n self.container.style.height = ''\n Xt.frame({\n el: self.container,\n ns: `${self.ns}Keychange`,\n })\n // dispatch event\n if (!skipEvent) {\n self.container.dispatchEvent(new CustomEvent(`status.${self._componentNs}`))\n }\n }\n }\n\n //\n // util\n //\n\n /**\n * reinit\n */\n reinit() {\n const self = this\n // reinit\n self._initLogic()\n }\n\n /**\n * destroy\n */\n destroy() {\n const self = this\n // reset\n self.container.style.height = ''\n // remove events\n const changeHandler = Xt.dataStorage.get(self.container, `keydown keyup reset/${self.ns}`)\n self.container.removeEventListener('keydown', changeHandler)\n self.container.removeEventListener('keyup', changeHandler)\n if (self.form) {\n self.form.removeEventListener('reset', changeHandler)\n }\n // initialized class\n self.container.removeAttribute(`data-${self.componentName}-init`)\n // set self\n Xt._remove({ name: self.componentName, el: self.container })\n // dispatch event\n self.container.dispatchEvent(new CustomEvent(`destroy.${self._componentNs}`))\n // delete\n delete this\n }\n\n //\n}\n\n//\n// options\n//\n\nTextareaautosize.componentName = 'xt-textareaautosize'\nTextareaautosize.optionsDefault = {\n debug: false,\n}\n\n//\n// export\n//\n\nXt.Textareaautosize = Textareaautosize\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Textareaautosize.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Textareaautosize.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Textareaautosize(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\nimport './toggle.mjs'\nimport JSON5 from 'json5'\nimport { createPopper } from '@popperjs/core'\nXt.JSON5 = JSON5\nXt.createPopper = createPopper\n\n/**\n * Tooltip\n */\nclass Tooltip extends Xt.Toggle {\n /**\n * constructor\n * @param {Node|HTMLElement|EventTarget|Window} object Base node\n * @param {Object} optionsCustom User options\n * @constructor\n */\n constructor(object, optionsCustom = {}) {\n super(object, optionsCustom)\n }\n\n //\n // event util\n //\n\n /**\n * activate element\n * @param {Object} params\n * @param {Node|HTMLElement|EventTarget|Window} params.el Elements to be activated\n * @param {String} params.type Type of element\n */\n _activate({ el, type } = {}) {\n super._activate({ el, type })\n const self = this\n const options = self.options\n // popperjs\n if (options.popperjs) {\n if (type === 'targets') {\n // instant\n el.style.transition = 'none'\n requestAnimationFrame(() => {\n el.style.transition = ''\n })\n // popperjs\n const element = self.getElements({ el })[0]\n const popperEl = options.positionInner ? element.querySelector(options.positionInner) ?? element : element\n // fix element and target must be visible\n if (Xt.visible({ el: popperEl }) && Xt.visible({ el })) {\n const arrow = el.querySelector(':scope > .xt-arrow')\n const popperOptionsDefault = {\n placement: el.getAttribute('data-xt-position') || options.position,\n strategy: options.strategy,\n resize: false,\n modifiers: [\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n },\n },\n {\n name: 'preventOverflow',\n options: {\n padding: options.spaceOverflow,\n },\n },\n {\n name: 'flip',\n options: {\n padding: options.spaceFlip,\n },\n },\n ],\n }\n if (arrow) {\n popperOptionsDefault.modifiers.push({\n name: 'arrow',\n options: {\n element: arrow,\n padding: options.spaceArrow === false ? arrow.getBoundingClientRect().height / 2 : options.spaceArrow,\n },\n })\n }\n // inset\n if (options.inset) {\n const inset = {\n name: 'offset',\n options: {\n offset: ({ placement, popper }) => {\n if (placement.search('left') !== -1 || placement.search('right') !== -1) {\n return [0, -popper.width]\n }\n if (placement.search('top') !== -1 || placement.search('bottom') !== -1) {\n return [0, -popper.height]\n }\n return []\n },\n },\n }\n popperOptionsDefault.modifiers.push(inset)\n el.setAttribute('data-popper-inset', 'true')\n } else {\n el.removeAttribute('data-popper-inset', 'true')\n }\n const popperOptions = Xt.merge([popperOptionsDefault, options.popperjs])\n // init\n let popperInstance = Xt.dataStorage.get(el, 'PopperInstance')\n if (popperInstance) {\n popperInstance.setOptions(popperOptions)\n } else {\n popperInstance = createPopper(popperEl, el, popperOptions)\n Xt.dataStorage.set(el, 'PopperInstance', popperInstance)\n }\n // fix recalc position with new css depending on position\n requestAnimationFrame(() => {\n popperInstance.update()\n })\n }\n }\n }\n }\n\n //\n}\n\n//\n// options\n//\n\nTooltip.componentName = 'xt-tooltip'\nTooltip.optionsDefault = {\n // element\n elements: '[data-xt-tooltip-element]',\n targets: '[data-xt-tooltip-target]',\n // class\n classSkip: {\n elements: true,\n elementsInner: true,\n },\n // quantity\n min: 0,\n max: 1,\n // event\n on: 'mouseenter focus',\n off: 'mouseleave',\n mouseParent: false,\n eventLimit: '.xt-event-limit, .xt-tooltip',\n closeauto: true,\n openauto: false,\n closeDeep: '.xt-dismiss',\n closeInside: '.xt-backdrop',\n closeOutside: 'body',\n preventEvent: true,\n // timing\n queue: {\n elements: false,\n targets: true,\n elementsInner: false,\n targetsInner: true,\n },\n // other\n disableDeactivate: true,\n position: 'top',\n positionInner: false,\n strategy: 'absolute',\n spaceOverflow: 15,\n spaceFlip: 15,\n spaceArrow: false,\n popperjs: true,\n zIndex: {\n targets: {\n start: 500, // same as options.zIndex.targets.start\n factor: -1,\n },\n },\n a11y: {\n role: 'tooltip',\n labelElements: true,\n labelTargets: false,\n controls: false,\n selected: false,\n expanded: false,\n live: true,\n disabled: true,\n keyboard: true,\n vertical: false,\n items: false,\n },\n}\n\n//\n// export\n//\n\nXt.Tooltip = Tooltip\n\n//\n// observe\n//\n\nif (typeof window !== 'undefined') {\n Xt.mount({\n matches: `[data-${Xt.Tooltip.componentName}]`,\n mount: ({ ref }) => {\n // vars\n\n const optionsMarkup = ref.getAttribute(`data-${Xt.Tooltip.componentName}`)\n const options = optionsMarkup ? JSON5.parse(optionsMarkup) : {}\n\n // init\n\n let self = new Xt.Tooltip(ref, options)\n\n // unmount\n\n return () => {\n self.destroy()\n self = null\n }\n },\n })\n}\n","/*!\n * Xtend UI (https://xtendui.com/)\n * @copyright (c) 2017-2022 Riccardo Caroli\n * @license MIT (https://github.com/xtendui/xtendui/blob/master/LICENSE.txt)\n */\n\nimport { Xt } from './xt.mjs'\n\nif (typeof window !== 'undefined') {\n Xt.usabilityIgnore = '.sf-toolbar, .gm-style'\n Xt.usabilityHostnames = '127.0.0.1 localhost'\n\n Xt.frame({\n func: () => {\n if (\n Xt.usabilityHostnames !== false &&\n (Xt.usabilityHostnames === true || [...Xt.usabilityHostnames.split(' ')].includes(location.hostname))\n ) {\n // eslint-disable-next-line no-console\n console.debug(\n '%cXtend UI usability log activated, to deactivate remove xtendui/src/usability.js',\n 'font-weight:bold; color: white; background-color: #0067DD; padding: 6px 10px;'\n )\n\n // images\n\n Xt.mount({\n matches: 'img[src]:not([src^=\"data:\"])',\n mount: ({ ref }) => {\n if (ref.closest(Xt.usabilityIgnore)) return\n // loading\n const loading = ref.getAttribute('loading')\n if (!loading) {\n console.warn('Xtend UI usability detected an \"image\" without \"loading\" attribute', ref)\n }\n // alt\n const alt = ref.getAttribute('alt')\n if (!alt && alt !== '') {\n console.warn('Xtend UI usability detected an \"image\" without \"alt\" attribute', ref)\n }\n },\n })\n\n // input\n\n Xt.mount({\n matches: 'input:not([type=\"hidden\"]), select, textarea',\n mount: ({ ref }) => {\n if (ref.closest(Xt.usabilityIgnore)) return\n // label\n const labels = ref.labels\n const label = ref.getAttribute('aria-label') || ref.getAttribute('aria-labelledby')\n if (!labels.length && (!label || label === '')) {\n console.warn(\n 'Xtend UI usability detected an \"input\" without \"label\" or \"aria-label\" or \"aria-labelledby\"',\n ref\n )\n }\n },\n })\n\n // links\n\n Xt.mount({\n matches: 'a[href]',\n mount: ({ ref }) => {\n if (ref.closest(Xt.usabilityIgnore)) return\n // title\n const text = ref.textContent.trim()\n const title = ref.title\n const label = ref.getAttribute('aria-label') || ref.getAttribute('aria-labelledby')\n if (!text.length && (!title || title === '') && (!label || label === '')) {\n console.warn(\n 'Xtend UI usability detected a \"link\" without \"textContent\" or \"title\" or \"aria-label\" or \"aria-labelledby\"',\n ref\n )\n }\n // target\n const target = ref.getAttribute('target')\n if (target && target.toLowerCase() === '_blank') {\n if (ref.hostname.length && location.hostname !== ref.hostname) {\n const rel = ref.getAttribute('rel')\n if (\n !rel ||\n rel === '' ||\n (!rel.toLowerCase().indexOf('noopener') && !rel.toLowerCase().indexOf('noreferrer'))\n ) {\n console.warn(\n 'Xtend UI usability detected a \"link\" with target=\"_blank\" without rel=\"noopener\" or rel=\"noreferrer\"',\n ref\n )\n }\n }\n }\n },\n })\n }\n },\n })\n}\n","import { Xt } from 'xtendui'\nimport 'xtendui/dist/xtend-components'\n\n// export UMD\n/* eslint-disable */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Xt = factory());\n}(this, function () { 'use strict';\n return Xt;\n}));\n/* eslint-enable */\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = function (fn) {\n return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","/*! @license DOMPurify 2.3.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.6/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.6';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.JSON5 = factory());\n}(this, (function () { 'use strict';\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar _global = createCommonjsModule(function (module) {\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self\n\t // eslint-disable-next-line no-new-func\n\t : Function('return this')();\n\tif (typeof __g == 'number') { __g = global; } // eslint-disable-line no-undef\n\t});\n\n\tvar _core = createCommonjsModule(function (module) {\n\tvar core = module.exports = { version: '2.6.5' };\n\tif (typeof __e == 'number') { __e = core; } // eslint-disable-line no-undef\n\t});\n\tvar _core_1 = _core.version;\n\n\tvar _isObject = function (it) {\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n\tvar _anObject = function (it) {\n\t if (!_isObject(it)) { throw TypeError(it + ' is not an object!'); }\n\t return it;\n\t};\n\n\tvar _fails = function (exec) {\n\t try {\n\t return !!exec();\n\t } catch (e) {\n\t return true;\n\t }\n\t};\n\n\t// Thank's IE8 for his funny defineProperty\n\tvar _descriptors = !_fails(function () {\n\t return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n\t});\n\n\tvar document = _global.document;\n\t// typeof document.createElement is 'object' in old IE\n\tvar is = _isObject(document) && _isObject(document.createElement);\n\tvar _domCreate = function (it) {\n\t return is ? document.createElement(it) : {};\n\t};\n\n\tvar _ie8DomDefine = !_descriptors && !_fails(function () {\n\t return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;\n\t});\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tvar _toPrimitive = function (it, S) {\n\t if (!_isObject(it)) { return it; }\n\t var fn, val;\n\t if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n\tvar dP = Object.defineProperty;\n\n\tvar f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n\t _anObject(O);\n\t P = _toPrimitive(P, true);\n\t _anObject(Attributes);\n\t if (_ie8DomDefine) { try {\n\t return dP(O, P, Attributes);\n\t } catch (e) { /* empty */ } }\n\t if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported!'); }\n\t if ('value' in Attributes) { O[P] = Attributes.value; }\n\t return O;\n\t};\n\n\tvar _objectDp = {\n\t\tf: f\n\t};\n\n\tvar _propertyDesc = function (bitmap, value) {\n\t return {\n\t enumerable: !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable: !(bitmap & 4),\n\t value: value\n\t };\n\t};\n\n\tvar _hide = _descriptors ? function (object, key, value) {\n\t return _objectDp.f(object, key, _propertyDesc(1, value));\n\t} : function (object, key, value) {\n\t object[key] = value;\n\t return object;\n\t};\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tvar _has = function (it, key) {\n\t return hasOwnProperty.call(it, key);\n\t};\n\n\tvar id = 0;\n\tvar px = Math.random();\n\tvar _uid = function (key) {\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n\tvar _library = false;\n\n\tvar _shared = createCommonjsModule(function (module) {\n\tvar SHARED = '__core-js_shared__';\n\tvar store = _global[SHARED] || (_global[SHARED] = {});\n\n\t(module.exports = function (key, value) {\n\t return store[key] || (store[key] = value !== undefined ? value : {});\n\t})('versions', []).push({\n\t version: _core.version,\n\t mode: _library ? 'pure' : 'global',\n\t copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n\t});\n\t});\n\n\tvar _functionToString = _shared('native-function-to-string', Function.toString);\n\n\tvar _redefine = createCommonjsModule(function (module) {\n\tvar SRC = _uid('src');\n\n\tvar TO_STRING = 'toString';\n\tvar TPL = ('' + _functionToString).split(TO_STRING);\n\n\t_core.inspectSource = function (it) {\n\t return _functionToString.call(it);\n\t};\n\n\t(module.exports = function (O, key, val, safe) {\n\t var isFunction = typeof val == 'function';\n\t if (isFunction) { _has(val, 'name') || _hide(val, 'name', key); }\n\t if (O[key] === val) { return; }\n\t if (isFunction) { _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); }\n\t if (O === _global) {\n\t O[key] = val;\n\t } else if (!safe) {\n\t delete O[key];\n\t _hide(O, key, val);\n\t } else if (O[key]) {\n\t O[key] = val;\n\t } else {\n\t _hide(O, key, val);\n\t }\n\t// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n\t})(Function.prototype, TO_STRING, function toString() {\n\t return typeof this == 'function' && this[SRC] || _functionToString.call(this);\n\t});\n\t});\n\n\tvar _aFunction = function (it) {\n\t if (typeof it != 'function') { throw TypeError(it + ' is not a function!'); }\n\t return it;\n\t};\n\n\t// optional / simple context binding\n\n\tvar _ctx = function (fn, that, length) {\n\t _aFunction(fn);\n\t if (that === undefined) { return fn; }\n\t switch (length) {\n\t case 1: return function (a) {\n\t return fn.call(that, a);\n\t };\n\t case 2: return function (a, b) {\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function (a, b, c) {\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function (/* ...args */) {\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n\tvar PROTOTYPE = 'prototype';\n\n\tvar $export = function (type, name, source) {\n\t var IS_FORCED = type & $export.F;\n\t var IS_GLOBAL = type & $export.G;\n\t var IS_STATIC = type & $export.S;\n\t var IS_PROTO = type & $export.P;\n\t var IS_BIND = type & $export.B;\n\t var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];\n\t var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});\n\t var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n\t var key, own, out, exp;\n\t if (IS_GLOBAL) { source = name; }\n\t for (key in source) {\n\t // contains in native\n\t own = !IS_FORCED && target && target[key] !== undefined;\n\t // export native or passed\n\t out = (own ? target : source)[key];\n\t // bind timers to global for call from export context\n\t exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;\n\t // extend global\n\t if (target) { _redefine(target, key, out, type & $export.U); }\n\t // export\n\t if (exports[key] != out) { _hide(exports, key, exp); }\n\t if (IS_PROTO && expProto[key] != out) { expProto[key] = out; }\n\t }\n\t};\n\t_global.core = _core;\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\t$export.U = 64; // safe\n\t$export.R = 128; // real proto method for `library`\n\tvar _export = $export;\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil;\n\tvar floor = Math.floor;\n\tvar _toInteger = function (it) {\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tvar _defined = function (it) {\n\t if (it == undefined) { throw TypeError(\"Can't call method on \" + it); }\n\t return it;\n\t};\n\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tvar _stringAt = function (TO_STRING) {\n\t return function (that, pos) {\n\t var s = String(_defined(that));\n\t var i = _toInteger(pos);\n\t var l = s.length;\n\t var a, b;\n\t if (i < 0 || i >= l) { return TO_STRING ? '' : undefined; }\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n\tvar $at = _stringAt(false);\n\t_export(_export.P, 'String', {\n\t // 21.1.3.3 String.prototype.codePointAt(pos)\n\t codePointAt: function codePointAt(pos) {\n\t return $at(this, pos);\n\t }\n\t});\n\n\tvar codePointAt = _core.String.codePointAt;\n\n\tvar max = Math.max;\n\tvar min = Math.min;\n\tvar _toAbsoluteIndex = function (index, length) {\n\t index = _toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n\tvar fromCharCode = String.fromCharCode;\n\tvar $fromCodePoint = String.fromCodePoint;\n\n\t// length should be 1, old FF problem\n\t_export(_export.S + _export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n\t // 21.1.2.2 String.fromCodePoint(...codePoints)\n\t fromCodePoint: function fromCodePoint(x) {\n\t var arguments$1 = arguments;\n\t // eslint-disable-line no-unused-vars\n\t var res = [];\n\t var aLen = arguments.length;\n\t var i = 0;\n\t var code;\n\t while (aLen > i) {\n\t code = +arguments$1[i++];\n\t if (_toAbsoluteIndex(code, 0x10ffff) !== code) { throw RangeError(code + ' is not a valid code point'); }\n\t res.push(code < 0x10000\n\t ? fromCharCode(code)\n\t : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n\t );\n\t } return res.join('');\n\t }\n\t});\n\n\tvar fromCodePoint = _core.String.fromCodePoint;\n\n\t// This is a generated file. Do not edit.\n\tvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\n\tvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\n\tvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n\n\tvar unicode = {\n\t\tSpace_Separator: Space_Separator,\n\t\tID_Start: ID_Start,\n\t\tID_Continue: ID_Continue\n\t};\n\n\tvar util = {\n\t isSpaceSeparator: function isSpaceSeparator (c) {\n\t return typeof c === 'string' && unicode.Space_Separator.test(c)\n\t },\n\n\t isIdStartChar: function isIdStartChar (c) {\n\t return typeof c === 'string' && (\n\t (c >= 'a' && c <= 'z') ||\n\t (c >= 'A' && c <= 'Z') ||\n\t (c === '$') || (c === '_') ||\n\t unicode.ID_Start.test(c)\n\t )\n\t },\n\n\t isIdContinueChar: function isIdContinueChar (c) {\n\t return typeof c === 'string' && (\n\t (c >= 'a' && c <= 'z') ||\n\t (c >= 'A' && c <= 'Z') ||\n\t (c >= '0' && c <= '9') ||\n\t (c === '$') || (c === '_') ||\n\t (c === '\\u200C') || (c === '\\u200D') ||\n\t unicode.ID_Continue.test(c)\n\t )\n\t },\n\n\t isDigit: function isDigit (c) {\n\t return typeof c === 'string' && /[0-9]/.test(c)\n\t },\n\n\t isHexDigit: function isHexDigit (c) {\n\t return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n\t },\n\t};\n\n\tvar source;\n\tvar parseState;\n\tvar stack;\n\tvar pos;\n\tvar line;\n\tvar column;\n\tvar token;\n\tvar key;\n\tvar root;\n\n\tvar parse = function parse (text, reviver) {\n\t source = String(text);\n\t parseState = 'start';\n\t stack = [];\n\t pos = 0;\n\t line = 1;\n\t column = 0;\n\t token = undefined;\n\t key = undefined;\n\t root = undefined;\n\n\t do {\n\t token = lex();\n\n\t // This code is unreachable.\n\t // if (!parseStates[parseState]) {\n\t // throw invalidParseState()\n\t // }\n\n\t parseStates[parseState]();\n\t } while (token.type !== 'eof')\n\n\t if (typeof reviver === 'function') {\n\t return internalize({'': root}, '', reviver)\n\t }\n\n\t return root\n\t};\n\n\tfunction internalize (holder, name, reviver) {\n\t var value = holder[name];\n\t if (value != null && typeof value === 'object') {\n\t for (var key in value) {\n\t var replacement = internalize(value, key, reviver);\n\t if (replacement === undefined) {\n\t delete value[key];\n\t } else {\n\t value[key] = replacement;\n\t }\n\t }\n\t }\n\n\t return reviver.call(holder, name, value)\n\t}\n\n\tvar lexState;\n\tvar buffer;\n\tvar doubleQuote;\n\tvar sign;\n\tvar c;\n\n\tfunction lex () {\n\t lexState = 'default';\n\t buffer = '';\n\t doubleQuote = false;\n\t sign = 1;\n\n\t for (;;) {\n\t c = peek();\n\n\t // This code is unreachable.\n\t // if (!lexStates[lexState]) {\n\t // throw invalidLexState(lexState)\n\t // }\n\n\t var token = lexStates[lexState]();\n\t if (token) {\n\t return token\n\t }\n\t }\n\t}\n\n\tfunction peek () {\n\t if (source[pos]) {\n\t return String.fromCodePoint(source.codePointAt(pos))\n\t }\n\t}\n\n\tfunction read () {\n\t var c = peek();\n\n\t if (c === '\\n') {\n\t line++;\n\t column = 0;\n\t } else if (c) {\n\t column += c.length;\n\t } else {\n\t column++;\n\t }\n\n\t if (c) {\n\t pos += c.length;\n\t }\n\n\t return c\n\t}\n\n\tvar lexStates = {\n\t default: function default$1 () {\n\t switch (c) {\n\t case '\\t':\n\t case '\\v':\n\t case '\\f':\n\t case ' ':\n\t case '\\u00A0':\n\t case '\\uFEFF':\n\t case '\\n':\n\t case '\\r':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'comment';\n\t return\n\n\t case undefined:\n\t read();\n\t return newToken('eof')\n\t }\n\n\t if (util.isSpaceSeparator(c)) {\n\t read();\n\t return\n\t }\n\n\t // This code is unreachable.\n\t // if (!lexStates[parseState]) {\n\t // throw invalidLexState(parseState)\n\t // }\n\n\t return lexStates[parseState]()\n\t },\n\n\t comment: function comment () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t lexState = 'multiLineComment';\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'singleLineComment';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t multiLineComment: function multiLineComment () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t lexState = 'multiLineCommentAsterisk';\n\t return\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t },\n\n\t multiLineCommentAsterisk: function multiLineCommentAsterisk () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'default';\n\t return\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t lexState = 'multiLineComment';\n\t },\n\n\t singleLineComment: function singleLineComment () {\n\t switch (c) {\n\t case '\\n':\n\t case '\\r':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t lexState = 'default';\n\t return\n\n\t case undefined:\n\t read();\n\t return newToken('eof')\n\t }\n\n\t read();\n\t },\n\n\t value: function value () {\n\t switch (c) {\n\t case '{':\n\t case '[':\n\t return newToken('punctuator', read())\n\n\t case 'n':\n\t read();\n\t literal('ull');\n\t return newToken('null', null)\n\n\t case 't':\n\t read();\n\t literal('rue');\n\t return newToken('boolean', true)\n\n\t case 'f':\n\t read();\n\t literal('alse');\n\t return newToken('boolean', false)\n\n\t case '-':\n\t case '+':\n\t if (read() === '-') {\n\t sign = -1;\n\t }\n\n\t lexState = 'sign';\n\t return\n\n\t case '.':\n\t buffer = read();\n\t lexState = 'decimalPointLeading';\n\t return\n\n\t case '0':\n\t buffer = read();\n\t lexState = 'zero';\n\t return\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t buffer = read();\n\t lexState = 'decimalInteger';\n\t return\n\n\t case 'I':\n\t read();\n\t literal('nfinity');\n\t return newToken('numeric', Infinity)\n\n\t case 'N':\n\t read();\n\t literal('aN');\n\t return newToken('numeric', NaN)\n\n\t case '\"':\n\t case \"'\":\n\t doubleQuote = (read() === '\"');\n\t buffer = '';\n\t lexState = 'string';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t identifierNameStartEscape: function identifierNameStartEscape () {\n\t if (c !== 'u') {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t var u = unicodeEscape();\n\t switch (u) {\n\t case '$':\n\t case '_':\n\t break\n\n\t default:\n\t if (!util.isIdStartChar(u)) {\n\t throw invalidIdentifier()\n\t }\n\n\t break\n\t }\n\n\t buffer += u;\n\t lexState = 'identifierName';\n\t },\n\n\t identifierName: function identifierName () {\n\t switch (c) {\n\t case '$':\n\t case '_':\n\t case '\\u200C':\n\t case '\\u200D':\n\t buffer += read();\n\t return\n\n\t case '\\\\':\n\t read();\n\t lexState = 'identifierNameEscape';\n\t return\n\t }\n\n\t if (util.isIdContinueChar(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('identifier', buffer)\n\t },\n\n\t identifierNameEscape: function identifierNameEscape () {\n\t if (c !== 'u') {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t var u = unicodeEscape();\n\t switch (u) {\n\t case '$':\n\t case '_':\n\t case '\\u200C':\n\t case '\\u200D':\n\t break\n\n\t default:\n\t if (!util.isIdContinueChar(u)) {\n\t throw invalidIdentifier()\n\t }\n\n\t break\n\t }\n\n\t buffer += u;\n\t lexState = 'identifierName';\n\t },\n\n\t sign: function sign$1 () {\n\t switch (c) {\n\t case '.':\n\t buffer = read();\n\t lexState = 'decimalPointLeading';\n\t return\n\n\t case '0':\n\t buffer = read();\n\t lexState = 'zero';\n\t return\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t buffer = read();\n\t lexState = 'decimalInteger';\n\t return\n\n\t case 'I':\n\t read();\n\t literal('nfinity');\n\t return newToken('numeric', sign * Infinity)\n\n\t case 'N':\n\t read();\n\t literal('aN');\n\t return newToken('numeric', NaN)\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t zero: function zero () {\n\t switch (c) {\n\t case '.':\n\t buffer += read();\n\t lexState = 'decimalPoint';\n\t return\n\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\n\t case 'x':\n\t case 'X':\n\t buffer += read();\n\t lexState = 'hexadecimal';\n\t return\n\t }\n\n\t return newToken('numeric', sign * 0)\n\t },\n\n\t decimalInteger: function decimalInteger () {\n\t switch (c) {\n\t case '.':\n\t buffer += read();\n\t lexState = 'decimalPoint';\n\t return\n\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalPointLeading: function decimalPointLeading () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalFraction';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalPoint: function decimalPoint () {\n\t switch (c) {\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalFraction';\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalFraction: function decimalFraction () {\n\t switch (c) {\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalExponent: function decimalExponent () {\n\t switch (c) {\n\t case '+':\n\t case '-':\n\t buffer += read();\n\t lexState = 'decimalExponentSign';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalExponentInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalExponentSign: function decimalExponentSign () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalExponentInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalExponentInteger: function decimalExponentInteger () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t hexadecimal: function hexadecimal () {\n\t if (util.isHexDigit(c)) {\n\t buffer += read();\n\t lexState = 'hexadecimalInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t hexadecimalInteger: function hexadecimalInteger () {\n\t if (util.isHexDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t string: function string () {\n\t switch (c) {\n\t case '\\\\':\n\t read();\n\t buffer += escape();\n\t return\n\n\t case '\"':\n\t if (doubleQuote) {\n\t read();\n\t return newToken('string', buffer)\n\t }\n\n\t buffer += read();\n\t return\n\n\t case \"'\":\n\t if (!doubleQuote) {\n\t read();\n\t return newToken('string', buffer)\n\t }\n\n\t buffer += read();\n\t return\n\n\t case '\\n':\n\t case '\\r':\n\t throw invalidChar(read())\n\n\t case '\\u2028':\n\t case '\\u2029':\n\t separatorChar(c);\n\t break\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\t },\n\n\t start: function start () {\n\t switch (c) {\n\t case '{':\n\t case '[':\n\t return newToken('punctuator', read())\n\n\t // This code is unreachable since the default lexState handles eof.\n\t // case undefined:\n\t // return newToken('eof')\n\t }\n\n\t lexState = 'value';\n\t },\n\n\t beforePropertyName: function beforePropertyName () {\n\t switch (c) {\n\t case '$':\n\t case '_':\n\t buffer = read();\n\t lexState = 'identifierName';\n\t return\n\n\t case '\\\\':\n\t read();\n\t lexState = 'identifierNameStartEscape';\n\t return\n\n\t case '}':\n\t return newToken('punctuator', read())\n\n\t case '\"':\n\t case \"'\":\n\t doubleQuote = (read() === '\"');\n\t lexState = 'string';\n\t return\n\t }\n\n\t if (util.isIdStartChar(c)) {\n\t buffer += read();\n\t lexState = 'identifierName';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t afterPropertyName: function afterPropertyName () {\n\t if (c === ':') {\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t beforePropertyValue: function beforePropertyValue () {\n\t lexState = 'value';\n\t },\n\n\t afterPropertyValue: function afterPropertyValue () {\n\t switch (c) {\n\t case ',':\n\t case '}':\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t beforeArrayValue: function beforeArrayValue () {\n\t if (c === ']') {\n\t return newToken('punctuator', read())\n\t }\n\n\t lexState = 'value';\n\t },\n\n\t afterArrayValue: function afterArrayValue () {\n\t switch (c) {\n\t case ',':\n\t case ']':\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t end: function end () {\n\t // This code is unreachable since it's handled by the default lexState.\n\t // if (c === undefined) {\n\t // read()\n\t // return newToken('eof')\n\t // }\n\n\t throw invalidChar(read())\n\t },\n\t};\n\n\tfunction newToken (type, value) {\n\t return {\n\t type: type,\n\t value: value,\n\t line: line,\n\t column: column,\n\t }\n\t}\n\n\tfunction literal (s) {\n\t for (var i = 0, list = s; i < list.length; i += 1) {\n\t var c = list[i];\n\n\t var p = peek();\n\n\t if (p !== c) {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t }\n\t}\n\n\tfunction escape () {\n\t var c = peek();\n\t switch (c) {\n\t case 'b':\n\t read();\n\t return '\\b'\n\n\t case 'f':\n\t read();\n\t return '\\f'\n\n\t case 'n':\n\t read();\n\t return '\\n'\n\n\t case 'r':\n\t read();\n\t return '\\r'\n\n\t case 't':\n\t read();\n\t return '\\t'\n\n\t case 'v':\n\t read();\n\t return '\\v'\n\n\t case '0':\n\t read();\n\t if (util.isDigit(peek())) {\n\t throw invalidChar(read())\n\t }\n\n\t return '\\0'\n\n\t case 'x':\n\t read();\n\t return hexEscape()\n\n\t case 'u':\n\t read();\n\t return unicodeEscape()\n\n\t case '\\n':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t return ''\n\n\t case '\\r':\n\t read();\n\t if (peek() === '\\n') {\n\t read();\n\t }\n\n\t return ''\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t throw invalidChar(read())\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t return read()\n\t}\n\n\tfunction hexEscape () {\n\t var buffer = '';\n\t var c = peek();\n\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\n\t c = peek();\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\n\t return String.fromCodePoint(parseInt(buffer, 16))\n\t}\n\n\tfunction unicodeEscape () {\n\t var buffer = '';\n\t var count = 4;\n\n\t while (count-- > 0) {\n\t var c = peek();\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\t }\n\n\t return String.fromCodePoint(parseInt(buffer, 16))\n\t}\n\n\tvar parseStates = {\n\t start: function start () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t push();\n\t },\n\n\t beforePropertyName: function beforePropertyName () {\n\t switch (token.type) {\n\t case 'identifier':\n\t case 'string':\n\t key = token.value;\n\t parseState = 'afterPropertyName';\n\t return\n\n\t case 'punctuator':\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.value !== '}') {\n\t // throw invalidToken()\n\t // }\n\n\t pop();\n\t return\n\n\t case 'eof':\n\t throw invalidEOF()\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t afterPropertyName: function afterPropertyName () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator' || token.value !== ':') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t parseState = 'beforePropertyValue';\n\t },\n\n\t beforePropertyValue: function beforePropertyValue () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t push();\n\t },\n\n\t beforeArrayValue: function beforeArrayValue () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t if (token.type === 'punctuator' && token.value === ']') {\n\t pop();\n\t return\n\t }\n\n\t push();\n\t },\n\n\t afterPropertyValue: function afterPropertyValue () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t switch (token.value) {\n\t case ',':\n\t parseState = 'beforePropertyName';\n\t return\n\n\t case '}':\n\t pop();\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t afterArrayValue: function afterArrayValue () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t switch (token.value) {\n\t case ',':\n\t parseState = 'beforeArrayValue';\n\t return\n\n\t case ']':\n\t pop();\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t end: function end () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'eof') {\n\t // throw invalidToken()\n\t // }\n\t },\n\t};\n\n\tfunction push () {\n\t var value;\n\n\t switch (token.type) {\n\t case 'punctuator':\n\t switch (token.value) {\n\t case '{':\n\t value = {};\n\t break\n\n\t case '[':\n\t value = [];\n\t break\n\t }\n\n\t break\n\n\t case 'null':\n\t case 'boolean':\n\t case 'numeric':\n\t case 'string':\n\t value = token.value;\n\t break\n\n\t // This code is unreachable.\n\t // default:\n\t // throw invalidToken()\n\t }\n\n\t if (root === undefined) {\n\t root = value;\n\t } else {\n\t var parent = stack[stack.length - 1];\n\t if (Array.isArray(parent)) {\n\t parent.push(value);\n\t } else {\n\t parent[key] = value;\n\t }\n\t }\n\n\t if (value !== null && typeof value === 'object') {\n\t stack.push(value);\n\n\t if (Array.isArray(value)) {\n\t parseState = 'beforeArrayValue';\n\t } else {\n\t parseState = 'beforePropertyName';\n\t }\n\t } else {\n\t var current = stack[stack.length - 1];\n\t if (current == null) {\n\t parseState = 'end';\n\t } else if (Array.isArray(current)) {\n\t parseState = 'afterArrayValue';\n\t } else {\n\t parseState = 'afterPropertyValue';\n\t }\n\t }\n\t}\n\n\tfunction pop () {\n\t stack.pop();\n\n\t var current = stack[stack.length - 1];\n\t if (current == null) {\n\t parseState = 'end';\n\t } else if (Array.isArray(current)) {\n\t parseState = 'afterArrayValue';\n\t } else {\n\t parseState = 'afterPropertyValue';\n\t }\n\t}\n\n\t// This code is unreachable.\n\t// function invalidParseState () {\n\t// return new Error(`JSON5: invalid parse state '${parseState}'`)\n\t// }\n\n\t// This code is unreachable.\n\t// function invalidLexState (state) {\n\t// return new Error(`JSON5: invalid lex state '${state}'`)\n\t// }\n\n\tfunction invalidChar (c) {\n\t if (c === undefined) {\n\t return syntaxError((\"JSON5: invalid end of input at \" + line + \":\" + column))\n\t }\n\n\t return syntaxError((\"JSON5: invalid character '\" + (formatChar(c)) + \"' at \" + line + \":\" + column))\n\t}\n\n\tfunction invalidEOF () {\n\t return syntaxError((\"JSON5: invalid end of input at \" + line + \":\" + column))\n\t}\n\n\t// This code is unreachable.\n\t// function invalidToken () {\n\t// if (token.type === 'eof') {\n\t// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n\t// }\n\n\t// const c = String.fromCodePoint(token.value.codePointAt(0))\n\t// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n\t// }\n\n\tfunction invalidIdentifier () {\n\t column -= 5;\n\t return syntaxError((\"JSON5: invalid identifier character at \" + line + \":\" + column))\n\t}\n\n\tfunction separatorChar (c) {\n\t console.warn((\"JSON5: '\" + (formatChar(c)) + \"' in strings is not valid ECMAScript; consider escaping\"));\n\t}\n\n\tfunction formatChar (c) {\n\t var replacements = {\n\t \"'\": \"\\\\'\",\n\t '\"': '\\\\\"',\n\t '\\\\': '\\\\\\\\',\n\t '\\b': '\\\\b',\n\t '\\f': '\\\\f',\n\t '\\n': '\\\\n',\n\t '\\r': '\\\\r',\n\t '\\t': '\\\\t',\n\t '\\v': '\\\\v',\n\t '\\0': '\\\\0',\n\t '\\u2028': '\\\\u2028',\n\t '\\u2029': '\\\\u2029',\n\t };\n\n\t if (replacements[c]) {\n\t return replacements[c]\n\t }\n\n\t if (c < ' ') {\n\t var hexString = c.charCodeAt(0).toString(16);\n\t return '\\\\x' + ('00' + hexString).substring(hexString.length)\n\t }\n\n\t return c\n\t}\n\n\tfunction syntaxError (message) {\n\t var err = new SyntaxError(message);\n\t err.lineNumber = line;\n\t err.columnNumber = column;\n\t return err\n\t}\n\n\tvar stringify = function stringify (value, replacer, space) {\n\t var stack = [];\n\t var indent = '';\n\t var propertyList;\n\t var replacerFunc;\n\t var gap = '';\n\t var quote;\n\n\t if (\n\t replacer != null &&\n\t typeof replacer === 'object' &&\n\t !Array.isArray(replacer)\n\t ) {\n\t space = replacer.space;\n\t quote = replacer.quote;\n\t replacer = replacer.replacer;\n\t }\n\n\t if (typeof replacer === 'function') {\n\t replacerFunc = replacer;\n\t } else if (Array.isArray(replacer)) {\n\t propertyList = [];\n\t for (var i = 0, list = replacer; i < list.length; i += 1) {\n\t var v = list[i];\n\n\t var item = (void 0);\n\n\t if (typeof v === 'string') {\n\t item = v;\n\t } else if (\n\t typeof v === 'number' ||\n\t v instanceof String ||\n\t v instanceof Number\n\t ) {\n\t item = String(v);\n\t }\n\n\t if (item !== undefined && propertyList.indexOf(item) < 0) {\n\t propertyList.push(item);\n\t }\n\t }\n\t }\n\n\t if (space instanceof Number) {\n\t space = Number(space);\n\t } else if (space instanceof String) {\n\t space = String(space);\n\t }\n\n\t if (typeof space === 'number') {\n\t if (space > 0) {\n\t space = Math.min(10, Math.floor(space));\n\t gap = ' '.substr(0, space);\n\t }\n\t } else if (typeof space === 'string') {\n\t gap = space.substr(0, 10);\n\t }\n\n\t return serializeProperty('', {'': value})\n\n\t function serializeProperty (key, holder) {\n\t var value = holder[key];\n\t if (value != null) {\n\t if (typeof value.toJSON5 === 'function') {\n\t value = value.toJSON5(key);\n\t } else if (typeof value.toJSON === 'function') {\n\t value = value.toJSON(key);\n\t }\n\t }\n\n\t if (replacerFunc) {\n\t value = replacerFunc.call(holder, key, value);\n\t }\n\n\t if (value instanceof Number) {\n\t value = Number(value);\n\t } else if (value instanceof String) {\n\t value = String(value);\n\t } else if (value instanceof Boolean) {\n\t value = value.valueOf();\n\t }\n\n\t switch (value) {\n\t case null: return 'null'\n\t case true: return 'true'\n\t case false: return 'false'\n\t }\n\n\t if (typeof value === 'string') {\n\t return quoteString(value, false)\n\t }\n\n\t if (typeof value === 'number') {\n\t return String(value)\n\t }\n\n\t if (typeof value === 'object') {\n\t return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n\t }\n\n\t return undefined\n\t }\n\n\t function quoteString (value) {\n\t var quotes = {\n\t \"'\": 0.1,\n\t '\"': 0.2,\n\t };\n\n\t var replacements = {\n\t \"'\": \"\\\\'\",\n\t '\"': '\\\\\"',\n\t '\\\\': '\\\\\\\\',\n\t '\\b': '\\\\b',\n\t '\\f': '\\\\f',\n\t '\\n': '\\\\n',\n\t '\\r': '\\\\r',\n\t '\\t': '\\\\t',\n\t '\\v': '\\\\v',\n\t '\\0': '\\\\0',\n\t '\\u2028': '\\\\u2028',\n\t '\\u2029': '\\\\u2029',\n\t };\n\n\t var product = '';\n\n\t for (var i = 0; i < value.length; i++) {\n\t var c = value[i];\n\t switch (c) {\n\t case \"'\":\n\t case '\"':\n\t quotes[c]++;\n\t product += c;\n\t continue\n\n\t case '\\0':\n\t if (util.isDigit(value[i + 1])) {\n\t product += '\\\\x00';\n\t continue\n\t }\n\t }\n\n\t if (replacements[c]) {\n\t product += replacements[c];\n\t continue\n\t }\n\n\t if (c < ' ') {\n\t var hexString = c.charCodeAt(0).toString(16);\n\t product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n\t continue\n\t }\n\n\t product += c;\n\t }\n\n\t var quoteChar = quote || Object.keys(quotes).reduce(function (a, b) { return (quotes[a] < quotes[b]) ? a : b; });\n\n\t product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n\t return quoteChar + product + quoteChar\n\t }\n\n\t function serializeObject (value) {\n\t if (stack.indexOf(value) >= 0) {\n\t throw TypeError('Converting circular structure to JSON5')\n\t }\n\n\t stack.push(value);\n\n\t var stepback = indent;\n\t indent = indent + gap;\n\n\t var keys = propertyList || Object.keys(value);\n\t var partial = [];\n\t for (var i = 0, list = keys; i < list.length; i += 1) {\n\t var key = list[i];\n\n\t var propertyString = serializeProperty(key, value);\n\t if (propertyString !== undefined) {\n\t var member = serializeKey(key) + ':';\n\t if (gap !== '') {\n\t member += ' ';\n\t }\n\t member += propertyString;\n\t partial.push(member);\n\t }\n\t }\n\n\t var final;\n\t if (partial.length === 0) {\n\t final = '{}';\n\t } else {\n\t var properties;\n\t if (gap === '') {\n\t properties = partial.join(',');\n\t final = '{' + properties + '}';\n\t } else {\n\t var separator = ',\\n' + indent;\n\t properties = partial.join(separator);\n\t final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n\t }\n\t }\n\n\t stack.pop();\n\t indent = stepback;\n\t return final\n\t }\n\n\t function serializeKey (key) {\n\t if (key.length === 0) {\n\t return quoteString(key, true)\n\t }\n\n\t var firstChar = String.fromCodePoint(key.codePointAt(0));\n\t if (!util.isIdStartChar(firstChar)) {\n\t return quoteString(key, true)\n\t }\n\n\t for (var i = firstChar.length; i < key.length; i++) {\n\t if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n\t return quoteString(key, true)\n\t }\n\t }\n\n\t return key\n\t }\n\n\t function serializeArray (value) {\n\t if (stack.indexOf(value) >= 0) {\n\t throw TypeError('Converting circular structure to JSON5')\n\t }\n\n\t stack.push(value);\n\n\t var stepback = indent;\n\t indent = indent + gap;\n\n\t var partial = [];\n\t for (var i = 0; i < value.length; i++) {\n\t var propertyString = serializeProperty(String(i), value);\n\t partial.push((propertyString !== undefined) ? propertyString : 'null');\n\t }\n\n\t var final;\n\t if (partial.length === 0) {\n\t final = '[]';\n\t } else {\n\t if (gap === '') {\n\t var properties = partial.join(',');\n\t final = '[' + properties + ']';\n\t } else {\n\t var separator = ',\\n' + indent;\n\t var properties$1 = partial.join(separator);\n\t final = '[\\n' + indent + properties$1 + ',\\n' + stepback + ']';\n\t }\n\t }\n\n\t stack.pop();\n\t indent = stepback;\n\t return final\n\t }\n\t};\n\n\tvar JSON5 = {\n\t parse: parse,\n\t stringify: stringify,\n\t};\n\n\tvar lib = JSON5;\n\n\tvar es5 = lib;\n\n\treturn es5;\n\n})));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(3147);\nvar __webpack_exports__ = __webpack_require__(5781);\n"],"names":["Xt","DOMPurify","window","XtSetGlobal","global","_running","_currents","options","_mountArr","_unmountArr","resizeSkip","matchMedia","matches","resizeDelay","medialoadedDelay","durationTimescale","autoTimescale","scrolltoHashforce","formScrollWindowFactor","ready","func","state","raf","states","split","includes","document","readyState","requestAnimationFrame","interactive","removeEventListener","addEventListener","_mutationObserver","MutationObserver","mutationsList","mutation","type","added","addedNodes","nodeType","_mountCheck","removed","removedNodes","_unmountCheck","disconnect","observe","documentElement","characterData","attributes","childList","subtree","refresh","mount","obj","push","unmount","closest","arr","refs","ref","querySelectorAll","length","index","entries","root","contains","ignoreStr","ignoreMount","done","call","ignoreUnmount","unmountRemove","filter","x","this","_set","name","el","self","dataStorage","set","get","_remove","remove","_initMatches","optionsInitial","undefined","initial","_removeMatches","mqs","Object","key","value","mql","_eventMatches","skipReinit","bind","addListener","container","merge","mergeReset","start","reset","check","frame","ns","_eventReinit","removeListener","e","detail","reinit","_storage","Map","has","getEl","put","getKey","getAll","ret","delete","size","_classBody","currents","add","c","_friction","transform","visible","xCurrent","yCurrent","translate","getTranslate","rect","getBoundingClientRect","left","top","xDist","yDist","y","fncFriction","friction","delta","Math","abs","sign","style","frictionLimit","transArr","getComputedStyle","mat","match","parseFloat","els","tr","HTMLElement","uniqueId","uid","final","Array","isArray","nodeName","sanitize","str","node","template","createElement","innerHTML","trim","content","firstChild","nodes","childNodes","script","url","callback","defer","async","querySelector","asyncfix","onload","src","body","append","cancelAnimationFrame","frameDouble","on","duration","animTimeout","classList","actionCurrent","off","clearTimeout","animTime","setTimeout","custom","getAttribute","isNaN","delayTime","queryAll","query","from","offsetWidth","offsetHeight","getClientRects","_setScrollbarWidth","scrollbarWidth","scrollbarWidthHandler","outer","visibility","width","msOverflowStyle","overflow","inner","widthNoScroll","widthWithScroll","setProperty","w","innerWidth","outerWidth","h","innerHeight","outerHeight","force","dispatchEvent","CustomEvent","_innerHeightSet","scrolltriggerRerfreshFix","ScrollTrigger","config","autoRefreshEvents","resize","candidateSelectors","candidateSelector","join","NoElement","Element","prototype","msMatchesSelector","webkitMatchesSelector","getRootNode","element","ownerDocument","getCandidates","includeContainer","candidates","slice","apply","unshift","getCandidatesIteratively","elements","elementsToCheck","shift","tagName","assigned","assignedElements","nestedCandidates","children","flatten","scope","shadowRoot","getShadowRoot","_nestedCandidates","getTabindex","isScope","tabIndex","test","isContentEditable","parseInt","sortOrderedTabbables","a","b","documentOrder","isInput","isNonTabbableRadio","isRadio","radioSet","radioScope","form","queryRadios","CSS","escape","err","console","error","message","checked","i","getCheckedRadio","isTabbableRadio","isZeroArea","_node$getBoundingClie","height","isNodeMatchingSelectorFocusable","disabled","isHiddenInput","_ref","displayCheck","nodeUnderDetails","parentElement","originalNode","rootNode","assignedSlot","host","isHidden","some","child","isDetailsWithSummary","parentNode","item","isDisabledFromFieldset","isNodeMatchingSelectorTabbable","sortByOrder","regularTabbables","orderedTabbables","forEach","candidateTabindex","sort","reduce","acc","sortable","concat","tabbable","isTabbable","Error","focusableCandidateSelector","isFocusable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","trapQueue","activeFocusTraps","activateTrap","trap","activeTrap","pause","trapIndex","indexOf","splice","deactivateTrap","unpause","delay","fn","findIndex","idx","every","valueOrHandler","_len","params","_key","getActualTarget","event","composedPath","createFocusTrap","userOptions","doc","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","delayInitialFocusTimer","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","tabbableNodes","find","getNodeForOption","optionValue","_len2","_key2","getInitialFocusNode","activeElement","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","map","tabbableOptions","focusableNodes","lastTabbableNode","nextTabbableNode","forward","nodeIdx","n","reverse","group","tryFocus","focus","preventScroll","toLowerCase","select","isSelectableInput","getReturnFocusNode","previousActiveElement","checkPointerDown","clickOutsideDeactivates","deactivate","returnFocus","allowOutsideClick","preventDefault","checkFocusIn","targetContained","Document","stopImmediatePropagation","checkKey","keyCode","isEscapeEvent","isTabEvent","destinationNode","containerIndex","containerGroup","shiftKey","startOfGroupIndex","_ref2","destinationGroupIndex","lastOfGroupIndex","_ref3","_destinationGroupIndex","checkTab","checkClick","addListeners","capture","passive","removeListeners","activate","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","then","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","finishDeactivation","updateContainerElements","containerElements","elementsAsArray","Boolean","JSON5","focusTrap","Toggle","constructor","optionsCustom","_optionsCustom","componentName","_componentNs","replace","_init","_initVars","_initLogic","_optionsDefault","optionsDefaultSuper","optionsDefault","_optionsInitial","_classes","class","_classesIn","classIn","_classesOut","classOut","_classesDone","classDone","_classesInitial","classInitial","_classesBefore","classBefore","_classesAfter","classAfter","save","_destroyElements","enable","_initSetup","_initScope","_initEvents","_initA11y","_initStart","_disabledManual","disable","_containerTargets","targets","_mode","toString","_addNamespace","_setCurrents","_initScopeElements","_initScopeTargets","_containerElements","exclude","elementsInner","targetsInner","_oldIndex","_initActivate","todo","min","_getEventParent","_eventOn","_initialCurrents","_getCurrents","setAttribute","_eventAutostart","debug","checkClass","_hashChange","getElementsGroups","activated","classSkip","max","elsSame","getElements","elSame","elementInner","getTargets","same","targetInner","_removeEvents","onHandlerCustom","_eventOnHandler","events","elEvent","onHandler","offHandlerCustom","_eventOffHandler","offHandler","preventEvent","preventeventStartHandler","_eventPreventeventStartHandler","hasCurrent","auto","time","autostartHandler","autostopHandler","_eventAutostop","focusHandler","blurHandler","autopauseEls","autopauseOnHandler","eventsPause","autoresumeOnHandler","eventsResume","hash","_hasHash","hashHandler","jump","jumpHandler","_eventJumpHandler","navigation","navs","navHandler","_eventNavHandler","closeauto","closeautoHandler","_eventCloseautoHandler","openauto","openautoHandler","_eventOpenautoHandler","mediaLoaded","mediaLoadedReinit","imgs","img","complete","_eventMedialoadedHandler","medialoadedHandler","deferred","visibleReinit","_observer","IntersectionObserver","observer","entry","intersectionRatio","_eventVisibleReinit","groupElements","eventLimit","_eventOff","preventeventHandler","_eventPreventeventHandler","preventeventResetHandler","_eventPreventeventResetHandler","_eventPreventeventEndHandler","decodeURI","location","checkHash","_eventJump","_eventNav","current","found","_eventMediaLoadedReinit","groups","_groupFilter","attr","currentAttr","currentAttrSame","groupSeparator","currentGroups","selfs","s","attrSame","groupTargets","_getElementsInner","inners","_getTargetsInner","mouseParent","_addCurrent","running","_removeCurrent","_checkOn","_checkOff","_checkOnRunning","runningOn","queueEls","_checkOffRunning","runningOff","_setIndex","getIndex","_setDirection","direction","_inverse","_activate","skipSame","_activateDone","_activateHash","elMain","history","pushState","encodeURIComponent","_deactivate","_deactivateDone","_deactivateHash","actionOther","_eventQueue","objFiltered","objFilter","queue","_queueStart","groupSame","itemFilter","skipEls","removedOn","_queueStop","removedOff","_eventAuto","_autoblock","_autorunning","inverse","goToPrev","amount","step","loop","goToNext","queueOther","objOther","instant","instantType","_specialClassBody","_queueDelay","_queueDelayDone","skipQueue","_queueAnimDone","total","_queueDone","_specialZindex","_specialAppendto","_specialClose","_specialCollapse","_queueAnim","_specialScrollto","pop","_queueComplete","focusLimit","_focusTrap","trs","zIndex","factor","classBody","appendTo","appendToTarget","before","appendOrigin","scrollto","scrolltoInit","scrolltoElement","collapseHeight","maxHeight","collapseWidth","maxWidth","closeInside","closeElement","specialcloseinsideHandler","_eventSpecialcloseinsideHandler","closeOutside","outsides","outside","specialcloseoutsideHandler","_eventSpecialcloseoutsideHandler","closeDeep","closeElements","specialclosedeepHandler","_eventSpecialclosedeepHandler","specialclosedeepKeydownHandler","_eventSpecialclosedeepKeydownHandler","removeAttribute","getNextIndex","getNumIndex","getNext","goToNum","getPrevIndex","getPrev","_wrap","getNum","skipEvent","disableDeactivate","a11y","_hasContainer","_initA11yRole","_initA11yId","_initA11ySetup","_initA11yAuto","_initA11yChange","_initA11yStatus","_initA11yKeyboard","role","multi","vertical","labelElements","controls","labelTargets","selected","expanded","_eventA11yChangeOn","_eventA11yChangeOff","live","_eventA11yAutostart","_eventA11yAutostop","statusHandler","_eventA11yStatus","keyboard","_eventA11yOn","_eventA11yOff","keydownHandler","_eventA11yKeydown","items","documentKeydownHandler","_eventA11yDocumentKeydown","prevKey","nextKey","_search","innerText","startsWith","restart","_removeNamespace","storages","endsWith","handler","destroy","weak","getWindow","defaultView","isElement","isHTMLElement","isShadowRoot","ShadowRoot","delayIn","delayOut","durationIn","durationOut","initialFocus","fallbackFocus","optionsMarkup","round","includeScale","scaleX","scaleY","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","offsetTop","getParentNode","getScrollParent","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","navigator","userAgent","currentNode","css","perspective","contain","willChange","getContainingBlock","basePlacements","end","viewport","popper","variationPlacements","placement","modifierPhases","order","modifiers","visited","Set","result","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","args","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","pending","orderedModifiers","assign","modifiersData","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","data","mergeByName","m","enabled","_ref3$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_options$offset","offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","getOppositePlacement","matched","getOppositeVariationPlacement","parent","next","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","margin","property","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","_loop","_i","fittingPlacement","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","createPopper","Drop","super","popperjs","transition","popperEl","positionInner","popperOptionsDefault","spaceOverflow","spaceFlip","spaceArrow","inset","search","popperOptions","popperInstance","inputs","toggle","input","label","change","dataset","xtValidate","checkValidity","scrollTo","scrollX","scrollY","invalid","once","submit","Googlelocator","loaderElement","loader","itemsTemplate","itemsContainer","foundElement","resultsFound","mapElement","google","maps","searchInput","places","Autocomplete","autocompleteOptions","searchHandler","_searchSubmit","searchBtn","submitHandler","_searchClick","zoomMin","getZoom","setZoom","_placeChanged","repeatBtn","repeatElement","repeatHandler","_submitCurrent","locateBtn","locateElement","protocol","geolocation","initialLocate","_locate","locateHandler","display","initialSearch","addListenerOnce","setCenter","zoom","empty","place","getPlace","geometry","radius","searchRadius","_submit","_locateCache","_predictionCache","AutocompleteService","getPlacePredictions","autocompleteServiceOptions","results","placesPreview","PlacesService","getDetails","formatted_address","locations","_populateItems","trigger","getBounds","filters","markers","bounds","LatLngBounds","infoWindow","info","InfoWindow","marker","_filterMarker","latLng","LatLng","formatData","lat","lng","spherical","computeDistanceBetween","loc","Marker","title","icon","animation","extend","_populateInfo","cluster","clearMarkers","MarkerClusterer","fitBounds","panToBounds","removes","_populateItem","cloned","_animatingLoc","setAnimation","anim","animateMarkerClick","animateMarkerResultClick","old","infoWindowMarkerClick","infoWindowMarkerResultClick","setContent","open","close","getCenter","seachMapBounds","getNorthEast","_loaderShow","getCurrentPosition","_locateSuccess","_locateError","pos","_loaderHide","locateText","coords","latitude","longitude","scrollwheel","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","address","additional","Groupnumber","steps","eventsSteps","stepHandler","_eventChange","button","eventsInput","inputHandler","skip","inputStep","buttonStep","val","toFixed","_countDecimals","num","_validate","limit","validate","voidable","inputMin","inputMax","voidMin","voidMax","Event","floor","ceil","Infinitescroll","_itemsFake","cloneNode","scrollUp","scrollDown","spaceAdditionals","spaceAdditional","paginations","pagination","nocache","beforeunloadHandler","_eventBeforeunload","scrollHandler","_eventScroll","triggerHandler","_eventTrigger","_setCurrent","_update","_paginate","_prefetch","_additionalSpace","scrollingElement","up","down","_getNext","page","_request","_url","href","_scrollResume","replaceState","windowHeight","linkOrigin","origin","_scrollTopOld","fetch","method","response","ok","text","reject","_success","catch","_error","_response","request","status","_populate","last","all","after","regex","RegExp","URL","searchParams","URLSearchParams","prefetch","triggers","link","rel","as","head","appendChild","Mousefollow","moveHandler","_mousemove","enterHandler","_mouseenter","leaveHandler","_mouseleave","_width","clientX","clientY","_height","mouseCheck","Overlay","Ripple","_eventStart","onlyInside","sizeInitial","sizeFinal","sqrt","pow","scaleFinal","touches","rectTarget","rectObject","endHandler","_eventEnd","Scrollto","changeHandler","scrolltoHandler","_eventScrollto","hashchange","scrollers","scroller","_eventActivationHandler","anchors","_eventScrolltoLogic","space","elCheck","pathname","other","scrollActivation","_eventActivation","scrollDelay","scrollMax","createDocumentFragment","overlay","Slider","dragger","drag","_destroyDrag","_wrapDir","_wrapIndex","_size","_left","autoHeight","_autoHeight","keepHeight","_keepHeight","_position","_final","_initial","_destroyNooverflow","_destroyWrap","_destroyPagination","_initGroups","_initPagination","elementsTemplate","sizeContent","trWidthMax","trLeft","trWidth","mode","_initGroupsInitial","nooverflow","_availableSpace","_initGroupsPosition","wrap","_wrapFirst","_wrapLast","_groups","_initGroupsContain","targetsInitial","_initGroupsSame","currentGroup","sizeAvailable","currentCount","targetWidth","_usedWidth","groupLeft","Infinity","groupWidth","align","first","firstLeft","lastLeft","lastWidth","iRemoved","firstIndex","groupStr","lastIndex","z","groupGroup","spaceLeft","spaceRight","usedWidth","iLoop","groupCurrent","k","targetTargets","pags","templateInverse","pag","clone","classes","insertBefore","initHandler","_eventInitHandler","dragpositionHandler","_eventDragpositionHandler","dragstartHandler","_eventDragstartHandler","dragstartFixHandler","_eventDragstartFix","reinitHandler","dragposition","_instant","_eventDragstart","dragendHandler","_eventDragendHandler","_eventDragend","dragHandler","_eventDragHandler","_logicDragstart","_logicDrag","eventsoff","eventsmove","_logicDragend","isDrag","maxCheck","_direction","diff","remainder","_ratioInverse","_ratio","_eventWrap","groupHeight","leftOld","wrapLeft","previousWidth","_eventMove","wrapSpace","tot","leftInitial","trLeftInitial","_start","_startOther","_lock","_prevent","_index","_old","_overflow","_current","_currentOther","_distance","_logicDragreset","_distanceOther","threshold","cancelable","_logicDragfind","hideDisable","_destroyGrab","_destroyIntraction","_destroyAutoheight","oldPag","log","Stickyflow","filler","objectHeight","Textareaautosize","_keychange","Tooltip","usabilityIgnore","usabilityHostnames","hostname","warn","alt","labels","textContent","factory","exports","module","define","isCallable","tryToString","$TypeError","TypeError","argument","isConstructor","$String","String","wellKnownSymbol","create","UNSCOPABLES","ArrayPrototype","charAt","S","unicode","isPrototypeOf","it","Prototype","isObject","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iterator","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","fails","METHOD_NAME","DESCRIPTORS","SILENT_ON_NON_WRITABLE_LENGTH_SET","fin","uncurryThis","arraySlice","mergeSort","array","comparefn","middle","insertionSort","j","llength","rlength","lindex","rindex","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","uncurryThisRaw","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","hasOwn","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","f","F","getPrototypeOf","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","makeBuiltIn","descriptor","getter","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","defineBuiltIn","P","documentAll","IS_HTMLDDA","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","firefox","IS_DENO","IS_NODE","Deno","version","UA","Pebble","classof","process","getBuiltIn","versions","v8","webkit","createNonEnumerableProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","regexpExec","SPECIES","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","uncurriedNativeMethod","$exec","NATIVE_BIND","FunctionPrototype","Function","Reflect","aCallable","that","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","namespace","getMethod","isNullOrUndefined","Iterators","usingIterator","V","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","replacement","tailPos","ch","globalThis","g","propertyIsEnumerable","setPrototypeOf","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","metadata","facade","STATE","enforce","getterFor","TYPE","$documentAll","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","string","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","trunc","flush","notify","promise","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","nextTick","createTextNode","task","PromiseCapability","C","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","IndexedObject","$assign","A","B","symbol","Symbol","alphabet","chr","T","activeXDocument","definePropertiesModule","enumBugKeys","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","pref","valueOf","getOwnPropertyNamesModule","NativePromiseConstructor","IS_BROWSER","V8_VERSION","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","checkCorrectnessOfIteration","Target","Source","Queue","tail","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","raw","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","CONSTRUCTOR_NAME","Constructor","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","second","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","fromCharCode","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","base","encode","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","encoded","whitespaces","whitespace","ltrim","rtrim","$location","channel","port","validateArgumentsLength","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","ONREADYSTATECHANGE","run","id","runner","listener","post","postMessage","now","port2","port1","onmessage","importScripts","removeChild","integer","number","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","toJSON","username","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$includes","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","Arguments","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","SILENT_ON_NON_WRITABLE_LENGTH","argCount","nativeReverse","deletePropertyOrThrow","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","itemsLength","arrayLength","getSortCompare","INCORRECT_RESULT","to","newPromiseCapabilityModule","perform","iterate","capability","$promiseResolve","remaining","alreadyCalled","real","onRejected","Internal","OwnPromiseCapability","nativeThen","setSpecies","anInstance","speciesConstructor","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","PromiseWrapper","race","r","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","inheritIfRequired","getRegExpFlags","proxyAccessor","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","defineBuiltInAccessor","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","res","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","replacerArgs","$trim","forcedStringTrimMethod","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","USE_NATIVE_URL","defineBuiltIns","$toString","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","init","parseObject","parseQuery","bindURL","entryIterator","entryNext","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","boundFunction","headersHas","headersSet","wrapRequestOptions","headers","RequestConstructor","Request","getState","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","numberToString","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","parse","stateOverride","codePoints","bufferCodePoints","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","password","path","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","pieceIndex","parseIPv6","partsLength","numbers","part","radix","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","_toConsumableArray","arr2","isFrozen","freeze","seal","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringTrim","regExpTest","typeErrorCreate","unconstruct","thisArg","addToSet","l","lcElement","newObject","lookupGetter","prop","desc","fallbackValue","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","_typeof","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","policyName","createHTML","html$$1","createDOMPurify","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","MozNamedAttrMap","DOMParser","ElementPrototype","getNextSibling","getChildNodes","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","commonSvgAndHTMLElements","_forceRemove","outerHTML","_removeAttribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","_isNode","_executeHook","entryPoint","hook","_sanitizeElements","allowedTags","firstElementChild","_basicCustomElementTest","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","toStaticHTML","nodeIterator","shadowroot","serializedHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","createCommonjsModule","_global","__g","_core","core","__e","_isObject","_anObject","_fails","_descriptors","is","_domCreate","_ie8DomDefine","_toPrimitive","dP","_objectDp","_propertyDesc","_hide","_has","px","_uid","_library","_shared","_functionToString","_redefine","SRC","TO_STRING","TPL","safe","isFunction","_aFunction","_ctx","PROTOTYPE","$export","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","_export","_toInteger","_defined","_stringAt","$at","codePointAt","_toAbsoluteIndex","$fromCodePoint","fromCodePoint","arguments$1","aLen","parseState","stack","line","column","token","lexState","doubleQuote","Space_Separator","ID_Start","ID_Continue","util","isSpaceSeparator","isIdStartChar","isIdContinueChar","isDigit","isHexDigit","reviver","lex","parseStates","internalize","holder","peek","lexStates","read","default","newToken","comment","invalidChar","multiLineComment","multiLineCommentAsterisk","singleLineComment","literal","NaN","identifierNameStartEscape","u","unicodeEscape","invalidIdentifier","identifierName","identifierNameEscape","zero","decimalInteger","Number","decimalPointLeading","decimalPoint","decimalFraction","decimalExponent","decimalExponentSign","decimalExponentInteger","hexadecimal","hexadecimalInteger","separatorChar","beforePropertyName","afterPropertyName","beforePropertyValue","afterPropertyValue","beforeArrayValue","afterArrayValue","hexEscape","count","invalidEOF","syntaxError","formatChar","hexString","substring","lineNumber","columnNumber","stringify","propertyList","replacerFunc","quote","indent","gap","substr","serializeProperty","toJSON5","quoteString","serializeArray","serializeObject","quotes","product","quoteChar","stepback","properties","partial","propertyString","member","serializeKey","separator","firstChar","properties$1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","d","definition","o","hmd","toStringTag"],"sourceRoot":""}
\No newline at end of file