{"version":3,"file":"app-14aba0c4fe654e3cff31.js","mappings":";oGAAA,MAAMA,EAAUC,EAAQ,OAClB,2BAAEC,EAA0B,SAAEC,EAAQ,aAAEC,GAC5CH,EAAAA,MAAAA,GAEFI,EAAQ,EAAY,SAACC,EAAKC,EAAWC,EAAeC,QAAtB,IAAJF,IAAAA,EAAO,CAAC,GAYhC,IAAIG,EAAUV,EAAQW,KAAIC,IACxB,IAAKA,EAAOA,OAAON,GACjB,OAGFC,EAAKL,2BAA6BA,EAClCK,EAAKJ,SAAWA,EAChBI,EAAKH,aAAeA,EAEpB,MAAMS,EAASD,EAAOA,OAAON,GAAKC,EAAMK,EAAOE,SAI/C,OAHID,GAAUJ,IACZF,EAAOE,EAAa,CAAEF,OAAMM,SAAQD,YAE/BC,CAAM,IAMf,OAFAH,EAAUA,EAAQK,QAAOF,QAA4B,IAAXA,IAEtCH,EAAQM,OAAS,EACZN,EACEF,EACF,CAACA,GAED,EAEX,EAEAH,EAAQ,EAAiB,CAACC,EAAKC,EAAMC,IACnCR,EAAQiB,QACN,CAACC,EAAUC,IACTA,EAAKP,OAAON,GACRY,EAASE,MAAK,IAAMD,EAAKP,OAAON,GAAKC,EAAMY,EAAKL,WAChDI,GACNG,QAAQC,iDCzCKC,EAAE,EAAQ,MAASC,EAAE,CAACC,QAAO,GAAIC,EAAE,IAAIC,IAAIC,EAAEC,OAAOC,IAAI,iBAAiBC,EAAEF,OAAOC,IAAI,cAAcE,EAAEH,OAAOC,IAAI,uBAAuBG,EAAEV,EAAEW,mDAAmDC,gBAAkF,SAASC,EAAEC,EAAEC,EAAEC,GAAGC,KAAKC,QAAQJ,EAAEG,KAAKE,OAAOJ,EAAEE,KAAKG,UAAUJ,CAAC,CACjW,SAASK,EAAEP,GAAG,OAAOA,EAAEI,SAAS,KAAK,EAAE,OAAOJ,EAAEK,OAAO,KAAK,EAAE,IAAIJ,EAAEO,KAAKC,MAAMT,EAAEK,OAAOL,EAAEM,UAAUI,WAAuB,OAAZV,EAAEI,QAAQ,EAASJ,EAAEK,OAAOJ,EAAE,KAAK,EAAa,IAAI,IAAIC,GAAnBD,EAAED,EAAEK,QAAmBM,OAAOC,EAAE,EAAEA,EAAEV,EAAEvB,OAAOiC,IAAI,CAAC,IAAIC,EAAExB,EAAEyB,IAAIZ,EAAEU,IAAI,GAAG,OAAOC,EAAE,MAAMA,CAAE,CAAyG,OAAxGX,EAAEa,EAAoBd,EAAEe,IAAIf,EAAE,MAAMA,EAAEgB,KAAKf,EAAE,KAAKD,EAAEgB,KAAKf,EAAEgB,WAAWhB,EAAEiB,QAAQjB,EAAEA,EAAED,EAAEgB,MAAMjB,EAAEI,QAAQ,EAASJ,EAAEK,OAAOJ,EAAE,KAAK,EAAE,MAAMD,EAAE,QAAQ,MAAMA,EAAEK,OAAQ,CAAC,SAASe,IAAoB,OAAOb,EAAjBc,EAAElB,KAAK,GAAc,CAAC,SAASmB,EAAEtB,EAAEC,GAAG,OAAO,IAAIF,EAAE,EAAEE,EAAED,EAAE,CAC3d,SAASuB,EAAEvB,GAAG,GAAG,OAAOA,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAErB,OAAOsB,KAAI,EAAGD,EAAEC,KAAK,CAAC,SAASuB,EAAExB,EAAEC,GAAG,GAAG,IAAID,EAAEI,QAAQ,CAAC,IAAIF,EAAEF,EAAEK,OAAOL,EAAEI,QAAQ,EAAEJ,EAAEK,OAAOJ,EAAEsB,EAAErB,EAAE,CAAC,CAAC,SAASuB,EAAEzB,EAAEC,GAAGD,EAAE0B,QAAQC,SAAQ,SAAS3B,GAAGwB,EAAExB,EAAEC,EAAE,GAAE,CAAC,SAASoB,EAAErB,EAAEC,GAAG,IAAIC,EAAEF,EAAE0B,QAAQd,EAAEV,EAAEY,IAAIb,GAAqC,OAAlCW,IAAIA,EAAE,IAAIb,EAAE,EAAE,KAAKC,GAAGE,EAAE0B,IAAI3B,EAAEW,IAAWA,CAAC,CAC3B,SAASiB,EAAE7B,GAAGyB,EAAEzB,EAAE8B,MAAM,sBAAsB,CAC7S,SAASC,EAAE/B,EAAEC,GAAG,GAAG,KAAKA,EAAE,CAAC,IAAIC,EAAED,EAAE,GAAGW,EAAEX,EAAE+B,QAAQ,IAAI,GAAGnB,EAAEoB,SAAShC,EAAEiC,UAAU,EAAEtB,GAAG,IAAuB,OAAnBA,EAAEX,EAAEiC,UAAUtB,EAAE,GAAUV,GAAG,IAAK,KAAiBA,GAAbD,EAAED,EAAE0B,SAAaZ,IAAID,IAAI,IAAIX,EAAEE,UAAUJ,EAAEE,EAAEG,OAAOH,EAAEE,QAAQ,EAAEF,EAAEG,OAAOO,EAAEW,EAAEvB,IAAIC,EAAE2B,IAAIf,EAAE,IAAId,EAAE,EAAEa,EAAEZ,IAAI,MAAM,IAAK,IAAgBE,GAAZD,EAAED,EAAE0B,SAAYZ,IAAID,GAAGD,EAAEJ,KAAKC,MAAMG,EAAEZ,EAAEU,WAAW,IAAIyB,EAAEnC,EAAEoC,eAAqCD,GAAtBvB,EAAEuB,EAAEA,EAAEvB,EAAEI,IAAIJ,EAAEK,MAAML,GAAMD,OAAO,IAAI,IAAI0B,EAAE,EAAEA,EAAEF,EAAExD,OAAO0D,IAAI,CAAC,IAAIC,EAAEH,EAAEE,GAAG,QAAG,IAAShD,EAAEyB,IAAIwB,GAAG,CAAC,IAAIC,EAAE,IAAuBD,GAAGE,EAAEnD,EAAEuC,IAAIa,KAAKpD,EAAEiD,EAAE,MAAMI,EAAErD,EAAEuC,IAAIa,KAAKpD,EAAEiD,GAAGC,EAAExD,KAAKyD,EAAEE,GAAGrD,EAAEuC,IAAIU,EACxfC,EAAE,CAAC,CAACrC,EAAE,IAAIA,EAAEE,UAAUJ,EAAEE,EAAEG,OAAOH,EAAEE,QAAQ,EAAEF,EAAEG,OAAOO,EAAEW,EAAEvB,IAAIC,EAAE2B,IAAIf,EAAE,IAAId,EAAE,EAAEa,EAAEZ,IAAI,MAAM,IAAK,IAAIA,EAAE0B,QAAQE,IAAIf,EAAES,EAAEtB,EAL2G,SAAWA,GAA2C,OAAxCJ,EAAEI,KAAKJ,EAAEI,GAAGd,EAAEyD,oBAAoB3C,EAAEL,IAAWC,EAAEI,EAAE,CAK1K4C,CAAEhC,GAAGiC,WAAW,MAAM,IAAK,IAAI3C,EAAEM,KAAKC,MAAMG,GAAGZ,EAAE0B,QAAQE,IAAIf,EAAES,EAAEtB,EAAER,OAAOC,IAAIS,KAAK,MAAM,IAAK,IAAID,EAAEO,KAAKC,MAAMG,IAAGV,EAAE4B,MAAM7B,EAAE6C,UAAWC,MAAM9C,EAAE8C,OAAmBnC,GAAbX,EAAED,EAAE0B,SAAaZ,IAAID,IAAIW,EAAEZ,EAAEV,GAAGD,EAAE2B,IAAIf,EAAE,IAAId,EAAE,EAAEG,EAAEF,IAAI,MAAM,QAAQ,MAAM8B,MAAM,8EAA+E,CAAC,CAC5a,SAASkB,EAAEhD,GAAG,OAAO,SAASC,EAAEC,GAAG,MAAM,iBAAkBA,EAH3D,SAAWF,EAAEC,EAAEC,GAAG,OAAOA,EAAE,IAAI,IAAK,IAAI,MAAG,MAAMA,EAASX,EAAK,MAAMW,EAAE,IAAI,MAAMA,EAAE,GAAUA,EAAEgC,UAAU,GAAiD3B,EAAhBP,EAAEqB,EAAErB,EAAhCiC,SAAS/B,EAAEgC,UAAU,GAAG,MAAyB,IAAK,IAAI,OAAqClC,EAAEqB,EAAErB,EAAhCiC,SAAS/B,EAAEgC,UAAU,GAAG,KAAa,CAACe,SAASvD,EAAEwD,SAASlD,EAAEmD,MAAM5C,GAAG,OAAOL,CAAC,CAGjMkD,CAAEpD,EAAEG,EAAKD,GAAG,iBAAkBA,GAAG,OAAOA,EAAKA,EAAE,KAAKX,EAAE,CAAC0D,SAAS1D,EAAE8D,KAAKnD,EAAE,GAAGoD,IAAIpD,EAAE,GAAGqD,IAAI,KAAKC,MAAMtD,EAAE,GAAGuD,OAAO,MAAMvD,EAAKA,CAAC,CAAC,CAAC,SAASwD,EAAE1D,GAAG,IAAIC,EAAE,IAAI0D,YAAiH,OAA3F3D,EAAE,CAACoC,eAAepC,EAAE0B,QAA5B,IAAIpC,IAAkCsE,SAASxC,EAAEyC,YAAY,GAAGC,eAAe7D,IAAKS,UAAUsC,EAAEhD,GAAUA,CAAC,CAC5U,SAAS+D,EAAE/D,EAAEC,GAAqR,SAASW,EAAEX,GAAGwB,EAAEzB,EAAEC,EAAE,CAAC,IAAIY,EAAEZ,EAAE+D,YAAYnD,EAAEoD,OAAOlF,MAApU,SAASmB,EAAED,GAAG,IAAIoC,EAAEpC,EAAEiE,MAAM,IAAGjE,EAAEkE,KAAc,CAAClE,EAAEoC,EAAEA,EAAErC,EAAE8D,eAAe,IAAI,IAAIxB,EAAErC,EAAE+B,QAAQ,KAAK,EAAEM,GAAG,CAAC,IAAIH,EAAEnC,EAAE6D,YAAgBrB,EAAEvC,EAAEmE,SAAS,EAAE9B,GAAGE,EAAEH,EAAEgC,OAAO7B,GAAGT,EAAE/B,EAAEmC,EAAEK,GAAGxC,EAAE6D,YAAY,GAAqBvB,GAAlBrC,EAAEA,EAAEmE,SAAS9B,EAAE,IAAON,QAAQ,GAAG,CAA8B,OAA7BhC,EAAE6D,aAAaxB,EAAEgC,OAAOpE,EAAEd,GAAU0B,EAAEoD,OAAOlF,KAAKmB,EAAEU,EAAE,CAA1OiB,EAAE7B,EAAyO,GAA0DY,EAAE,CAPKb,EAAEuE,UAAUvF,KAAK,SAASiB,GAAG,IAAIG,KAAKC,SAAS,OAAOD,KAAKE,SAASF,KAAKE,OAAO,IAAIF,KAAKE,OAAOkE,KAAKvE,IAAIA,GAAG,EAQ9chC,EAAQwG,yBAAyB,SAASxE,EAAEC,GAA+C,OAAP8D,EAArC9D,EAAEyD,EAAEzD,GAAGA,EAAEwE,UAAUxE,EAAEwE,UAAU,MAAUzE,GAAUC,CAAC,gCC+BnGyE,EAAO1G,QA5BS,SAAS2G,EAAWC,EAAQ5E,EAAGC,EAAGC,EAAGU,EAAGC,EAAGsB,GAOzD,IAAKwC,EAAW,CACd,IAAIE,EACJ,QAAeC,IAAXF,EACFC,EAAQ,IAAI/C,MACV,qIAGG,CACL,IAAI5D,EAAO,CAAC8B,EAAGC,EAAGC,EAAGU,EAAGC,EAAGsB,GACvB4C,EAAW,GACfF,EAAQ,IAAI/C,MACV8C,EAAOI,QAAQ,OAAO,WAAa,OAAO9G,EAAK6G,IAAa,MAExD9D,KAAO,qBACf,CAGA,MADA4D,EAAMI,YAAc,EACdJ,CACR,CACF,uDC3C+B,WAA7BK,OAAOC,SAASC,UACa,cAA7BF,OAAOC,SAASE,SAEhBC,QAAQT,MACN,gFAEO,kBAAmBU,WAC5BA,UAAUC,cACPC,SAAS,UACT1G,MAAK,SAAU2G,GACdA,EAAIC,iBAAiB,eAAe,MAClCC,EAAAA,EAAAA,GAAU,6BAA8B,CAAEJ,cAAeE,IAGzD,MAAMG,EAAmBH,EAAII,WAC7BR,QAAQS,IAAI,mBAAoBF,GAChCA,EAAiBF,iBAAiB,eAAe,KAC/C,OAAQE,EAAiBG,OACvB,IAAK,YACCT,UAAUC,cAAcS,YAK1Bf,OAAOgB,cAAe,GAEtBN,EAAAA,EAAAA,GAAU,6BAA8B,CAAEJ,cAAeE,IAGrDR,OAAOiB,qBACTb,QAAQS,IAAI,4CACZb,OAAOC,SAASiB,YAKlBd,QAAQS,IAAI,sCAKZH,EAAAA,EAAAA,GAAU,2BAA4B,CAAEJ,cAAeE,KAEzD,MAEF,IAAK,YACHJ,QAAQT,MAAM,oDACde,EAAAA,EAAAA,GAAU,2BAA4B,CAAEJ,cAAeE,IACvD,MAEF,IAAK,aACHE,EAAAA,EAAAA,GAAU,wBAAyB,CAAEJ,cAAeE,IAExD,GACA,GAEN,IACCW,OAAM,SAAUxF,GACfyE,QAAQT,MAAM,4CAA6ChE,EAC7D,uBC9DJ7C,EAAQ,EAAsB,IAAM,8ECwBpC,UAlByBsI,IAAmB,IAAlB,SAAEnB,GAAUmB,EACpC,MAAMC,EAAgBC,EAAAA,GAAOzI,aAAaoH,EAASsB,UACnD,OAAKF,EAGEG,EAAAA,cAAoBC,EAAAA,EAAsB,CAC/CxB,WACAoB,mBACGA,EAAcK,OALV,IAMP,4JCbJ,MAAMC,EAAuBH,EAAAA,cAAoB,CAAC,GAC5CI,EAAgBJ,EAAAA,cAAoB,CAAC,GACrCK,EAAmBL,EAAAA,cAAoB,CAAC,GACxCM,EAAqBN,EAAAA,cAAoB,CAAC,sCCHhD1I,EAAQkD,YAAa,EACrBlD,EAAQiJ,2BAAwB,EACZ,EAAQ,MACE,EAAQ,MAgBtCjJ,EAAQiJ,sBAdsB,KAOyC,oBCVvEvC,EAAO1G,QAJP,SAAgC6C,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAIqG,eAAe,6DAC3C,OAAOrG,CACT,EACyC6D,EAAO1G,QAAQkD,YAAa,EAAMwD,EAAO1G,QAAiB,QAAI0G,EAAO1G,8BCJxFwE,MAKpBkC,EAAO1G,SALawE,EAKW5E,EAAQ,OALR4E,EAAErB,SAAYqB,qCCE/C,IAAI2E,EAAyB,EAAQ,MACrCnJ,EAAQkD,YAAa,EACrBlD,EAAQoJ,cAAgBpJ,EAAQqJ,mBAAgB,EAChD,IAAIC,EAA0BH,EAAuB,EAAQ,OACzDI,EAAkBJ,EAAuB,EAAQ,OACjDT,EAIJ,SAAiCc,EAAKC,GAAe,IAAKA,GAAeD,GAAOA,EAAItG,WAAc,OAAOsG,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAErG,QAASqG,GAAS,IAAIE,EAAQC,EAAyBF,GAAc,GAAIC,GAASA,EAAME,IAAIJ,GAAQ,OAAOE,EAAM5G,IAAI0G,GAAQ,IAAIK,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAI3E,KAAOkE,EAAO,GAAY,YAARlE,GAAqByE,OAAOzD,UAAU4D,eAAeC,KAAKX,EAAKlE,GAAM,CAAE,IAAI8E,EAAON,EAAwBC,OAAOE,yBAAyBT,EAAKlE,GAAO,KAAU8E,IAASA,EAAKtH,KAAOsH,EAAKxG,KAAQmG,OAAOC,eAAeH,EAAQvE,EAAK8E,GAAgBP,EAAOvE,GAAOkE,EAAIlE,EAAQ,CAAIuE,EAAO1G,QAAUqG,EAASE,GAASA,EAAM9F,IAAI4F,EAAKK,GAAW,OAAOA,CAAQ,CAJvxBQ,CAAwB,EAAQ,OACxCC,EAAanB,EAAuB,EAAQ,OAC5CoB,EAAkB,EAAQ,MAC9B,SAASZ,EAAyBF,GAAe,GAAuB,mBAAZe,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQb,EAA2B,SAAkCF,GAAe,OAAOA,EAAciB,EAAmBD,CAAmB,GAAGhB,EAAc,CAE9U,IAAIJ,EAA6BX,EAAMiC,cAAc,IAAIJ,EAAgBK,gBACzE5K,EAAQqJ,cAAgBA,EACxBA,EAAcwB,YAAc,sBAC5B,IAAIzB,EAA6B,SAAU0B,GAEzC,SAAS1B,IAEP,IADA,IAAI2B,EACKC,EAAOC,UAAUtK,OAAQT,EAAO,IAAIgL,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EjL,EAAKiL,GAAQF,UAAUE,GAiCzB,OA/BAJ,EAAQD,EAAiBX,KAAKiB,MAAMN,EAAkB,CAAC3I,MAAMkJ,OAAOnL,KAAUiC,MACxEmJ,cAAgB,IAAIf,EAAgBK,eAC1CG,EAAMQ,YAAa,EACnBR,EAAMS,oBAAsB,EAC5BT,EAAMU,eAAiB,WACrBV,EAAMS,oBAAsBtE,OAAOwE,QAC9BX,EAAMQ,aACTR,EAAMQ,YAAa,EACnBI,sBAAsBZ,EAAMa,YAAYnH,MAAK,EAAI6E,EAAwBnG,SAAS4H,KAEtF,EACAA,EAAMc,aAAe,SAAUC,EAAUC,GACnChB,EAAMiB,mBAAmBD,EAAWhB,EAAMvF,QAC5C0B,OAAO+E,SAAS,EAAGH,EAEvB,EACAf,EAAMmB,aAAe,SAAUC,EAAMJ,GACnC,IAAIK,EAAOC,SAASC,eAAeH,EAAKjI,UAAU,IAC9CkI,GAAQrB,EAAMiB,mBAAmBD,EAAWhB,EAAMvF,QACpD4G,EAAKG,gBAET,EACAxB,EAAMiB,mBAAqB,SAAUQ,EAAiBC,GACpD,IAAIT,EAAqBjB,EAAMvF,MAAMwG,mBACrC,OAAKA,GAKEA,EAAmB7B,MAAK,EAAIb,EAAwBnG,SAAS4H,GAAQyB,EAAiBC,EAC/F,EACO1B,CACT,EAtCA,EAAIxB,EAAgBpG,SAASiG,EAAe0B,GAuC5C,IAAI4B,EAAStD,EAAc9C,UA2D3B,OA1DAoG,EAAOd,YAAc,WACnB,IAAItG,EAAMnD,KAAKqD,MAAM2B,SAAS7B,KAAO,KACjCA,GACFnD,KAAKmJ,cAAcqB,KAAKxK,KAAKqD,MAAM2B,SAAU7B,EAAKnD,KAAKqJ,qBAEzDrJ,KAAKoJ,YAAa,CACpB,EACAmB,EAAOE,kBAAoB,WAEzB,IAAIC,EADJ3F,OAAOS,iBAAiB,SAAUxF,KAAKsJ,gBAEvC,IAAIqB,EAAuB3K,KAAKqD,MAAM2B,SACpC7B,EAAMwH,EAAqBxH,IAC3B6G,EAAOW,EAAqBX,KAC1B7G,IACFuH,EAAiB1K,KAAKmJ,cAAcrF,KAAK9D,KAAKqD,MAAM2B,SAAU7B,IAM5D6G,EACFhK,KAAK+J,aAAaa,UAAUZ,QAAOrF,GAC1B+F,GACT1K,KAAK0J,aAAagB,OAAgB/F,EAEtC,EACA4F,EAAOM,qBAAuB,WAC5B9F,OAAO+F,oBAAoB,SAAU9K,KAAKsJ,eAC5C,EACAiB,EAAOQ,mBAAqB,SAA4BnB,GACtD,IAGIc,EAHAM,EAAwBhL,KAAKqD,MAAM2B,SACrCgF,EAAOgB,EAAsBhB,KAC7B7G,EAAM6H,EAAsB7H,IAE1BA,IACFuH,EAAiB1K,KAAKmJ,cAAcrF,KAAK9D,KAAKqD,MAAM2B,SAAU7B,IAY5D6G,EACFhK,KAAK+J,aAAaa,UAAUZ,GAAOJ,GAEnC5J,KAAK0J,aAAagB,EAAgBd,EAEtC,EACAW,EAAOU,OAAS,WACd,OAAoB1E,EAAM2E,cAAchE,EAAcxE,SAAU,CAC9DqB,MAAO/D,KAAKmJ,eACXnJ,KAAKqD,MAAM8H,SAChB,EACOlE,CACT,CApGiC,CAoG/BV,EAAM6E,WACRvN,EAAQoJ,cAAgBA,EACxBA,EAAcoE,UAAY,CACxBxB,mBAAoB1B,EAAWnH,QAAQsK,KACvCH,SAAUhD,EAAWnH,QAAQuK,QAAQC,WACrCxG,SAAUmD,EAAWnH,QAAQyK,OAAOD,6CCtHtC3N,EAAQkD,YAAa,EACrBlD,EAAQ6N,YACR,SAAqBC,GACnB,OAAOA,aAA2D,EAASA,EAAiBC,SAAQC,IAAWA,aAAuC,EAASA,EAAOC,UAAY,IACpL,qCCNA,SAASC,EAAgBtM,EAAGiB,GAC1B,OAAOqL,EAAkBnE,OAAOoE,eAAiBpE,OAAOoE,eAAe1J,OAAS,SAAU7C,EAAGiB,GAC3F,OAAOjB,EAAEwM,UAAYvL,EAAGjB,CAC1B,EAAGsM,EAAgBtM,EAAGiB,EACxB,oECFA7C,EAAQkD,YAAa,EACrBlD,EAAQqO,qBAIR,SAA8BC,GAC5B,IAAInH,GAAW,EAAIoH,EAAaC,eAC5BxG,GAAQ,EAAIyG,EAAOC,YAAYC,EAAetF,eAC9C9D,GAAM,EAAIkJ,EAAOG,QAAQ,MAO7B,OANA,EAAIH,EAAOI,kBAAiB,WAC1B,GAAItJ,EAAIuJ,QAAS,CACf,IAAIhD,EAAW9D,EAAM/B,KAAKkB,EAAUmH,GACpC/I,EAAIuJ,QAAQ7C,SAAS,EAAGH,GAAY,EACtC,CACF,GAAG,CAAC3E,EAAS7B,MACN,CACLC,IAAKA,EACLwJ,SAAU,WACJxJ,EAAIuJ,SACN9G,EAAM2E,KAAKxF,EAAUmH,EAAY/I,EAAIuJ,QAAQE,UAEjD,EAEJ,EArBA,IAAIL,EAAiB,EAAQ,MACzBF,EAAS,EAAQ,MACjBF,EAAe,EAAQ,uCCJ3BvO,EAAQkD,YAAa,EACrBlD,EAAQ4K,oBAAiB,EACzB,IACIqE,EAA6B,gCAC7BrE,EAA8B,WAChC,SAASA,IAAkB,CAC3B,IAAI8B,EAAS9B,EAAetE,UAqC5B,OApCAoG,EAAOzG,KAAO,SAAckB,EAAU7B,GACpC,IAAI4J,EAAW/M,KAAKgN,YAAYhI,EAAU7B,GAC1C,IACE,IAAIY,EAAQgB,OAAOkI,eAAeC,QAAQH,GAC1C,OAAOhJ,EAAQ1D,KAAKC,MAAMyD,GAAS,CACrC,CAAE,MAAOrD,GAIP,OAAIqE,QAAUA,OAAO+H,IAA+B/H,OAAO+H,GAA4BC,GAC9EhI,OAAO+H,GAA4BC,GAErC,CACT,CACF,EACAxC,EAAOC,KAAO,SAAcxF,EAAU7B,EAAKY,GACzC,IAAIgJ,EAAW/M,KAAKgN,YAAYhI,EAAU7B,GACtCgK,EAAc9M,KAAK+M,UAAUrJ,GACjC,IACEgB,OAAOkI,eAAeI,QAAQN,EAAUI,EAC1C,CAAE,MAAOzM,GACHqE,QAAUA,OAAO+H,KAGnB/H,OAAO+H,GAA8B,CAAC,GAFtC/H,OAAO+H,GAA4BC,GAAY1M,KAAKC,MAAM6M,EAQ9D,CACF,EACA5C,EAAOyC,YAAc,SAAqBhI,EAAU7B,GAClD,IAAImK,EAtCe,YAsCwBtI,EAASsB,SACpD,OAAOnD,QAA6CmK,EAAeA,EAAe,IAAMnK,CAC1F,EACOsF,CACT,CAxCkC,GAyClC5K,EAAQ4K,eAAiBA,qCC/CzB,SAAS8E,EAAkB/N,EAAGK,IAC3B,MAAQA,GAAKA,EAAIL,EAAEhB,UAAYqB,EAAIL,EAAEhB,QACtC,IAAK,IAAIkC,EAAI,EAAGxB,EAAI6J,MAAMlJ,GAAIa,EAAIb,EAAGa,IAAKxB,EAAEwB,GAAKlB,EAAEkB,GACnD,OAAOxB,CACT,CCAA,SAASsO,EAAmBhO,GAC1B,OCJF,SAA4BA,GAC1B,GAAIuJ,MAAM0E,QAAQjO,GAAI,OAAO,EAAiBA,EAChD,CDES,CAAkBA,IEL3B,SAA0BA,GACxB,GAAI,oBAAsBH,QAAU,MAAQG,EAAEH,OAAOqO,WAAa,MAAQlO,EAAE,cAAe,OAAOuJ,MAAM4E,KAAKnO,EAC/G,CFGiC,CAAgBA,IGJjD,SAAqCA,EAAGK,GACtC,GAAIL,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,EAAiBA,EAAGK,GACrD,IAAIJ,EAAI,CAAC,EAAEmO,SAAS5F,KAAKxI,GAAGqO,MAAM,GAAI,GACtC,MAAO,WAAapO,GAAKD,EAAEsO,cAAgBrO,EAAID,EAAEsO,YAAYhN,MAAO,QAAUrB,GAAK,QAAUA,EAAIsJ,MAAM4E,KAAKnO,GAAK,cAAgBC,GAAK,2CAA2CsO,KAAKtO,GAAK,EAAiBD,EAAGK,QAAK,CACtN,CACF,CHFuD,CAA2BL,IILlF,WACE,MAAM,IAAIwO,UAAU,uIACtB,CJGwF,EACxF,oEKFA,IAAIC,EAAUxQ,EAAQ,uCCFtBmK,OAAOC,eAAehK,EAAS,aAA/B,CAA+CkG,OAAO,IA6CtDlG,EAAQqQ,YAVY,iBAWpBrQ,EAAQsQ,iBAHkBC,GAvCJ,EAACA,EAAQC,KAC3B,MAAM,QAAEvC,EAAU,MAAOwC,GAAmBF,GAAU,CAAC,EACjDG,EAAYlO,KAAK+M,UAAUkB,GAAgB,CAACvP,EAAGa,KAChC,mBAANA,IACPA,EAAI4O,OAAO5O,IACL6O,WAAW1P,EAAI,OACjBa,EAAI,YAAcA,GAGnBA,KAEX,MAAO,CACH,uBACAgI,OAAO8G,KAAKJ,GAAgB9P,OAAS,EAC/B,iCAAiC+P,MACjC,mBACN,kBACAzC,EAAQtN,OAAS,EAAI,WAAW6B,KAAK+M,UAAUtB,MAAc,GAC7D,oCACAuC,GACFM,KAAK,GAAG,EAmBuBC,CAAcR,EAzC1B,iwECJzB,SAASS,EAAgBpP,GACvB,OAAOoP,EAAkBjH,OAAOoE,eAAiBpE,OAAOkH,eAAexM,OAAS,SAAU7C,GACxF,OAAOA,EAAEwM,WAAarE,OAAOkH,eAAerP,EAC9C,EAAGoP,EAAgBpP,EACrB,eCJA,SAASsP,IACP,IACE,IAAItP,GAAKuP,QAAQ7K,UAAU8K,QAAQjH,KAAKkH,QAAQC,UAAUH,QAAS,IAAI,WAAa,IACtF,CAAE,MAAOvP,GAAI,CACb,OAAQsP,EAA4B,WAClC,QAAStP,CACX,IACF,CCHA,SAAS2P,EAAiB3P,GACxB,IAAID,EAAI,mBAAqBL,IAAM,IAAIA,SAAQ,EAC/C,OAAOiQ,EAAmB,SAA0B3P,GAClD,GAAI,OAASA,ICPjB,SAA2BA,GACzB,IACE,OAAQ,IAAM4P,SAASzB,SAAS5F,KAAKvI,GAAGoC,QAAQ,gBAClD,CAAE,MAAO3C,GACP,MAAO,mBAAqBO,CAC9B,CACF,CDCuB,CAAiBA,GAAI,OAAOA,EAC/C,GAAI,mBAAqBA,EAAG,MAAM,IAAIuO,UAAU,sDAChD,QAAI,IAAWxO,EAAG,CAChB,GAAIA,EAAEiI,IAAIhI,GAAI,OAAOD,EAAEmB,IAAIlB,GAC3BD,EAAEiC,IAAIhC,EAAG6P,EACX,CACA,SAASA,IACP,OEZN,SAAoB7P,EAAGiB,EAAGlB,GACxB,GAAI,IAA4B,OAAO0P,QAAQC,UAAUlG,MAAM,KAAMH,WACrE,IAAIyG,EAAI,CAAC,MACTA,EAAEnL,KAAK6E,MAAMsG,EAAG7O,GAChB,IAAItB,EAAI,IAAKK,EAAE6C,KAAK2G,MAAMxJ,EAAG8P,IAC7B,OAAO/P,IAAK,EAAAwM,EAAA,GAAe5M,EAAGI,EAAE2E,WAAY/E,CAC9C,CFMa,CAAUK,EAAGqJ,UAAW,EAAe9I,MAAM8N,YACtD,CACA,OAAOwB,EAAQnL,UAAYyD,OAAO4H,OAAO/P,EAAE0E,UAAW,CACpD2J,YAAa,CACX/J,MAAOuL,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,MAEd,EAAA3D,EAAA,GAAesD,EAAS7P,EAC9B,EAAG2P,EAAiB3P,EACtB,kCGvBO,MAAMmQ,EAAsBzJ,IAA4B,IAA3B,QAAE0J,EAAO,SAAE1E,GAAUhF,EACvD,MAAM2J,EAAW,CACfvJ,EAAAA,cAAoB,cAAe,CACjC1F,GAAI,GAAGgP,QAETtJ,EAAAA,cAAoB,YAAa,CAC/B1F,GAAI,GAAGgP,SAkBX,OAdI1E,IAGF2E,EAAS1L,KAAK+G,GACd2E,EAAS1L,KACPmC,EAAAA,cAAoB,cAAe,CACjC1F,GAAI,GAAGgP,QAETtJ,EAAAA,cAAoB,YAAa,CAC/B1F,GAAI,GAAGgP,UAKNC,CAAQ,ECZJC,EAAc5J,IAKpB,IALqB,UAC1B6J,EAAS,WACTC,EAAU,SACV9E,KACG+E,GACJ/J,EACC,MAAMgK,GAAY5D,EAAAA,EAAAA,YAAW3F,EAAAA,IACvBwJ,GAAc7D,EAAAA,EAAAA,YAAW1F,EAAAA,IACzBwJ,EAAoBF,EAAUH,GAEpC,IAAKK,EAAmB,CACtB,GAAIJ,EACF,OAAO,KAEP,MAAM,IAAItO,MACR,UAAU0O,WAA2BL,oBAG3C,CAEA,MAAMH,EA7BWS,EAACN,EAAWE,IACxBtI,OAAO8G,KAAKwB,GAAY1R,OAKtB,GAAGwR,MADUO,EAAAA,EAAAA,GAAoBL,KAH/BF,EA2BOM,CAAWD,EAAmBH,GAG9C,IAAIM,EAAaJ,EAAYP,GAa7B,OAZKW,EAOCrF,IACFqF,EAAWC,aAAc,GAP3BL,EAAYP,GAAWW,EAAa,CAClCnN,MAAO6M,EACPF,UAAWK,EACXI,cAAetF,GAQZ5E,EAAAA,cAACqJ,EAAmB,CAACC,QAASA,GAAU1E,EAA+B,EC/CnEuF,EAAcvK,IAKpB,IALqB,UAC1B6J,EAAS,WACTC,EAAU,SACV9E,KACG+E,GACJ/J,EACC,MAAMgK,GAAY5D,EAAAA,EAAAA,YAAW3F,EAAAA,IACvB+J,GAAmBpE,EAAAA,EAAAA,YAAW7F,EAAAA,IAC9B2J,EAAoBF,EAAUH,GAC9BnC,EAAQ8C,EAAiBhQ,IAAI0P,GAEnC,IAAKxC,EAAO,CACV,GAAIoC,EACF,OAAO,KAEP,MAAM,IAAItO,MACR,UAAU0O,WAA2BL,oBAG3C,CAEA,OACEzJ,EAAAA,cAACsH,EAAM+C,UAAShJ,OAAAiJ,OAAA,CACdC,aAAcjD,EAAMiD,aACpBC,KAAMlD,EAAMkD,MACRb,GAEH/E,EACe,ECxBf,SAAS6F,EAAM3N,GACW,CAE7B,MAAM4N,EAAgB,IACjB5N,EACH2M,UAAW3M,EAAM6N,cAEZD,EAAcC,aACdD,EAAcE,qBAErB,MAAMC,GAAgB7E,EAAAA,EAAAA,YAAW5F,EAAAA,IAG3B0K,EAAaC,EAAmBjO,GACtC,GAAIuE,OAAO8G,KAAK2C,GAAY7S,OAC1B,MAAM,IAAI+S,EAC4B,YAApCH,EAAcI,kBACdP,EAAcjB,UACdqB,EACAhO,EAAM8N,sBAIV,GAAwC,WAApCC,EAAcI,kBAChB,OAAOjL,EAAAA,cAACwJ,EAAgBkB,GACnB,GAAwC,YAApCG,EAAcI,kBAEvB,OAAOjL,EAAAA,cAACmK,EAAgBO,GACnB,GAC+B,YAApCG,EAAcI,mBACsB,YAApCJ,EAAcI,kBAGd,OAAOjL,EAAAA,cAACmK,EAAgBO,GACnB,GAAwC,WAApCG,EAAcI,kBAAgC,CAGvD,IAAIC,EAA2B,GAI/B,IACEA,EAA2B,wBAAwBL,EAAcM,UAAU5Q,UAAUsQ,EAAcM,UAAUC,gDAAgDtO,EAAM6N,UACrK,CAAE,MACA,CAGF,MAAM,IAAIvP,MACR,mCAAmC8P,8FAEvC,CACE,MAAM,IAAI9P,MACR,kBAAkByP,EAAcI,uCAGtC,CAGF,CAAC,IAEKD,EAAe,SAAAK,GACnB,SAAAL,EAAYM,EAAW7B,EAAWqB,EAAYS,GAAqB,IAADlJ,EAChE,MAAMmJ,EAASnK,OAAOoK,QAAQX,GAC3BlT,KACCgI,IAAA,IAAEhD,EAAKY,GAAMoC,EAAA,MACX,qBAAqBpC,sBAA0BZ,SAAW,IAE7DwL,KAAK,MAEF7N,EAAO,kBACb,IAAI8B,EAAQ,GACRD,EAAU,GAEd,GAAIkP,EAAW,CAGb,MAIMI,EAHJ1L,EAAAA,mDAAyD2L,uBAAuBC,kBAGrDC,OAAOC,MAAM,MAAMxE,MAAM,GACtDoE,EAAW,GAAKA,EAAW,GAAGG,OAC9BxP,EAAQ,KAAOqP,EAAWtD,KAAK,MAE/BhM,EAAU,UAAUqN,kDAA0D+B,KAChF,KAAO,CAELpP,EAAU,GAAG7B,aAAgBkP,kDAA0D+B,MAEvFnP,EAAQ,GAAGD,OADQ,IAAIhB,OAAQiB,MAAMwP,OAAOC,MAAM,MAAMxE,MAAM,GAC5Bc,KAAK,OACzC,CAYC,OAVD/F,EAAAgJ,EAAA5J,KAAA,KAAMrF,IAAQ,MACT7B,KAAOA,EACR8B,EACFgG,EAAKhG,MAAQA,EAEbjB,MAAM2Q,kBAAiB1J,EAAO2I,GAG5BO,IACFlJ,EAAK2J,eAAiB,IAAKT,EAAoBU,aAAc,UAC9D5J,CACH,CAAC,OAAA6J,EAAAA,EAAAA,GAAAlB,EAAAK,GAAAL,CAAA,CA3CkB,CA2ClBnC,EA3C2BzN,QA8C9B,MAAM2P,EAAqB,SACzBjO,EACA0O,EACAW,EACAC,QAFM,IAANZ,IAAAA,EAAS,CAAC,QACC,IAAXW,IAAAA,EAAc,SACV,IAAJC,IAAAA,EAAO,MAGP,IAAK,MAAO7R,EAAMiD,KAAU6D,OAAOoK,QAAQ3O,GAAQ,CACjD,GACEU,UAEE4O,GAAiB,aAAT7R,EAEV,SAGF,MAAM8R,EAAWD,EAAO,GAAGA,KAAQ7R,IAASA,EAEvB,mBAAViD,EACTgO,EAAOa,UAAmB7O,EACA,iBAAVA,GAAsB2O,EAAY7Q,QAAQkC,IAAU,IACpE2O,EAAYtO,KAAKL,GACjBuN,EAAmBvN,EAAOgO,EAAQW,EAAaE,GAEnD,CAEA,OAAOb,CACT,gBC1IA,MAAMc,EAAmBxM,EAAAA,GAAOyM,QAEhC,SAASC,IACP,MAAM,IAAIpR,MACR,6UAKJ,oBCNA4C,EAAO1G,QALP,SAAgC6C,GAC9B,OAAOA,GAAKA,EAAEK,WAAaL,EAAI,CAC7B,QAAWA,EAEf,EACyC6D,EAAO1G,QAAQkD,YAAa,EAAMwD,EAAO1G,QAAiB,QAAI0G,EAAO1G,yQCJN,SAAS0R,IAAI,OAAOA,EAAE3H,OAAOiJ,OAAOjJ,OAAOiJ,OAAOvO,OAAO,SAAS7C,GAAG,IAAI,IAAIiB,EAAE,EAAEA,EAAEoI,UAAUtK,OAAOkC,IAAI,CAAC,IAAIxB,EAAE4J,UAAUpI,GAAG,IAAI,IAAIlB,KAAKN,EAAE0I,OAAOzD,UAAU4D,eAAeC,KAAK9I,EAAEM,KAAKC,EAAED,GAAGN,EAAEM,GAAG,CAAC,OAAOC,CAAC,EAAE8P,EAAEtG,MAAMjJ,KAAK8I,UAAU,CAAC,MAAMjJ,EAAE,IAAIV,IAAIH,EAAE,CAAC2B,IAAIlB,GAAGI,EAAEc,IAAIlB,IAAI,GAAG,GAAAgC,CAAIhC,EAAEiB,GAAG,MAAMxB,EAAEW,EAAEc,IAAIlB,IAAI,GAAGP,EAAEkF,KAAK1D,GAAGb,EAAE4B,IAAIhC,EAAEP,EAAE,EAAE,OAAOO,GAAGI,EAAEmT,OAAOvT,EAAE,GAAGwT,EAAE,oBAAoBC,MAAMA,KAAKC,qBAAqBD,KAAKC,oBAAoB7Q,KAAKyC,SAAS,SAAStF,GAAG,MAAMiB,EAAE0S,KAAKC,MAAM,OAAOC,YAAW,WAAW7T,EAAE,CAAC8T,YAAW,EAAGC,cAAc,WAAW,OAAOC,KAAKC,IAAI,EAAE,IAAIN,KAAKC,MAAM3S,GAAG,GAAG,GAAE,EAAE,EAAE,IAAIX,EAAYN,KAAiFM,IAAIA,EAAE,CAAC,IAAnF4T,YAAY,eAAelU,EAAEmU,KAAK,OAAOnU,EAAEoU,cAAc,kBAA8B,MAAMC,EAAE,IAAIC,IAAI,CAAC,MAAM,WAAW,0BAA0B,WAAW,SAAS,YAAYtR,EAAE,IAAIsR,IAAItT,EAAE,IAAItB,IAAI,SAAS6C,EAAEtB,GAAgB,OAAO,gBAAgB,WAAE,MAAK,IAAiB,gBAAgBtB,EAAEsB,IAAG,CAAC,SAAStB,EAAEF,GAAG,MAAM8U,IAAInU,EAAEoU,SAASH,EAAE/T,EAAE4T,aAAazU,GAAG,CAAC,GAAGoH,SAAS7D,IAAG,mBAAI,IAAG,gBAAE,KAAK,IAAIhD,EAAE,OAAOqU,GAAG,KAAK/T,EAAE4T,YAAYlU,EAAEyB,EAAEhC,GAAG,MAAM,KAAKa,EAAE6T,KAAKX,GAAE,KAAKxT,EAAEyB,EAAEhC,EAAC,IAAI,MAAM,KAAKa,EAAE8T,cAAc,CAAC,MAAMpU,EAAEK,EAAEZ,GAAGF,EAAEyC,IAAIgB,EAAEhD,EAAE,EAAE,MAAM,KAAK,MAAMoM,OAAOnL,EAAEwT,aAAahV,EAAEiV,cAAc3U,GAAGC,GAAG,CAAC,EAAEP,IAAI,MAAMwB,GAAGA,EAAEoK,oBAAoB,OAAO5L,IAAIM,IAAI,MAAMkB,GAAGA,EAAEoK,oBAAoB,QAAQtL,IAAI,MAAMkB,GAAGA,EAAE0T,QAAO,CAAC,GAAG,IAAIN,IAAI/T,EAAE8T,cAAc,CAAC,MAAMnT,EAAE2B,EAAEnD,GAAGM,EAAEM,EAAEZ,GAAG,MAAM,oBAAoB6F,QAAQ/F,EAAEyC,IAAIgB,EAAEjD,GAAgB,gBAAgB,SAASkB,EAAE6O,EAAE,CAACrM,KAAK,iBAAiB,gBAAgB4Q,EAAEO,YAAY,aAAa7U,EAAE,CAAC8U,wBAAwB,CAACC,OAAOlS,EAAEnD,MAAMqQ,EAAE,CAACrM,KAAK,iBAAiB8Q,IAAI9R,EAAErC,GAAG,gBAAgBiU,EAAEO,YAAY,aAAa7U,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS0B,EAAEzB,GAAG,MAAMoB,GAAGH,EAAEsT,IAAI9U,EAAE+U,SAASzU,EAAEO,EAAE4T,YAAYa,OAAO3U,EAAE4U,QAAQzV,GAAGS,GAAG,CAAC,EAAEwT,EAAEvS,GAAGxB,EAAE4U,EAAE,CAAC,OAAO,SAAS9R,EAAE,CAAC0S,KAAK7U,EAAE6E,MAAM1F,GAAG,GAAGiU,EAAE,CAAC,IAAI,MAAMxT,KAAKqU,EAAE,GAAG,MAAM9R,GAAGA,EAAEvC,GAAG,CAAC,IAAIL,EAAE,MAAMsB,EAAED,EAAEE,IAAIsS,IAAI,CAAC,GAAG0B,UAAUzV,EAAE,KAAK,MAAMwB,OAAE,EAAOA,EAAEjB,KAAK,CAAC,EAAE,IAAIyB,EAAEgB,EAAEhD,EAAEkF,KAAK,MAAMpC,OAAE,EAAOA,EAAEvC,IAAI,MAAMiB,GAAG,OAAOtB,EAAEsB,EAAEjB,KAAKL,EAAEwV,MAAM,MAAM5S,GAAG,OAAOd,EAAEc,EAAEvC,KAAKyB,EAAE8G,KAAKhG,EAAE,MAAMtB,GAAG,OAAOwB,EAAExB,EAAEjB,SAAI,EAAOyC,EAAE0S,OAAOnU,EAAEgB,IAAIwR,EAAE1D,EAAE,CAAC,EAAE7O,EAAE,CAAC,CAACjB,GAAG,CAACkV,UAAUzV,KAAK,CAAC,GAAGuD,EAAEgF,IAAIwL,GAAG,OAAO,IAAI,CAAC,MAAMrT,EAAEyC,EAAE5C,GAAGV,EAAEe,EAAEL,GAAGW,EAAE8J,SAASgB,cAAc,UAAUxK,IAAIN,EAAES,GAAGH,GAAGN,EAAEyU,QAAQZ,SAASzU,EAAE,IAAI,MAAMC,EAAEiB,KAAKkH,OAAOoK,QAAQjT,GAAGqB,EAAE0U,aAAarV,EAAEiB,GAAGd,IAAIQ,EAAE2U,YAAYnV,GAAGV,IAAIkB,EAAE4T,IAAI9U,GAAG,MAAMmC,EAAE,CAAC,EAAE,GAAG4R,EAAE,CAAC,IAAI,MAAMxT,KAAKqU,EAAE,CAAC,MAAMpT,EAAEA,GAAGyB,EAAEzB,EAAEuS,EAAExT,GAAGW,EAAEoF,iBAAiB/F,EAAEiB,GAAGW,EAAE,GAAG5B,aAAaiB,CAAC,CAAC+B,EAAEuS,IAAI/B,EAAE,CAAC,OAAO/I,SAAS+K,KAAKC,YAAY9U,GAAG,CAACyL,OAAOzL,EAAE8T,aAAa7S,EAAE6S,aAAaC,cAAc9S,EAAE8S,cAAc,CAAC,SAAS9R,EAAE5C,GAAG,MAAM6U,wBAAwB5T,EAAEyK,SAASjM,EAAE,IAAIO,GAAG,CAAC,GAAG8U,OAAO/U,EAAE,IAAIkB,GAAG,CAAC,EAAE,OAAOlB,GAAGN,CAAC,CAAC,SAASY,EAAEL,GAAG,MAAMiB,EAAE,CAAC,EAAE,IAAI,MAAMxB,EAAEM,KAAKoI,OAAOoK,QAAQvS,GAAGqU,EAAErM,IAAIvI,KAAKwB,EAAExB,GAAGM,GAAG,OAAOkB,CAAC,CAAC,SAASwB,EAAEzC,GAAG,GAAGA,EAAE,MAAM,4BAA4B0V,mBAAmB1V,IAAI,CAAC,SAAS0C,EAAE1C,EAAEiB,EAAExB,GAAG,MAAMM,EAAEiB,EAAEE,IAAID,IAAI,CAAC,EAAE,IAAI,MAAMA,KAAK,MAAMlB,GAAG,OAAO+P,EAAE/P,EAAEN,SAAI,EAAOqQ,EAAEoF,YAAY,GAAG,CAAC,IAAIpF,EAAE7O,EAAEjB,EAAE,CAACgB,EAAEgB,IAAIf,EAAE,CAAC,CAACxB,GAAG,CAAC0V,MAAMnV,IAAI,oBCDp5F,SAASsM,EAAgBtM,EAAGiB,GAC1B,OAAO6D,EAAO1G,QAAUkO,EAAkBnE,OAAOoE,eAAiBpE,OAAOoE,eAAe1J,OAAS,SAAU7C,EAAGiB,GAC5G,OAAOjB,EAAEwM,UAAYvL,EAAGjB,CAC1B,EAAG8E,EAAO1G,QAAQkD,YAAa,EAAMwD,EAAO1G,QAAiB,QAAI0G,EAAO1G,QAASkO,EAAgBtM,EAAGiB,EACtG,CACA6D,EAAO1G,QAAUkO,EAAiBxH,EAAO1G,QAAQkD,YAAa,EAAMwD,EAAO1G,QAAiB,QAAI0G,EAAO1G,sKCAhG,SAASuX,EAAoBjP,GAA0B,IAAzB,SAAEgF,EAAQ,SAAEkK,GAAUlP,EAKzD,OAJAmP,EAAAA,EAAAA,YAAU,KACRD,GAAU,IAGLlK,CACT,CCXO,MAAMoK,EAAmB,CAC9B,OACA,OACA,QACA,QACA,OACA,WACA,SACA,OACA,QCgEK,SAASC,EAAYC,EAAQC,GAClC,GAAID,aAAkBE,aAAeD,aAAkBC,YAAa,CAClE,MAAMC,EAAQF,EAAOG,aAAa,SAGlC,GAAID,IAAUH,EAAOI,aAAa,SAAU,CAC1C,MAAMC,EAAWJ,EAAOK,WAAU,GAGlC,OAFAD,EAAShB,aAAa,QAAS,IAC/BgB,EAASF,MAAQA,EACVA,IAAUH,EAAOG,OAASH,EAAOD,YAAYM,EACtD,CACF,CAEA,OAAOL,EAAOD,YAAYE,EAC5B,CAsBO,SAASM,EACdC,EACAC,QAAqB,IAArBA,IAAAA,EAAwB,CACtBC,KAAM,CAAC,EACPlB,KAAM,CAAC,IAGT,MAAMmB,EAAU,IAAIjX,IACdkX,EAAiB,GAGvB,IAAK,MAAMpM,KAAQgM,EAASK,WAAY,CAAC,IAADC,EAAAC,EACtC,MAAMC,EAAWxM,EAAKwM,SAASC,cACzB7V,EAAoB,QAAlB0V,EAAGtM,EAAK0M,kBAAU,IAAAJ,GAAI,QAAJC,EAAfD,EAAiB1V,UAAE,IAAA2V,OAAJ,EAAfA,EAAqBzS,MAEhC,GAAK6S,EAAc3M,GAAnB,CAEA,GAAI4M,EAAgBJ,GAElB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,IAAK,MAAMK,KAAa7M,EAAK0M,WAAY,CACvC,MAAMI,EAAsC,UAAnBD,EAAUhW,KAYZ,IAADkW,EAAtB,GATAd,EAAsBO,GAAY,IAC7BP,EAAsBO,IAGtBM,IACHb,EAAsBO,GAAUK,EAAUhW,MAAQgW,EAAU/S,OAI1DgT,EACFb,EAAsBO,GAAUQ,MAAQ,GACP,QAA/BD,EAAAd,EAAsBO,UAAS,IAAAO,GAA/BA,EAAiCC,MAC7Bf,EAAsBO,GAAUQ,MAChC,KACHH,EAAU/S,QAEjB,KACK,CACL,IAAImT,EAAajN,EAAK8L,WAAU,GAQhC,GAPAmB,EAAWpC,aAAa,oBAAoB,GAGF,WAAtCoC,EAAWT,SAASC,gBACtBQ,EAAaC,EAAcD,IAGzBrW,EACF,GAAKuV,EAAQ3O,IAAI5G,GAGV,CAAC,IAADuW,EACL,MAAMC,EAAgCjB,EAAQzV,IAAIE,GAGtC,QAFZuW,EAAAf,EACEgB,GACAC,kBAAU,IAAAF,GAFZA,EAEcG,YACZlB,EAAegB,IAEjBhB,EAAegB,GAAiCH,CAClD,MAVEb,EAAejS,KAAK8S,GACpBd,EAAQ3U,IAAIZ,EAAIwV,EAAe7X,OAAS,QAW1C6X,EAAejS,KAAK8S,EAExB,CAKEjN,EAAKqM,WAAW9X,QAClB6X,EAAejS,KAAI6E,MAAnBoN,GAAc7I,EAAAA,EAAAA,GACTwI,EAA+B/L,EAAMiM,GACrCG,gBA3D2B,CA8DpC,CAEA,MAAO,CAAEA,iBAAgBH,wBAC3B,CAEA,SAASiB,EAAclN,GACrB,MAAM4B,EAAS3B,SAASgB,cAAc,UACtC,IAAK,MAAMsM,KAAQvN,EAAK0M,WACtB9K,EAAOiJ,aAAa0C,EAAK1W,KAAM0W,EAAKzT,OAItC,OAFA8H,EAAO4L,UAAYxN,EAAKwN,UAEjB5L,CACT,CAEO,SAASgL,EAAgBJ,GAC9B,OAAOlB,EAAiBmC,SAASjB,EACnC,CAKO,SAASG,EAAc3M,GAC5B,OAAyB,IAAlBA,EAAK0N,QACd,CCjMA,MAAMC,EAAa1N,SAASgB,cAAc,OACpC2M,EAA8B,CAClC1B,KAAM,GACNlB,KAAM,IAGF6C,EAAiBA,KAAO,IAADC,EAC3B,MAAM,eAAE1B,EAAc,sBAAEH,GACtBF,EAA+B4B,GAEjCC,EAA4B1B,KAAOvO,OAAO8G,KAAKwH,EAAsBC,MACrE0B,EAA4B5C,KAAOrN,OAAO8G,KAAKwH,EAAsBjB,MDkMhE,SAAoCiB,GACzC,IAAKA,EAAuB,OAE5B,MAAM,KAAEC,EAAI,KAAElB,GAASiB,EAEjB8B,EAAc9N,SAAS+N,cAAc,QACvCD,GACFpQ,OAAOoK,QAAQmE,GAAM3U,SAAQ0W,IAAsC,IAApCC,EAAeC,GAAeF,EAC3DF,EAAYlD,aAAaqD,EAAeC,EAAe,IAI3D,MAAMC,EAAcnO,SAAS+N,cAAc,QACvCI,GACFzQ,OAAOoK,QAAQiD,GAAMzT,SAAQ8W,IAAsC,IAApCH,EAAeC,GAAeE,EAC3DD,EAAYvD,aAAaqD,EAAeC,EAAe,GAG7D,CClNEG,CAA2BrC,GAM3B,MAAMsC,EAAuBtO,SAASuO,iBAAiB,sBAEf,IAADC,EAAvC,GAAoC,IAAhCF,EAAqBha,OAEvB,YADAka,EAAAxO,SAASyO,MAAKC,OAAM3P,MAAAyP,GAAAlL,EAAAA,EAAAA,GAAI6I,IAI1B,MAAMwC,EAAe,ID8ChB,SAAkB1S,GAA0C,IAAzC,SAAE2S,EAAQ,SAAEC,EAAQ,QAAEC,EAAO,MAAEC,GAAO9S,EAC9D,IAAK,MAAM+S,KAAuBJ,EAAU,CAC1C,MAAMK,EAAkBJ,EAASK,WAAU1Y,GACzC8U,EAAY9U,EAAGwY,MAGQ,IAArBC,EACFH,EAAQE,GAGRH,EAASM,OAAOF,EAAiB,EAErC,CAGA,IAAK,MAAMG,KAAWP,EACpBE,EAAMK,EAEV,CC/DEC,CAAU,CACRT,SAAUN,EACVO,SAAU1C,EACV2C,QAAS/O,GAAQA,EAAKqN,WAAWC,YAAYtN,GAC7CgP,MAAOhP,GAAQ4O,EAAazU,KAAK6F,MAGnC8N,EAAA7N,SAASyO,MAAKC,OAAM3P,MAAA8O,EAAIc,EAAa,EAmChC,SAASW,EAAqBrT,GAIjC,IAJkC,cACpCsT,EAAa,mBACbC,EAAkB,mBAClBC,GACDxT,GACCmP,EAAAA,EAAAA,YAAU,KACR,GAAImE,SAAAA,EAAeG,KAAM,EDvEtB,SAA6BjB,GAClC,GAAoB,mBAATA,EACT,MAAM,IAAIhX,MACR,uDAAuDgX,MAE7D,CCmEMkB,CAAoBJ,EAAcG,MAElC,MAAM,OAAE3O,IAAW6O,EAAAA,EAAAA,KAEbC,EACJxT,EAAAA,cAACkT,EAAcG,KD3Fd,CACL5U,SAAU,CACRsB,UAH0B0T,EC4FgBL,GDzF1B3U,SAASsB,UAE3B2T,OAAQD,EAAMC,OACdlJ,KAAMiJ,EAAMjJ,MAAQ,CAAC,EACrBmJ,WAAYF,EAAME,WAClBC,YAAaH,EAAMG,cCuFXC,GAAkB3U,EAAAA,EAAAA,GACtB,kBACA,CAAE8F,QAASwO,GACXA,GACA7B,IAAiB,IAAhB,OAAE7Z,GAAQ6Z,EACT,MAAO,CAAE3M,QAASlN,EAAQ,IAE5Bgc,MAEFpP,EAIE1E,EAAAA,cAAC6O,EAAoB,CAACC,SAAUyC,GAC9BvR,EAAAA,cAAC+T,EAAAA,mBAAmB5X,SAAQ,CAACqB,MAAO2V,GAClCnT,EAAAA,cAACgU,EAAAA,iBAAgB,KAAEH,KAGvBxC,EAEJ,CDnHG,IAAyBoC,ECqH5B,MAAO,MD4FJ,WACL,MAAMQ,EAAgBtQ,SAASuO,iBAAiB,sBAChD,IAAK,MAAMxO,KAAQuQ,EACjBvQ,EAAKqN,WAAWC,YAAYtN,EAEhC,CChGMwQ,GDsHC,SAAqCC,GAC1C,IAAKA,EAA0B,OAE/B,MAAM,KAAEvE,EAAI,KAAElB,GAASyF,EAEvB,GAAIvE,EAAM,CACR,MAAM6B,EAAc9N,SAAS+N,cAAc,QAC3C9B,EAAK3U,SAAQ2W,IACPH,GACFA,EAAY2C,gBAAgBxC,EAC9B,GAEJ,CAEA,GAAIlD,EAAM,CACR,MAAMoD,EAAcnO,SAAS+N,cAAc,QAC3ChD,EAAKzT,SAAQ2W,IACPE,GACFA,EAAYsC,gBAAgBxC,EAC9B,GAEJ,CACF,CC3IMyC,CAA4B/C,EAA4B,CACzD,GAEL,CCzHA,SAASgD,EAAaxX,GACpB,MAAMsW,EAAqB,IACtBtW,EACH4W,OAAQ,KACHa,EAAAA,EAAAA,IAAgBzX,EAAM2B,SAASsB,aAC/BjD,EAAM+C,cAAcK,KAAK0T,YAAYY,WAM5C,IAAIC,EAFkB3Y,MAIpB2Y,EADE3X,EAAM+C,cAAc6U,iBACR5X,EAAM+C,cAAc6U,kBAEpB/P,EAAAA,EAAAA,gBANM7I,EAMsBgB,EAAM+C,cAAcwK,YAN/BvO,EAAErB,SAAYqB,EAM6B,IACrEsX,EACHxW,IAAKE,EAAMsP,MAAQtP,EAAM+C,cAAc8U,KAAKvI,OAMhD6G,EAAsB,CACpBC,cAHoBpW,EAAM+C,cAAcuS,KAIxCe,mBAAoBrW,EAAM+C,cAAcsT,mBACxCC,uBAeF,OAZoBlU,EAAAA,EAAAA,GAClB,kBACA,CACE8F,QAASyP,EACT3X,MAAOsW,GAETqB,GACA7U,IAAiB,IAAhB,OAAE9H,GAAQ8H,EACT,MAAO,CAAEoF,QAASlN,EAAQgF,MAAOsW,EAAoB,IAEvDU,KAGJ,CAEAQ,EAAaxP,UAAY,CACvBrG,SAAUmW,IAAAA,OAAiB3P,WAC3BpF,cAAe+U,IAAAA,OAAiB3P,WAChCuF,KAAMoK,IAAAA,OACNhB,YAAagB,IAAAA,OAAiB3P,YAGhC,8BC1DA,IAAIQ,EAAiB,EAAQ,MAI7BzH,EAAO1G,QAHP,SAAwB4B,EAAG8P,GACzB9P,EAAE0E,UAAYyD,OAAO4H,OAAOD,EAAEpL,WAAY1E,EAAE0E,UAAU2J,YAAcrO,EAAGuM,EAAevM,EAAG8P,EAC3F,EACiChL,EAAO1G,QAAQkD,YAAa,EAAMwD,EAAO1G,QAAiB,QAAI0G,EAAO1G,yCCDtGA,EAAQ,OAA2B,EACnC,MAMMud,EAAW,CAAC,QAAS,QAAS,MAAO,OAAQ,OAAQ,OAAQ,QAenEvd,EAAQ,EAdyB,CAACmc,EAAOqB,EAAS,YAChD,GAAc,MAAVrB,EAAe,OAAOA,EAC1B,MAAMsB,EAAmBtB,EAAMuB,SAAS,KACxC,MAVuB,EAACH,EAAUpB,KAClC,IAAK,MAAMwB,KAAUJ,EACnB,GAAIpB,EAAMuB,SAASC,GAAS,OAAO,EAErC,OAAO,CAAK,EAMRC,CAAiBL,EAAUpB,GACtBA,EAEM,WAAXqB,EACKC,EAAmBtB,EAAQ,GAAGA,KAExB,UAAXqB,GACKC,EAAmBtB,EAAMnM,MAAM,GAAI,GAErCmM,CAAK,o/BCvBkF,SAASzK,IAAI,OAAOA,EAAE3H,OAAOiJ,OAAOjJ,OAAOiJ,OAAOvO,OAAO,SAAS5B,GAAG,IAAI,IAAIjB,EAAE,EAAEA,EAAEqJ,UAAUtK,OAAOiB,IAAI,CAAC,IAAID,EAAEsJ,UAAUrJ,GAAG,IAAI,IAAIP,KAAKM,EAAEoI,OAAOzD,UAAU4D,eAAeC,KAAKxI,EAAEN,KAAKwB,EAAExB,GAAGM,EAAEN,GAAG,CAAC,OAAOwB,CAAC,EAAE6O,EAAEtG,MAAMjJ,KAAK8I,UAAU,CAAC,SAASjJ,EAAEa,EAAEjB,GAAG,GAAG,MAAMiB,EAAE,MAAM,CAAC,EAAE,IAAIlB,EAAEN,EAAEqQ,EAAE,CAAC,EAAE1P,EAAE+H,OAAO8G,KAAKhO,GAAG,IAAIxB,EAAE,EAAEA,EAAEW,EAAErB,OAAOU,IAAIO,EAAEoC,QAAQrC,EAAEK,EAAEX,KAAK,IAAIqQ,EAAE/P,GAAGkB,EAAElB,IAAI,OAAO+P,CAAC,CAAC,MAAM0D,EAAEvS,IAAI,MAAMgb,OAAOjc,EAAEuK,KAAKxK,EAAEmc,KAAKzc,EAAE0c,OAAOrM,EAAEtK,SAASpF,EAAEgc,KAAK5I,EAAE/N,SAAS4O,EAAEgI,KAAK/b,GAAGW,EAAEsE,SAAS,IAAIsB,SAAStH,GAAG0B,EAAEsE,SAAS,OAAOhG,GAAGE,GAAGuD,IAAIzD,EAAE,IAAI+c,IAAI7c,GAAGoH,UAAU,CAACA,SAAS0V,UAAUpR,UAAU5L,IAAI0c,OAAOjc,EAAEuK,KAAKxK,EAAEmc,KAAKzc,EAAE0c,OAAOrM,EAAEtK,SAASpF,EAAEgc,KAAK5I,EAAE/N,SAAS4O,EAAEgI,KAAK/b,EAAE8F,MAAMnF,EAAEub,QAAQpW,MAAM1C,IAAIzC,EAAEub,QAAQpW,OAAOnF,EAAEub,QAAQpW,MAAM1C,KAAK,UAAS,EAAG2Q,EAAE,CAACpT,EAAEjB,KAAK,IAAID,EAAE,GAAGN,EAAE+T,EAAEvS,GAAGb,GAAE,EAAGiU,EAAE,OAAO,MAAM,CAAC,YAAI9O,GAAW,OAAO9F,CAAC,EAAE,iBAAIgd,GAAgB,OAAOrc,CAAC,EAAE,qBAAAsc,GAAwBtc,GAAE,EAAGiU,GAAG,EAAE,MAAAsI,CAAO3c,GAAGD,EAAE4E,KAAK3E,GAAG,MAAM8P,EAAE,KAAKrQ,EAAE+T,EAAEvS,GAAGjB,EAAE,CAACuF,SAAS9F,EAAEmd,OAAO,OAAM,EAAG,OAAO3b,EAAE8E,iBAAiB,WAAW+J,GAAG,KAAK7O,EAAEoK,oBAAoB,WAAWyE,GAAG/P,EAAEA,EAAEjB,QAAOmC,GAAGA,IAAIjB,GAAC,CAAE,EAAE,QAAA6c,CAAS7c,GAAGoG,MAAM9F,EAAE8E,QAAQpC,GAAE,GAAI,CAAC,GAAG,GAAG,iBAAiBhD,EAAEiB,EAAEub,QAAQM,GAAG9c,OAAO,CAACM,EAAEwP,EAAE,CAAC,EAAExP,EAAE,CAACoD,IAAIiQ,KAAKC,MAAM,KAAK,IAAIxT,GAAG4C,EAAE/B,EAAEub,QAAQO,aAAazc,EAAE,KAAKN,GAAGiB,EAAEub,QAAQQ,UAAU1c,EAAE,KAAKN,EAAE,CAAC,MAAMD,GAAGkB,EAAEsE,SAASvC,EAAE,UAAU,UAAUhD,EAAE,CAAC,CAACP,EAAE+T,EAAEvS,GAAGb,GAAE,EAAG,MAAMb,EAAE,IAAIH,SAAQ6B,GAAGoT,EAAEpT,IAAG,OAAOlB,EAAEgC,SAAQd,GAAGA,EAAE,CAACsE,SAAS9F,EAAEmd,OAAO,WAAUrd,CAAC,EAAC,EAAGe,EAAE,CAACW,EAAE,OAAO,MAAMjB,EAAEiB,EAAEmB,QAAQ,KAAKrC,EAAE,CAAC8G,SAAS7G,GAAG,EAAEiB,EAAEgc,OAAO,EAAEjd,GAAGiB,EAAEgb,OAAOjc,GAAG,EAAEiB,EAAEgc,OAAOjd,GAAG,IAAI,IAAIP,EAAE,EAAE,MAAMqQ,EAAE,CAAC/P,GAAGK,EAAE,CAAC,MAAM,MAAM,CAAC,YAAImF,GAAW,OAAOuK,EAAErQ,EAAE,EAAE,gBAAAsG,CAAiB9E,EAAEjB,GAAG,EAAE,mBAAAqL,CAAoBpK,EAAEjB,GAAG,EAAEwc,QAAQ,CAAC,WAAIjK,GAAU,OAAOzC,CAAC,EAAE,SAAIoN,GAAQ,OAAOzd,CAAC,EAAE,SAAI2G,GAAQ,OAAOhG,EAAEX,EAAE,EAAE,SAAAud,CAAU/b,EAAEjB,EAAED,GAAG,MAAMyT,EAAEa,EAAE,IAAItU,EAAE6S,MAAM,KAAKnT,IAAIqQ,EAAEnL,KAAK,CAACkC,SAAS2M,EAAEyI,OAAO5H,EAAEtV,OAAO,IAAIsV,IAAIA,IAAIjU,EAAEuE,KAAK1D,EAAE,EAAE,YAAA8b,CAAa9b,EAAEjB,EAAED,GAAG,MAAMyT,EAAEa,EAAE,IAAItU,EAAE6S,MAAM,KAAK9C,EAAErQ,GAAG,CAACoH,SAAS2M,EAAEyI,OAAO5H,GAAGjU,EAAEX,GAAGwB,CAAC,EAAE,EAAA6b,CAAG7b,GAAG,MAAMjB,EAAEP,EAAEwB,EAAEjB,EAAE,GAAGA,EAAEI,EAAErB,OAAO,IAAIU,EAAEO,EAAE,GAAE,EAAGgD,IAAI,oBAAoBsC,SAASA,OAAOmF,WAAWnF,OAAOmF,SAASgB,eAAelM,EAAE8U,EAAErR,EAAEsC,OAAOhF,MAAMuc,SAASld,GAAGJ,EAAE,SAASkD,EAAExB,EAAElB,GAAG,OAAO,EAAEgD,oBAAoB,EAAE9B,EAAElB,EAAE,QAAQod,WAAWC,mBAAmBD,WAAWC,iBAAiB,CAAC,GAAGD,WAAWC,iBAAiBnc,KAAKkc,WAAWC,iBAAiBnc,GAAG,EAAE8B,oBAAoB9B,EAAElB,IAAIod,WAAWC,iBAAiBnc,IAApM,CAAyMA,EAAElB,GAAG,gBAAgBA,EAAE,CAAC,MAAM6C,EAAEH,EAAE,OAAO,CAAC4a,QAAQ,IAAIC,SAAS,MAAMtc,EAAEyB,EAAE,YAAYF,EAAE,IAAI,aAAaK,GAAGnB,EAAE,IAAI,aAAaT,GAAG,SAASwC,EAAEvC,GAAGV,KAAKgd,IAAItc,CAAC,CAAC,MAAMyB,EAAEzB,GAAGA,aAAauC,EAAErD,EAAEc,IAAI,MAAM,IAAIuC,EAAEvC,EAAC,EAAG,SAASZ,EAAEL,GAAG,MAAMwd,GAAGzd,EAAEqF,QAAQ3F,GAAE,EAAG2G,MAAM0J,EAAE2N,QAAQrd,EAAEid,QAAQ7J,GAAGxT,EAAE,aAAY,KAAKZ,QAAQC,UAAUF,MAAK,KAAK,MAAM8B,EAAE3B,EAAES,EAAEyT,GAAG7T,EAAE+d,EAAEzc,EAAEjB,GAAG,CAACoF,QAAQ3F,EAAE2G,MAAM0J,GAAE,GAAE,GAAG,IAAI,MAAMuE,EAAE/U,EAAES,EAAEyT,GAAG,OAAOpT,GAAGD,EAAEud,EAAErJ,EAAErU,IAAI,IAAI,CAAC,MAAM2d,EAAE3d,IAAI,MAAMD,EAAE0B,KAAK4b,QAAQ5d,GAAG8C,IAAiB,OAAO,gBAAgBlC,EAAEyP,EAAE,CAAC,EAAE/P,EAAE,CAACsd,QAAQ5d,GAAGO,GAAE,EAAG2d,EAAE/R,UAAU,CAACsC,KAAK,SAASsP,GAAG,SAASzR,YAAY,MAAMnK,EAAE,CAACX,EAAEjB,IAAIiB,EAAEgc,OAAO,EAAEjd,EAAEjB,UAAUiB,EAAEW,EAAE,CAACM,EAAEjB,KAAK,IAAID,EAAE+P,EAAE,MAAM1P,GAAGJ,EAAE4S,MAAM,KAAKY,EAAEoK,EAAExd,GAAGiU,EAAE,KAAKb,EAAE,GAAGlT,EAAEud,EAAE5c,GAAG,IAAI,IAAIA,EAAE,EAAEb,EAAEE,EAAEvB,OAAOkC,EAAEb,EAAEa,IAAI,CAAC,IAAIb,GAAE,EAAG,MAAM4C,EAAE1C,EAAEW,GAAG6c,MAAM,GAAG9a,EAAEzB,QAAQ,CAACuO,EAAE,CAACgO,MAAM9a,EAAEwX,OAAO,CAAC,EAAE+C,IAAIvd,GAAG,QAAQ,CAAC,MAAMT,EAAEqe,EAAE5a,EAAEkQ,MAAMvT,EAAE,CAAC,EAAE8C,EAAEuR,KAAKC,IAAIT,EAAEzU,OAAOQ,EAAER,QAAQ,IAAI6D,EAAE,EAAE,KAAKA,EAAEH,EAAEG,IAAI,CAAC,MAAM3B,EAAE1B,EAAEqD,GAAG5C,EAAEwT,EAAE5Q,GAAG,GAAGmb,EAAE9c,GAAG,CAACtB,EAAEsB,EAAEmN,MAAM,IAAI,KAAKoF,EAAEpF,MAAMxL,GAAGlE,IAAIsf,oBAAoB9O,KAAK,KAAK,KAAK,CAAC,QAAG,IAASlP,EAAE,CAACI,GAAE,EAAG,KAAK,CAAC,MAAML,EAAEke,EAAEC,KAAKjd,GAAG,GAAGlB,IAAIsU,EAAE,CAAC,MAAMpT,GAAG,IAAIkd,EAAE/b,QAAQrC,EAAE,IAAI,EAAEkB,EAAE,6BAA6BlB,EAAE,gEAAgEiD,EAAEkQ,UAAU,MAAMpD,EAAEkO,mBAAmBhe,GAAGL,EAAEI,EAAE,IAAI+P,CAAC,MAAM,GAAG7O,IAAIjB,EAAE,CAACI,GAAE,EAAG,KAAK,CAAC,CAAC,IAAIA,EAAE,CAACL,EAAE,CAAC+d,MAAM9a,EAAEwX,OAAO7a,EAAE4d,IAAI,IAAI/J,EAAEpF,MAAM,EAAExL,GAAGsM,KAAK,MAAM,KAAK,CAAC,CAAC,OAAOnP,GAAG+P,GAAG,MAAMtO,EAAE,CAACP,EAAEjB,IAAIW,EAAE,CAAC,CAACuS,KAAKjS,IAAIjB,GAAGV,EAAE,CAAC2B,EAAEjB,KAAK,GAAG4B,EAAEX,EAAE,KAAK,OAAOA,EAAE,MAAMlB,EAAEN,GAAGwB,EAAE2R,MAAM,MAAM9C,GAAG9P,EAAE4S,MAAM,KAAKxS,EAAEwd,EAAE7d,GAAGyT,EAAEoK,EAAE9N,GAAG,GAAG,KAAK1P,EAAE,GAAG,OAAOge,EAAEtO,EAAErQ,GAAG,IAAImC,EAAExB,EAAE,GAAG,KAAK,CAAC,MAAMa,EAAEuS,EAAE/J,OAAOrJ,GAAG8O,KAAK,KAAK,OAAOkP,GAAG,MAAMtO,EAAE,GAAG,KAAK7O,EAAExB,EAAE,CAAC,MAAM4U,EAAEb,EAAE/J,OAAOrJ,GAAGE,EAAE,GAAG,IAAI,IAAIW,EAAE,EAAEjB,EAAEqU,EAAEtV,OAAOkC,EAAEjB,EAAEiB,IAAI,CAAC,MAAMjB,EAAEqU,EAAEpT,GAAG,OAAOjB,EAAEM,EAAEsa,MAAM,MAAM5a,GAAGM,EAAEqE,KAAK3E,EAAE,CAAC,OAAOoe,EAAE,IAAI9d,EAAE4O,KAAK,KAAKzP,EAAC,EAAGie,EAAE,CAACzc,EAAEjB,KAAK,MAAMD,EAAEN,EAAE,IAAIwB,EAAE2R,MAAM,KAAK,IAAI9C,EAAE,IAAI8N,EAAE7d,GAAGrB,KAAIuC,IAAI,MAAMlB,EAAEke,EAAEC,KAAKjd,GAAG,OAAOlB,EAAEC,EAAED,EAAE,IAAIkB,KAAIiO,KAAK,KAAK,MAAM3J,UAAU0W,OAAO7b,EAAE,IAAI,CAAC,GAAGJ,EAAEwT,EAAEpT,EAAEwS,MAAM,KAAK,IAAI,GAAG,OAAO9C,EAAEsO,EAAEtO,EAAErQ,EAAE+T,GAAG1D,GAAGuO,EAAE,CAACpd,EAAEjB,KAAK,MAAMD,EAAEkB,GAAGqd,EAAErd,GAAG,OAAO2c,EAAE3c,GAAGnC,OAAOiB,GAAGwe,OAAOrP,KAAK,OAAO0O,EAAE5d,GAAGlB,OAAOiB,GAAGwe,OAAOrP,KAAK,IAAG,EAAG+O,EAAE,SAASK,EAAErd,GAAGgd,EAAE3P,KAAKrN,GAAG8c,EAAE9c,GAAGA,GAAG,MAAMA,EAAE,GAAGud,EAAE,CAACvd,EAAEjB,KAAI,CAAE8d,MAAM7c,EAAEwd,MAAMxd,EAAEM,QAAQ,EAAEqc,EAAE3c,EAAEiS,MAAMlU,QAAO,CAACiC,EAAEjB,KAAKiB,GAAG,EAAE,CAACA,GAAG,KAAKA,EAAT,CAAYjB,GAAGiB,GAAG,EAAEqd,EAAEte,GAAGiB,GAAG,EAAE8c,EAAE/d,GAAGiB,GAAG,EAAEA,GAAG,EAAEA,IAAG,GAAGic,MAAMld,IAAI6d,EAAE5c,GAAGA,EAAEvC,IAAI8f,GAAGD,MAAK,CAACtd,EAAEjB,IAAIiB,EAAEwd,MAAMze,EAAEye,MAAM,EAAExd,EAAEwd,MAAMze,EAAEye,OAAO,EAAExd,EAAEic,MAAMld,EAAEkd,QAAOU,EAAE3c,GAAGA,EAAEmE,QAAQ,eAAe,IAAIwN,MAAM,KAAKwL,EAAE,CAACnd,KAAKjB,IAAIiB,IAAIjB,EAAEA,EAAElB,QAAOmC,GAAGA,GAAGA,EAAElC,OAAO,MAAKiB,EAAEjB,OAAO,EAAE,IAAIiB,EAAEkP,KAAK,OAAO,IAAIiP,EAAE,CAAC,MAAM,QAAQtc,EAAE,CAACZ,EAAEjB,KAAK,MAAMD,EAAEoI,OAAO8G,KAAKhO,GAAG,OAAOlB,EAAEhB,SAASoJ,OAAO8G,KAAKjP,GAAGjB,QAAQgB,EAAE2e,OAAM3e,GAAGC,EAAEsI,eAAevI,IAAIkB,EAAElB,KAAKC,EAAED,IAAE,EAAG4e,EAAE1d,GAAGA,EAAEmE,QAAQ,eAAe,IAAItB,EAAE9D,GAAGD,IAAI,IAAIA,EAAE,OAAO,KAAK,GAAGA,EAAE0D,OAAO,YAAY1D,EAAE6D,MAAM8H,SAAS,OAAO,WAAWhN,IAAIqB,EAAE6D,MAAM8H,SAAS5H,EAAE9D,IAAI,GAAG,EAAED,EAAE6D,MAAMsP,MAAMnT,EAAE6D,MAAMrC,SAASxB,EAAE0D,OAAOka,EAAE,iIAAiI5d,EAAE0D,UAAU,KAAK1D,EAAE0D,OAAOka,GAAG5d,EAAE6D,MAAMsK,MAAMnO,EAAE6D,MAAM4Z,IAAI,mBAAmBzd,EAAE6D,MAAMsK,aAAanO,EAAE6D,MAAM4Z,qEAAqE,IAAIzd,EAAE0D,OAAOka,IAAIU,EAAEte,EAAE6D,MAAMsK,KAAKnO,EAAE6D,MAAM4Z,KAAK,mBAAmBzd,EAAE6D,MAAMsK,YAAYnO,EAAE6D,MAAM4Z,kGAAkGzd,EAAE6D,MAAMrC,QAAQ,MAAM,CAAC+C,MAAMvE,EAAEwB,SAAQ,GAAI,MAAMuO,EAAE/P,EAAE0D,OAAOka,EAAE5d,EAAE6D,MAAMsK,KAAKnO,EAAE6D,MAAMsP,KAAK9S,EAAE,MAAM0P,EAAE9P,EAAE,GAAG2e,EAAE3e,MAAM2e,EAAE7O,KAAK,MAAM,CAACxL,MAAMvE,EAAEwB,QAAQxB,EAAE6D,MAAMrC,QAAQ2R,KAAKnT,EAAE6D,MAAM8H,SAAS,GAAGiT,EAAEve,OAAOA,EAAC,EAAGwe,EAAE,CAAC,YAAY9e,EAAE,CAAC,KAAK,QAAQ,UAAU,YAAY+e,EAAE,CAAC,OAAO,IAAIC,WAAWnc,GAAG,qBAAE,IAASA,IAAIA,EAAE1B,GAAGA,GAAG,MAAMkD,EAAE,OAAOxC,EAAEgB,GAAE,CAAC3C,EAAED,KAAK,IAAIgf,SAAStf,GAAGO,EAAEwT,EAAEpT,EAAEJ,EAAE4e,GAAG,MAAMvB,QAAQhJ,GAAG9R,KAAKgD,SAASjF,GAAGmB,KAAK+b,GAAGxa,EAAEoD,MAAM7G,EAAE6F,QAAQ3C,EAAEuc,SAASpc,EAAEuB,GAAGqP,EAAExS,EAAEZ,EAAEoT,EAAE1T,GAAG0D,EAAElE,EAAE0D,EAAEqR,GAAG3R,EAAE6Z,UAAU/Y,GAAGrD,EAAEG,EAAEuG,WAAWnE,EAAErC,EAAEuB,EAAEtB,EAAEuG,SAASnE,GAAgB,OAAO,gBAAgB,IAAIoN,EAAE,CAACnM,IAAI5D,GAAGN,EAAE,eAAeU,EAAE,YAAO,GAAQa,EAAE4B,EAAE,CAACqc,UAAU9e,EAAE+e,mBAAmB7e,EAAE6b,KAAK1Y,EAAE+B,SAASjF,IAAI,CAAC4b,KAAK1Y,EAAE2b,QAAQle,IAAI,GAAGD,EAAEme,SAASne,EAAEme,QAAQle,GAAG,CAACA,IAAIA,EAAEme,kBAAkB,IAAIne,EAAEoe,UAAUpe,EAAEqe,SAASre,EAAEse,QAAQte,EAAEue,SAASve,EAAEwe,UAA3E,CAAsFxe,GAAG,CAACA,EAAEye,iBAAiB,IAAI1f,EAAEyC,EAAE,GAAG,kBAAkBA,GAAGtC,EAAE,CAAC,MAAMc,EAAEb,EAAE0P,EAAE,CAAC,EAAExP,EAAE8F,OAAOyY,GAAG7e,EAAE6B,EAAEiO,EAAE,CAAC,EAAEvQ,GAAG0B,EAAE,CAACtB,EAAE6D,EAAE,CAAC4C,MAAM7G,EAAE6F,QAAQpF,GAAG,KAAI,IAAI2B,EAAEsH,YAAY,OAAOtH,EAAEiK,UAAU,CAAC4R,GAAG,SAASzR,YAAY,MAAM9J,UAAU,YAAY,WAAAoM,IAAepN,GAAG0e,SAAS1e,GAAGV,KAAK0I,YAAY,uBAAuB,CAAC,iBAAA2W,IAAqB3e,GAAGV,KAAKsf,SAAS,CAAC,GAAGtf,KAAKqD,MAAMoR,WAAW/T,EAAE,CAAC,MAAAuK,GAAS,OAAOjL,KAAKqD,MAAM8H,QAAQ,EAAE,MAAMoU,EAAE,gBAAgB,CAACF,kBAAkB,CAAC1S,aAAQ,GAAQjI,WAAM,EAAO8a,SAAS,KAAI,IAAK,SAAS3c,GAAGsI,SAAS1L,IAAI,MAAMD,EAAEN,GAAG,aAAaqQ,EAAE,WAAW1P,EAAE,WAAU,KAAI,CAAEwf,kBAAkB9P,EAAE7K,MAAMlF,EAAEggB,SAAStgB,KAAI,CAACM,IAAiB,OAAO,gBAAgB+f,EAAE7c,SAAS,CAACqB,MAAMlE,GAAgB,gBAAgB6B,EAAE,CAACgD,MAAMlF,EAAEiV,QAAQ,CAAC/T,EAAEjB,KAAKP,EAAEwB,GAAG,MAAM6O,EAAE5C,SAAS4C,EAAE5C,QAAQjM,EAAEjB,EAAC,GAAIA,GAAG,CAACoD,EAAE6F,YAAY,+BAA+B,MAAMvH,EAAE,SAAS1B,GAAG,IAAID,EAAEN,EAAE,SAASW,EAAEL,GAAgB,OAAO,gBAAgBqD,EAAE,KAAkB,gBAAgBpD,EAAE8P,EAAE,CAACpM,IAAI,oBAAoB3D,IAAI,CAAC,OAAOK,EAAE6I,YAAY,qBAAqB,OAAOlJ,EAAE,OAAON,EAAEO,EAAEiJ,aAAaxJ,EAAEO,EAAEqB,MAAMtB,EAAE,eAAeK,CAAC,CAAnP,EAAqP,EAAEoc,QAAQxc,EAAET,EAAEmM,SAAS3L,MAAM,MAAMwF,SAAS9F,GAAGO,GAAG8P,EAAE1P,GAAG,WAAW,CAACmF,SAAS9F,KAAK+T,GAAG,WAAY,MAAMzT,EAAE,aAAa+f,GAAG/f,EAAE6f,kBAAkB1S,aAAQ,EAAO,MAAMzN,EAAE,eAAc,KAAKM,EAAEggB,cAAS,EAAM,GAAG,IAAI,MAAM,CAAChgB,EAAEkF,MAAMxF,EAAE,CAA3I,GAA+I,GAAG,aAAY,KAAKO,EAAE0c,uBAAsB,GAAG,CAAC5M,EAAEvK,WAAW,aAAY,KAAK,IAAItE,GAAE,EAAG,MAAMlB,EAAEC,EAAE2c,QAAO,EAAEpX,SAASvF,MAAMZ,QAAQC,UAAUF,MAAK,KAAK4K,uBAAsB,KAAK9I,GAAGb,EAAE,CAACmF,SAASvF,GAAE,GAAE,GAAE,IAAI,MAAM,KAAKiB,GAAE,EAAGlB,GAAE,CAAC,GAAG,IAAIyT,EAAE,CAAC,IAAI9Q,EAAE8Q,GAAG,MAAMA,EAAE7T,EAAE6T,EAAE+J,IAAI,CAACnY,SAAQ,GAAI,CAAc,OAAO,gBAAgBpE,EAAEiC,SAAS,CAACqB,MAAMwL,GAAG,mBAAmB/P,EAAEA,EAAE+P,GAAG/P,GAAG,KAAI,IAAIoC,EAAE,EAAEuJ,SAAS1L,MAAM,MAAMD,EAAE0B,IAAI,OAAO1B,EAAEC,EAAED,GAAgB,gBAAgB2B,EAAE,KAAK1B,EAAC,EAAG8C,EAAE,EAAEkd,IAAIhgB,EAAE0L,SAAS3L,MAAM,MAAMN,EAAEO,EAAEoC,QAAQ,KAAK,IAAI0N,EAAE1P,EAAE,GAAG,OAAOX,GAAG,GAAGqQ,EAAE9P,EAAEsC,UAAU,EAAE7C,GAAGW,EAAEJ,EAAEsC,UAAU7C,IAAIqQ,EAAE9P,EAAe,gBAAgBgB,EAAEiC,SAAS,CAACqB,MAAM,CAACiB,SAAS,CAACsB,SAASiJ,EAAEmM,OAAO7b,EAAEmK,KAAK,MAAMxK,EAAC,EAAGkgB,GAAE,EAAE/M,KAAKjS,EAAEyK,SAAS1L,MAAM,MAAMqd,QAAQtd,GAAGwC,KAAKgD,SAAS9F,GAAGgC,IAAIrB,EAAEd,EAAE2B,EAAElB,GAAGyT,EAAEhS,EAAEpB,EAAEX,EAAEoH,UAAU,OAAO7G,EAAE,CAACuF,SAAS9F,EAAEygB,MAAM1M,EAAE1D,EAAE,CAAC,EAAE0D,EAAEgH,OAAO,CAAC+C,IAAI/J,EAAE+J,IAAIrK,KAAKjS,IAAI,MAAK,EAAGkf,GAAE,CAAC,MAAM,WAAW,aAAaC,GAAE,CAAC,WAAW,QAAQ,YAAY,MAAM,YAAYC,GAAGrgB,IAAI,IAAIud,IAAIxd,EAAEwF,SAAS9F,EAAE0R,UAAUqC,GAAGxT,EAAEqU,EAAEjU,EAAEJ,EAAEmgB,IAAgB,OAAO,gBAAgBG,GAAGxQ,EAAE,CAAC,EAAEuE,EAAE,CAAClD,UAAUqC,EAAE+J,IAAIxd,EAAEwF,SAAS9F,IAAG,EAAG,IAAI8gB,GAAG,EAAE,MAAMD,GAAGtgB,IAAI,IAAI0L,SAAS3L,EAAEyX,MAAM/X,EAAE0R,UAAUqC,EAAE,MAAM+J,IAAIlJ,EAAE9O,SAASjF,GAAGN,EAAEgD,EAAE5C,EAAEJ,EAAEogB,IAAG,MAAM7gB,EAAE,WAAWI,EAAE,UAAS,GAAI8C,EAAE,SAAS4R,GAAGzR,EAAE,SAAStC,EAAEuG,UAAU7F,EAAE,UAAS,GAAI,aAAY,KAAKuf,KAAKhe,IAAI,KAAKge,KAAK,IAAIA,KAAK5gB,EAAEuN,SAAQ,EAAE,IAAI,IAAI,aAAY,KAAK,IAAIjM,GAAE,EAAGjB,GAAE,EAAGqU,IAAI5R,EAAEyK,UAAUzK,EAAEyK,QAAQmH,EAAEpT,GAAE,GAAIX,EAAEuG,WAAWjE,EAAEsK,UAAUtK,EAAEsK,QAAQ5M,EAAEuG,SAAS7G,GAAE,GAAIgB,EAAEkM,QAAQjM,GAAGjB,GAAGM,EAAEuG,WAAWwN,EAAErT,EAAEkM,SAAS3K,GAAE,GAAG,CAAC8R,EAAE/T,IAAI,MAAMiC,EAAE,eAAc,KAAK,IAAItB,EAAkCtB,EAAEuN,QAAQvN,EAAEuN,SAAQ,GAAIjM,EAAE1B,EAAE2N,QAAQlM,EAAEkM,SAASjM,GAAGA,EAAEuf,QAAQ,GAAG,IAAiB,OAAO,gBAAgBhN,EAAE1D,EAAE,CAAC0H,MAAM1H,EAAE,CAAC2Q,QAAQ,QAAQhhB,GAAGihB,SAAS,KAAK/c,IAAIpE,GAAGyD,GAAGjD,EAAC,EAAG4gB,GAAG,CAAC,WAAW,UAAU,WAAW,WAAW,UAAU,aAAaC,GAAG5gB,IAAI,MAAMD,EAAEwC,IAAI9C,EAAEgC,IAAiB,OAAO,gBAAgBof,GAAG/Q,EAAE,CAAC,EAAE/P,EAAEN,EAAEO,GAAE,EAAG,SAAS6gB,GAAG7gB,GAAG,MAAMuF,SAASxF,EAAE+gB,QAAQrhB,GAAE,EAAGiM,SAAS8H,EAAE8J,SAASjJ,EAAElD,UAAU7Q,EAAE,OAAON,EAAEgD,EAAE5C,EAAEJ,EAAE2gB,IAAIphB,EAAE,WAAWwhB,QAAQvN,GAAGxU,QAAO,CAACiC,EAAEjB,KAAK,MAAMD,EAAE+D,EAAEuQ,EAAFvQ,CAAK9D,GAAG,OAAOiB,EAAEwI,OAAO1J,EAAC,GAAG,KAAK8G,SAASlH,GAAGI,EAAE0C,EAAE9B,EAAEpB,EAAEI,GAAG,GAAG8C,EAAE,CAAC,MAAM+X,OAAOxa,EAAEud,IAAInd,EAAE0d,MAAMtK,EAAEsK,OAAOxZ,MAAM/E,IAAIkD,EAAE9C,EAAE6T,EAAEjS,QAAQ8S,EAAEb,EAAEN,KAAK9N,QAAQ,MAAM,IAAIpE,EAAE8O,EAAE,CAAC,EAAE9P,EAAE,CAACud,IAAInd,EAAEmF,SAASxF,IAAIwC,EAAE,eAAehD,EAAEyB,EAAEzB,EAAEqE,MAAM8H,SAAsB,gBAAgBkV,GAAG,CAACrb,SAASxF,EAAE+gB,QAAQrhB,GAAGF,EAAEqE,MAAM8H,eAAU,GAAQjK,EAAEhC,EAAE4gB,GAAG/f,EAAEkD,EAAE/D,EAAEqQ,EAAE,CAACyN,IAAInd,EAAEmF,SAASxF,EAAEoR,UAAU7Q,GAAG0C,GAAGA,EAAe,OAAO,gBAAgBJ,EAAEK,SAAS,CAACqB,MAAM,CAAC+Y,QAAQjd,EAAEkd,SAAS3d,IAAiB,gBAAgB8B,EAAE+B,EAAEjB,GAAG,CAAC,OAAO,IAAI,CAAC,MAAMye,GAAG,KAAK,MAAM/f,EAAEQ,IAAI,IAAIR,EAAE,MAAM,IAAIiB,MAAM,8JAA8J,OAAOjB,EAAEsE,UAAU0b,GAAG,KAAK,MAAM,IAAI/e,MAAM,wEAAuE,EAAGgf,GAAG,KAAK,MAAMjgB,EAAEsB,IAAI,IAAItB,EAAE,MAAM,IAAIiB,MAAM,4JAA4J,MAAMlC,EAAEghB,KAAKjhB,EAAEyB,EAAEP,EAAEqc,SAAStd,EAAE6G,UAAU,OAAO9G,EAAEA,EAAEya,OAAO,MAAM2G,GAAGlgB,IAAI,IAAIA,EAAE,MAAM,IAAIiB,MAAM,4EAA4E,MAAMlC,EAAEuC,IAAI,IAAIvC,EAAE,MAAM,IAAIkC,MAAM,2JAA2J,MAAMnC,EAAEihB,KAAKvhB,EAAEH,EAAE2B,EAAEjB,EAAEqd,SAASjd,EAAEoB,EAAE/B,EAAEM,EAAE8G,UAAU,OAAOzG,EAAE0P,EAAE,CAAC,EAAE1P,EAAEoa,OAAO,CAAC+C,IAAInd,EAAEmd,IAAIrK,KAAKjS,IAAI,yECIxrV,MAAMmgB,EAAc,IAAI1hB,IAClB2hB,EAAwB,IAAI3hB,IAU3B,SAAS4hB,EAAwBza,GACtC,IAAI0a,EAAWH,EAAYlgB,IAAI2F,GAI/B,OAHK0a,IACHA,EAAWF,EAAsBngB,IAAI2F,EAASoQ,gBAEzCsK,CACT,IAdUxf,SAAQwf,IACZA,EAASC,WACXH,EAAsBrf,IAAIuf,EAASE,SAAUF,GAE7CH,EAAYpf,IAAIuf,EAASE,SAAUF,EACrC,6ICVK,MAAMG,EAAsB,CACjCtgB,GAAI,mBACJoW,MAAO,CACLtN,SAAU,WACVyX,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,SAAU,SACVC,KAAM,mBACNC,WAAY,SACZC,OAAQ,GAEV,YAAa,YACb,cAAe,sBCHjB,SAASC,EAActb,GACrB,MAAM0a,GAAWD,EAAAA,EAAAA,GAAwBza,IACnC,KAAE0D,EAAI,OAAE0R,GAAW3W,OAAOC,SAEhC,OAAgB,MAAZgc,IACFjc,OAAO8c,WAAWb,EAASc,OAASpG,EAAS1R,IACtC,EAIX,CAGA,IAAI+X,EAAY,GAEhBhd,OAAOS,iBAAiB,sBAAsBoP,IACxC,6BAA6B7G,KAAK6G,EAAMoN,SACtCD,IACFhd,OAAOC,SAASsB,SAAWyb,EAE/B,IAGF,MAAME,EAAmBA,CAACjd,EAAUkd,KAC7BN,EAAc5c,EAASsB,YAC1Byb,EAAY/c,EAASsB,UACrBb,EAAAA,EAAAA,GAAU,mBAAoB,CAAET,WAAUkd,iBAC5C,EAGIC,EAAgBA,CAACnd,EAAUkd,KAC1BN,EAAc5c,EAASsB,YAC1Bb,EAAAA,EAAAA,GAAU,gBAAiB,CAAET,WAAUkd,gBAOzC,EAGI5F,EAAW,SAACW,EAAI3e,GAIpB,QAJ2B,IAAPA,IAAAA,EAAU,CAAC,GAIb,iBAAP2e,EAET,YADAmF,EAAAA,cAAc9F,SAASW,GAIzB,MAAM,SAAE3W,EAAQ,OAAEoV,EAAM,KAAE1R,IAASqY,EAAAA,EAAAA,IAAUpF,GACvC+D,GAAWD,EAAAA,EAAAA,GAAwBza,GAUzC,GANI0a,IACF/D,EAAK+D,EAASc,OAASpG,EAAS1R,GAK9BjF,OAAOgB,aAET,YADAhB,OAAOC,SAAWsB,EAAWoV,EAAS1R,GAMxC,MAAMsY,EAAYhP,YAAW,KAC3BiP,EAAAA,EAAQC,KAAK,6BAA8B,CAAElc,cAC7Cb,EAAAA,EAAAA,GAAU,uBAAwB,CAChCT,SAAUD,OAAOC,UACjB,GACD,KAEHqB,EAAAA,GAAO1I,SAAS2I,EAAWoV,GAAQ9c,MAAKwH,IAOtC,IAAKA,GAAiBA,EAAcqc,SAAWC,EAAAA,GAAmB/gB,MAIhE,OAHAoD,OAAOkX,QAAQO,aAAa,CAAC,EAAG,GAAIxX,SAAS2W,MAC7C5W,OAAOC,SAAWsB,OAClBqc,aAAaL,GAM8Blc,GAEzCA,EAAc8U,KAAK0H,yBACnB7d,OAAO8d,4BAIL,kBAAmBzd,WACoB,OAAvCA,UAAUC,cAAcS,YACqB,cAA7CV,UAAUC,cAAcS,WAAWD,OAEnCT,UAAUC,cAAcS,WAAWgd,YAAY,CAC7CC,UAAW,uBAIfhe,OAAOC,SAAWsB,EAAWoV,EAAS1R,IAG1CgZ,EAAAA,EAAAA,UAAc/F,EAAI3e,GAClBqkB,aAAaL,EAAU,GAE3B,EAEA,SAASzY,EAAmBQ,EAAelE,GAAiB,IAAf,SAAEnB,GAAUmB,EACvD,MAAM,SAAEG,EAAQ,KAAE0D,GAAShF,EACrB9G,GAAUuH,EAAAA,EAAAA,GAAU,qBAAsB,CAC9C4E,kBAEA/D,WACAgE,YAAa,CAAEtF,YACfie,uBAAwBllB,GAAQ,CAC9B,EAGAiC,KAAKmJ,cAAcrF,KAAK/F,EAAMA,EAAKoF,QAGvC,GAAIjF,EAAQM,OAAS,EAGnB,OAAON,EAAQA,EAAQM,OAAS,GAGlC,GAAI6L,EAAiB,CACnB,MACErF,UAAYsB,SAAU4c,IACpB7Y,EACJ,GAAI6Y,IAAgB5c,EAGlB,OAAO0D,EAAOY,UAAUZ,EAAK6D,MAAM,IAAM,CAAC,EAAG,EAEjD,CACA,OAAO,CACT,CAYC,IAEKsV,EAAc,SAAAxa,GAClB,SAAAwa,EAAY9f,GAAQ,IAADuF,EAEuB,OADxCA,EAAAD,EAAAX,KAAA,KAAM3E,IAAM,MACP+f,gBAAkB7c,EAAAA,YAAiBqC,CAC1C,EAAC6J,EAAAA,EAAAA,GAAA0Q,EAAAxa,GAAA,IAAA4B,EAAA4Y,EAAAhf,UAwBA,OAxBAoG,EAEDQ,mBAAA,SAAmBnB,EAAWyZ,GAC5B7Z,uBAAsB,KACpB,IAAI8Z,EAAW,eAAetjB,KAAKqD,MAAM2B,SAASsB,WAC9C4D,SAASqZ,QACXD,EAAWpZ,SAASqZ,OAEtB,MAAMC,EAAetZ,SAASuO,iBAAiB,4BAC3C+K,GAAgBA,EAAahlB,SAC/B8kB,EAAWE,EAAa,GAAGzO,aAE7B,MAAM0O,EAAkB,gBAAgBH,IACxC,GAAItjB,KAAKojB,gBAAgBzW,QAAS,CACR3M,KAAKojB,gBAAgBzW,QAAQ+W,YAC7BD,IACtBzjB,KAAKojB,gBAAgBzW,QAAQ+W,UAAYD,EAE7C,IAEJ,EAAClZ,EAEDU,OAAA,WACE,OAAO1E,EAAAA,cAAA,MAAAqB,OAAAiJ,OAAA,GAASsQ,EAAmB,CAAE/d,IAAKpD,KAAKojB,kBACjD,EAACD,CAAA,CA5BiB,CAAS5c,EAAAA,WA+B7B,MAAMod,EAAuBA,CAACzB,EAAc0B,KAAkB,IAADC,EAAAC,EAC3D,OAAI5B,EAAavG,OAASiI,EAAajI,OAInCuG,SAAmB,QAAP2B,EAAZ3B,EAAcrc,aAAK,IAAAge,OAAP,EAAZA,EAAqB1gB,QAAQygB,SAAmB,QAAPE,EAAZF,EAAc/d,aAAK,IAAAie,OAAP,EAAZA,EAAqB3gB,IAI1C,EAGd,IACM4gB,EAAY,SAAAC,GAChB,SAAAD,EAAY1gB,GAAQ,IAAD4gB,EAEqB,OADtCA,EAAAD,EAAAhc,KAAA,KAAM3E,IAAM,KACZ4e,EAAiB5e,EAAM2B,SAAU,MAAKif,CACxC,EAACxR,EAAAA,EAAAA,GAAAsR,EAAAC,GAAA,IAAAE,EAAAH,EAAA5f,UA2BA,OA3BA+f,EAEDzZ,kBAAA,WACE0X,EAAcniB,KAAKqD,MAAM2B,SAAU,KACrC,EAACkf,EAEDC,sBAAA,SAAsBd,GACpB,QAAIM,EAAqB3jB,KAAKqD,MAAM2B,SAAUqe,EAAUre,YACtDid,EAAiBoB,EAAUre,SAAUhF,KAAKqD,MAAM2B,WACzC,EAGX,EAACkf,EAEDnZ,mBAAA,SAAmBnB,GACb+Z,EAAqB/Z,EAAU5E,SAAUhF,KAAKqD,MAAM2B,WACtDmd,EAAcniB,KAAKqD,MAAM2B,SAAU4E,EAAU5E,SAEjD,EAACkf,EAEDjZ,OAAA,WACE,OACE1E,EAAAA,cAACA,EAAAA,SAAc,KACZvG,KAAKqD,MAAM8H,SACZ5E,EAAAA,cAAC4c,EAAc,CAACne,SAAUA,WAGhC,EAAC+e,CAAA,CA/Be,CAASxd,EAAAA,mCCxN3B,SAAS6d,EAAevkB,EAAGC,GACzB,IAAK,IAAIgU,KAAKjU,EACZ,KAAMiU,KAAKhU,GAAI,OAAO,EACvB,IAAK,IAAIukB,KAAMvkB,EACd,GAAID,EAAEwkB,KAAQvkB,EAAEukB,GAAK,OAAO,EAC7B,OAAO,CACV,CC8GA,MAlHqB,SAAA1b,GACnB,SAAA2b,EAAYjhB,GAAQ,IAADuF,EACjBA,EAAAD,EAAAX,KAAA,OAAO,KACP,MAAM,SAAEhD,EAAQ,cAAEoB,GAAkB/C,EAQnC,OAPDuF,EAAK/C,MAAQ,CACXb,SAAU,IAAKA,GACfoB,cACEA,GACAC,EAAAA,GAAOzI,aAAaoH,EAASsB,SAAWtB,EAAS0W,OAAQ,CACvD6I,kBAAkB,KAEvB3b,CACH,EAAC6J,EAAAA,EAAAA,GAAA6R,EAAA3b,GAAA2b,EAEME,yBAAP,SAA+Bre,EAAese,GAAY,IAA1B,SAAEzf,GAAUmB,EAC1C,GAAIse,EAAUzf,SAAS2W,OAAS3W,EAAS2W,KAAM,CAQ7C,MAAO,CACLvV,cARoBC,EAAAA,GAAOzI,aAC3BoH,EAASsB,SAAWtB,EAAS0W,OAC7B,CACE6I,kBAAkB,IAMpBvf,SAAU,IAAKA,GAEnB,CAEA,MAAO,CACLA,SAAU,IAAKA,GAEnB,EAAC,IAAAuF,EAAA+Z,EAAAngB,UA+EA,OA/EAoG,EAEDma,cAAA,SAAcC,GACZte,EAAAA,GAAO1I,SAASgnB,GAAS/lB,MAAKwH,IACxBA,GAAiBA,EAAcqc,SAAWC,EAAAA,GAAmB/gB,MAC/D3B,KAAKsf,SAAS,CACZta,SAAU,IAAKD,OAAOC,UACtBoB,mBAGFrB,OAAOkX,QAAQO,aAAa,CAAC,EAAG,GAAIxX,SAAS2W,MAC7C5W,OAAOC,SAAW2f,EACpB,GAEJ,EAACpa,EAED4Z,sBAAA,SAAsBd,EAAWuB,GAE/B,OAAKA,EAAUxe,cAkBXpG,KAAK6F,MAAMO,gBAAkBwe,EAAUxe,gBAIzCpG,KAAK6F,MAAMO,cAAcwK,YAAcgU,EAAUxe,cAAcwK,YAK7D5Q,KAAK6F,MAAMO,cAAcK,OAASme,EAAUxe,cAAcK,SAM5DzG,KAAK6F,MAAMb,SAAS7B,MAAQyhB,EAAU5f,SAAS7B,MAC/CyhB,EAAUxe,cAAc8U,OACvB0J,EAAUxe,cAAc8U,KAAK2J,YAC5BD,EAAUxe,cAAc8U,KAAKvI,ODhFrC,SAA0BmS,EAAUzB,EAAWuB,GAC7C,OAAOR,EAAeU,EAASzhB,MAAOggB,IAAce,EAAeU,EAASjf,MAAO+e,EACpF,CCkFUG,CAAe/kB,KAAMqjB,EAAWuB,OAvCrC5kB,KAAK0kB,cACHrB,EAAUre,SAASsB,SAAW+c,EAAUre,SAAS0W,SAE5C,EAqCX,EAACnR,EAEDU,OAAA,WAiBE,OAAOjL,KAAKqD,MAAM8H,SAASnL,KAAK6F,MAClC,EAACye,CAAA,CA/GkB,CAAS/d,EAAAA,+BC6B9B,MAAMF,EAAS,IAAI2e,EAAAA,GAAWC,KAA2BlgB,OAAOmgB,WAChEC,EAAAA,EAAAA,IAAU9e,GACVA,EAAO+e,aAAa3f,EAAAA,GAEpB,MAAM,OAAEwF,EAAM,QAAEoa,IAAYvL,EAAAA,EAAAA,KAE5B/U,OAAOkgB,cAAgBA,EACvBlgB,OAAOugB,WAAa/C,EAAAA,EACpBxd,OAAOwgB,UAAYC,EAAAA,GH4HjBpD,EAAAA,cAAchG,QAAOre,IACnBA,EAAKiH,SAASqX,OAASte,EAAKse,MAAM,IAGpCtX,OAAO0gB,QAAUxI,GAAMX,EAASW,EAAI,CAAEpY,SAAS,IAC/CE,OAAO8c,WAAa5E,GAAMX,EAASW,EAAI,CAAEpY,SAAS,IAClDE,OAAO2gB,YAAc,CAACzI,EAAI3e,IAAYge,EAASW,EAAI3e,GG9HrD,MAAMqnB,EAAmB,wCAEzBC,EAAAA,EAAAA,GAAe,iBAAiBhnB,MAAK,MAG/B6G,EAAAA,EAAAA,GAAU,yBAAyBlH,OAAOyQ,SAASxQ,OAAS,GAC9Df,EAAQ,KAWV,MAAMooB,EAAexiB,GACnBkD,EAAAA,cAACuf,EAAAA,YAAYpjB,SAAQ,CACnBqB,MAAO,CACL+Y,QAAS,IACTC,SAAU,MAGZxW,EAAAA,cAACsU,EAAAA,EAAiBxX,IAIhB0iB,EAAcxf,EAAAA,cAAoB,CAAC,GAEnC6K,EAAgB,CACpBI,kBAAmB,WACpB,IAEKwU,EAAU,SAAArd,GAAA,SAAAqd,IAAA,OAAArd,EAAAM,MAAA,KAAAH,YAAA,KAiCb,OAjCa2J,EAAAA,EAAAA,GAAAuT,EAAArd,GAAAqd,EAAA7hB,UACd8G,OAAA,WACE,MAAM,SAAEE,GAAanL,KAAKqD,MAC1B,OACEkD,EAAAA,cAAC0f,EAAAA,SAAQ,MACN9f,IAAA,IAAC,SAAEnB,GAAUmB,EAAA,OACZI,EAAAA,cAAC+d,EAAe,CAACtf,SAAUA,IACxBkT,IAAkC,IAAjC,cAAE9R,EAAa,SAAEpB,GAAUkT,EAC3B,MAAMwB,GAAqBwM,EAAAA,EAAAA,MACrBC,GAAeC,EAAAA,EAAAA,MAErB,OACE7f,EAAAA,cAAC+T,EAAAA,EAAmB5X,SAAQ,CAACqB,MAAO2V,GAClCnT,EAAAA,cAACI,EAAAA,GAAcjE,SAAQ,CAACqB,MAAOqN,GAC7B7K,EAAAA,cAACG,EAAAA,GAAqBhE,SAAQ,CAACqB,MAAOoiB,GACpC5f,EAAAA,cAACK,EAAAA,GAAiBlE,SAAQ,CACxBqB,MAAOqC,EAAc8U,KAAK/K,WAE1B5J,EAAAA,cAACwf,EAAYrjB,SAAQ,CACnBqB,MAAO,CAAEqC,gBAAepB,aAEvBmG,MAKmB,GAGlB,GAI1B,EAAC6a,CAAA,CAjCa,CAASzf,EAAAA,WAoCnB8f,EAAe,SAAArC,GAAA,SAAAqC,IAAA,OAAArC,EAAA/a,MAAA,KAAAH,YAAA,KAsClB,OAtCkB2J,EAAAA,EAAAA,GAAA4T,EAAArC,GAAAqC,EAAAliB,UACnB8G,OAAA,WACE,OACE1E,EAAAA,cAACwf,EAAYO,SAAQ,MAClBhO,IAAA,IAAC,cAAElS,EAAa,SAAEpB,GAAUsT,EAAA,OAC3B/R,EAAAA,cAACwd,EAAY,CAAC/e,SAAUA,GACtBuB,EAAAA,cAACW,EAAAA,GAAa,CACZlC,SAAUA,EACV6E,mBAAoBA,GAEpBtD,EAAAA,cAACggB,EAAAA,OAAM,CACLxJ,SAAUyJ,GACVxhB,SAAUA,EACVnE,GAAG,wBAEH0F,EAAAA,cAACsf,EAAYje,OAAAiJ,OAAA,CACX8B,KAC8B,cAA5BvM,EAAc8U,KAAKvI,MACS,cAA5BvM,EAAc8U,KAAKvI,MACf8T,EAAAA,EAAAA,GAAYzhB,EAASsB,SAAUkgB,IAC/BxK,WAEI5V,EAAc8U,KAAK2J,WACnBze,EAAc8U,KAAKvI,MACnBN,MAAM,KAAK,KAGjBrS,KAAKqD,MAAK,CACd2B,SAAUA,EACVoB,cAAeA,GACXA,EAAcK,SAIX,GAIvB,EAAC4f,CAAA,CAtCkB,CAAS9f,EAAAA,WAyC9B,MAAM,SAAEmgB,EAAU1hB,SAAU2hB,GAAe5hB,OAYzC2hB,GACAF,GAAgBE,IACdC,EAAWrgB,UAAYogB,EAAShP,SAAS,KAAOiP,EAAWjL,OAAS,OAEpErV,EAAOugB,eAAcH,EAAAA,EAAAA,GAAYE,EAAWrgB,SAAUkgB,MACtDE,EAAS/G,MAAM,6BACf+G,EAAS/G,MAAM,+CAGjBrD,EAAAA,EAAAA,UACEkK,GACEE,GACEA,EAAShP,SAAS,KAA2B,GAApBiP,EAAWjL,QACtCiL,EAAW3c,KACb,CACEnF,SAAS,IAMf,MAAMgiB,EAAoBA,KACxB,IACE,OAAO5Z,cACT,CAAE,MACA,OAAO,IACT,GAGFuY,EAAAA,GAAa7nB,SAASgpB,EAAWrgB,SAAWqgB,EAAWjL,QAAQ9c,MAAKsc,IAAS,IAAD4L,EAC1E,MAAM7Z,EAAiB4Z,IAEvB,GACE3L,SAAU,QAAN4L,EAAJ5L,EAAMA,YAAI,IAAA4L,GAAVA,EAAYlE,wBACZ1H,EAAKA,KAAK0H,yBAA2B7d,OAAO8d,4BAI1C,kBAAmBzd,WACoB,OAAvCA,UAAUC,cAAcS,YACqB,cAA7CV,UAAUC,cAAcS,WAAWD,OAEnCT,UAAUC,cAAcS,WAAWgd,YAAY,CAC7CC,UAAW,uBAUX9V,GAAgB,CAGlB,KAFgE,MAA7CA,EAAeC,QAAQyY,IAKxC,OAFA1Y,EAAeI,QAAQsY,EAAkB,UACzC5gB,OAAOC,SAASiB,QAAO,EAG3B,CAOF,GAJIgH,GACFA,EAAe8Z,WAAWpB,IAGvBzK,GAAQA,EAAKuH,SAAWC,EAAAA,GAAmB/gB,MAAO,CACrD,MAAMgB,EAAU,sBAAsBgkB,EAAWrgB,0CAIjD,GAAI4U,GAAQA,EAAKxW,MAEf,MADAS,QAAQT,MAAM/B,GACRuY,EAAKxW,MAGb,MAAM,IAAI/C,MAAMgB,EAClB,CAEA,MAAMqkB,GAAWvhB,EAAAA,EAAAA,GACf,kBACA,CAAE8F,QAAShF,EAAAA,cAAC8f,EAAe,OAC3B9f,EAAAA,cAAC8f,EAAe,OAChBY,IAAiB,IAAhB,OAAE5oB,GAAQ4oB,EACT,MAAO,CAAE1b,QAASlN,EAAQ,IAE5Bgc,MAEI6M,EAAM,WACV,MAAMC,EAAsB5gB,EAAAA,QAAa,GAazC,OAXAA,EAAAA,WAAgB,KACT4gB,EAAoBxa,UACvBwa,EAAoBxa,SAAU,EAC1Bya,YAAYC,MACdD,YAAYC,KAAK,0BAGnB5hB,EAAAA,EAAAA,GAAU,yBACZ,GACC,IAEIc,EAAAA,cAACyf,EAAU,KAAEgB,EACtB,EAEMM,EAAUpd,SAASC,eAAe,wBAIxC,IAAIod,EAAkBtc,EAClBqc,GAAWA,EAAQnc,SAAS3M,SAC9B+oB,EAAkBlC,GAGpB,MAAMmC,GAAW/hB,EAAAA,EAAAA,GACf,8BACAd,EACA4iB,GACA,GAEF,SAASE,IACP,MAAMC,EACc,oBAAX3iB,OACHmF,SAASC,eAAe,aACxB,KAENqd,EAASjhB,EAAAA,cAAC2gB,EAAG,MAAKQ,EACpB,CAIA,MAAMC,EAAMzd,SACZ,GACqB,aAAnByd,EAAIC,YACgB,YAAnBD,EAAIC,aAA6BD,EAAIE,gBAAgBC,SAEtDxU,YAAW,WACTmU,GACF,GAAG,OACE,CACL,MAAMM,EAAU,WACdJ,EAAI7c,oBAAoB,mBAAoBid,GAAS,GACrDhjB,OAAO+F,oBAAoB,OAAQid,GAAS,GAE5CN,GACF,EAEAE,EAAIniB,iBAAiB,mBAAoBuiB,GAAS,GAClDhjB,OAAOS,iBAAiB,OAAQuiB,GAAS,EAC3C,CAEM,GACN,0PClUJ,MAyDMC,EAzDU,SAAUC,GACxB,GAAwB,oBAAb/d,SACT,OAAO,EAET,MAAMge,EAAWhe,SAASgB,cAAc,QACxC,IACE,GAAIgd,EAASC,SAAgD,mBAA9BD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,EAErC,CAAE,MAAOI,GACP,OAAO,CACT,CACA,OAAO,CACT,CA4CkCC,CAAQ,YA1Cb,SAAU7I,EAAKnhB,GAC1C,OAAO,IAAIO,SAAQ,CAACC,EAASypB,KAC3B,GAAwB,oBAAbre,SAET,YADAqe,IAIF,MAAMC,EAAOte,SAASgB,cAAc,QACpCsd,EAAK1T,aAAa,MAAO,YACzB0T,EAAK1T,aAAa,OAAQ2K,GAE1B7X,OAAO8G,KAAKpQ,GAASkD,SAAQ2B,IAC3BqlB,EAAK1T,aAAa3R,EAAK7E,EAAQ6E,GAAK,IAGtCqlB,EAAKC,OAAS3pB,EACd0pB,EAAKE,QAAUH,GAGbre,SAASye,qBAAqB,QAAQ,IACtCze,SAAS0e,kBAAkB,UAAU,GAAGtR,YAC5BpC,YAAYsT,EAAK,GAEnC,EAE4B,SAAU/I,GACpC,OAAO,IAAI5gB,SAAQ,CAACC,EAASypB,KAC3B,MAAMM,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOtJ,GAAK,GAErBoJ,EAAIJ,OAAS,KACQ,MAAfI,EAAIpG,OACN3jB,IAEAypB,GACF,EAGFM,EAAIG,KAAK,KAAK,GAElB,EAMMC,EAAa,CAAC,EAkBpB,MAhBiB,SAAUxJ,EAAKnhB,GAC9B,OAAO,IAAIO,SAAQC,IACbmqB,EAAWxJ,GACb3gB,IAIFkpB,EAA0BvI,EAAKnhB,GAC5BM,MAAK,KACJE,IACAmqB,EAAWxJ,IAAO,CAAI,IAEvBvZ,OAAM,QAAS,GAEtB,sBCrEO,MAAMwc,EAAqB,CAIhC/gB,MAAO,QAIPunB,QAAS,WAWLC,EAAoBxE,IACxB,MAAOhS,EAAMyW,GAAezE,EAAQtS,MAAM,KAPZY,MAS9B,MAAO,cADoB,MAATN,EAAe,SAPjCM,EAAa,OADiBA,EAQqCN,GAP7D,GAAaM,EAAEpF,MAAM,GAAKoF,GAC1BsI,SAAS,KAAOtI,EAAEpF,MAAM,GAAI,GAAKoF,mBAQrCmW,EAAc,IAAIA,IAAgB,IAClC,EAOEC,EAAmB1E,GAAWA,EAAQlW,WAAW,MAEvD,SAAS6a,EAAQ7J,EAAK8J,GACpB,YAD0B,IAANA,IAAAA,EAAS,OACtB,IAAI1qB,SAAQC,IACjB,MAAM+pB,EAAM,IAAIC,eAChBD,EAAIE,KAAKQ,EAAQ9J,GAAK,GACtBoJ,EAAIW,mBAAqB,KACD,GAAlBX,EAAIjB,YACN9oB,EAAQ+pB,EACV,EAEFA,EAAIG,KAAK,KAAK,GAElB,CAEA,MAgBMS,EAAY,+BAEZC,EAAkB,SAACxE,EAAUtU,EAAkB+H,GAAU,IAADgR,OAAlB,IAAT/Y,IAAAA,EAAY,MAC7C,MAAMsK,EAAO,CACX0O,mBAAoB1E,EAAS0E,mBAC7BjX,KAAMuS,EAASvS,KACfiQ,uBAAwBsC,EAAStC,uBACjCiC,UAAWK,EAASL,UACpBgF,kBAAmB3E,EAAS2E,kBAC5BC,mBAAoB5E,EAAS4E,mBAC7B3Z,UAA6B,QAApBwZ,EAAEzE,EAAS/U,iBAAS,IAAAwZ,EAAAA,EAAI,CAAC,GAGpC,MAAO,CACL/Y,YACA+H,OACAlS,KAAMye,EAAS7mB,OACf6c,OAEJ,EAEA,SAAS6O,EAAgBC,GACvB,OAAO,IAAInrB,SAAQC,IACjB,IACE,MAAMT,EAAS2rB,EAASvmB,WACxB3E,EAAQT,EACV,CAAE,MAAOgqB,GACP,IACEzgB,OAAOG,eAAeC,KAAKqgB,EAAK,eAChCzgB,OAAOG,eAAeC,KAAKqgB,EAAK,WAMhC,MAAMA,EAJN/U,YAAW,KACTyW,EAAgBC,GAAUprB,KAAKE,EAAQ,GACtC,IAIP,IAEJ,CAEO,IAAMmrB,EAAU,WACrB,SAAAA,EAAYC,EAAeC,GAAa,KAgCxCC,wBAA0B,IAAIjrB,IAhB5Ba,KAAKqqB,OAAS,IAAIlrB,IAClBa,KAAKsqB,WAAa,IAAInrB,IACtBa,KAAKuqB,cAAgB,CAAC,EACtBvqB,KAAKwqB,WAAa,IAAIrrB,IACtBa,KAAKyqB,mBAAqB,IAAItrB,IAC9Ba,KAAK0qB,aAAe,IAAIvrB,IACxBa,KAAK2qB,gBAAkB,IAAIxrB,IAC3Ba,KAAK4qB,SAAW,IAAIzrB,IACpBa,KAAK6qB,wBAAyB,EAC9B7qB,KAAK8qB,eAAiB,GACtB9qB,KAAK+qB,kBAAoB,IAAIhX,IAC7B/T,KAAKgrB,kBAAoB,IAAIjX,IAC7B/T,KAAKkqB,cAAgBA,GACrBe,EAAAA,EAAAA,IAAcd,EAChB,CAAC,IAAA5f,EAAA0f,EAAA9lB,UAgrBA,OAhrBAoG,EAID2gB,YAAA,SAAYzL,GACV,IAAI0L,EAAkBnrB,KAAKoqB,wBAAwBzpB,IAAI8e,GAQvD,OANK0L,IACHA,EAAkB7B,EAAQ7J,EAAK,OAC/Bzf,KAAKoqB,wBAAwB3oB,IAAIge,EAAK0L,IAIjCA,EACJvsB,MAAKorB,IACJhqB,KAAKoqB,wBAAwBpX,OAAOyM,GAC7BuK,KAER9jB,OAAMmiB,IAEL,MADAroB,KAAKoqB,wBAAwBpX,OAAOyM,GAC9B4I,CAAG,GAEf,EAAC9d,EAED6a,aAAA,SAAa3f,GACXzF,KAAKyF,UAAYA,EACjBzF,KAAKorB,iBAAmB3lB,EAAU,0BAA0B4lB,MAAKxrB,GAAKA,GACxE,EAAC0K,EAED+gB,kBAAA,SAAkBC,GAChB,MAAM,SAAE7E,EAAQ,QAAE8E,EAAU,GAAMD,EAC5B9L,EAAM0J,EAAkBzC,GAC9B,OAAO1mB,KAAKkrB,YAAYzL,GAAK7gB,MAAKiqB,IAChC,MAAM,OAAEpG,EAAM,aAAEgJ,GAAiB5C,EAGjC,GAAe,MAAXpG,EACF,IACE,MAAMiJ,EAAcrrB,KAAKC,MAAMmrB,GAC/B,QAAyB9mB,IAArB+mB,EAAY/Y,KACd,MAAM,IAAIhR,MAAM,iCAGlB,MAAMynB,EAAc1C,EAASrU,MAAM,KAAK,GAKxC,OAJI+W,IAAgBsC,EAAY/Y,KAAK+E,SAAS0R,KAC5CsC,EAAY/Y,MAAQ,IAAIyW,KAGnBxhB,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmBwG,QAC3ByC,QAASD,GAEb,CAAE,MAAOrD,GACP,CAKJ,OAAe,MAAX5F,GAA6B,MAAXA,EAEH,cAAbiE,GAAyC,cAAbA,EACvB9e,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmB/gB,QAMxB3B,KAAKsrB,kBACV1jB,OAAOiJ,OAAO0a,EAAS,CAAE7E,SAAU,YAAakF,UAAU,KAK/C,MAAXnJ,EACKziB,KAAKsrB,kBACV1jB,OAAOiJ,OAAO0a,EAAS,CACrB7E,SAAU,YACVmF,qBAAqB,KAMvBL,EAAU,EACLxrB,KAAKsrB,kBACV1jB,OAAOiJ,OAAO0a,EAAS,CAAEC,QAASA,EAAU,KAKzC5jB,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmB/gB,OAC3B,GAEN,EAAC4I,EAEDuhB,0BAAA,SAA0BP,GACxB,MAAM,SAAE7E,EAAQ,QAAE8E,EAAU,GAAMD,EAC5B9L,EAAM0J,EAAkBzC,GAAU7hB,QAAQ,QAAS,aACzD,OAAO7E,KAAKkrB,YAAYzL,GAAK7gB,MAAKiqB,IAChC,MAAM,OAAEpG,EAAM,aAAEgJ,GAAiB5C,EAGjC,GAAe,MAAXpG,EACF,IACE,OAAO7a,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmBwG,QAC3ByC,QAASF,GAEb,CAAE,MAAOpD,GACP,CAKJ,OAAe,MAAX5F,GAA6B,MAAXA,EAEH,cAAbiE,GAAyC,cAAbA,EACvB9e,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmB/gB,QAMxB3B,KAAK8rB,0BACVlkB,OAAOiJ,OAAO0a,EAAS,CAAE7E,SAAU,YAAakF,UAAU,KAK/C,MAAXnJ,EACKziB,KAAK8rB,0BACVlkB,OAAOiJ,OAAO0a,EAAS,CACrB7E,SAAU,YACVmF,qBAAqB,KAMvBL,EAAU,EACLxrB,KAAK8rB,0BACVlkB,OAAOiJ,OAAO0a,EAAS,CAAEC,QAASA,EAAU,KAKzC5jB,OAAOiJ,OAAO0a,EAAS,CAC5B9I,OAAQC,EAAmB/gB,OAC3B,GAEN,EAAC4I,EAEDwhB,iBAAA,SAAiBpH,GACf,MAAM+B,GAAWsF,EAAAA,EAAAA,IAASrH,GAC1B,GAAI3kB,KAAKwqB,WAAW/iB,IAAIif,GAAW,CACjC,MAAMxB,EAAWllB,KAAKwqB,WAAW7pB,IAAI+lB,GAEnC,OAAO7nB,QAAQC,QAAQomB,EAE3B,CAEA,OAAOllB,KAAKsrB,kBAAkB,CAAE5E,aAAY9nB,MAAKsmB,IAC/CllB,KAAKwqB,WAAW/oB,IAAIilB,EAAUxB,GAEvBA,IAEX,EAAC3a,EAED0hB,yBAAA,SAAyBtH,GACvB,MAAM+B,GAAWsF,EAAAA,EAAAA,IAASrH,GAC1B,GAAI3kB,KAAKyqB,mBAAmBhjB,IAAIif,GAAW,CACzC,MAAMxB,EAAWllB,KAAKyqB,mBAAmB9pB,IAAI+lB,GAE3C,OAAO7nB,QAAQC,QAAQomB,EAE3B,CAEA,OAAOllB,KAAK8rB,0BAA0B,CAAEpF,aAAY9nB,MAAKsmB,IACvDllB,KAAKyqB,mBAAmBhpB,IAAIilB,EAAUxB,GAE/BA,IAEX,EAAC3a,EAED2hB,kBAAA,SAAkBlc,GAChB,GAAIhQ,KAAK0qB,aAAajjB,IAAIuI,GAAY,CACpC,MAAM0b,EAAc1rB,KAAK0qB,aAAa/pB,IAAIqP,GAC1C,OAAOnR,QAAQC,QAAQ,CAAEkR,YAAW0b,eACtC,CAGA,OAAOpC,EADK,eAAiCtZ,SACzB,OAAOpR,MAAKutB,IAC9B,MAAMT,EAAcrrB,KAAKC,MAAM6rB,EAAIV,cAGnC,OADAzrB,KAAK0qB,aAAajpB,IAAIuO,EAAW0b,GAC1B,CAAE1b,YAAW0b,cAAa,GAErC,EAACnhB,EAEDqc,cAAA,SAAcjC,GACZ,OAAOiC,EAAAA,EAAAA,IAAcjC,EACvB,EAEApa,EACA5M,SAAA,SAASgnB,GACP,MAAM+B,GAAWsF,EAAAA,EAAAA,IAASrH,GAC1B,GAAI3kB,KAAKqqB,OAAO5iB,IAAIif,GAAW,CAC7B,MAAMxL,EAAOlb,KAAKqqB,OAAO1pB,IAAI+lB,GAE3B,OAAIxL,EAAKxW,MACA7F,QAAQC,QAAQ,CACrB4F,MAAOwW,EAAKxW,MACZ+d,OAAQvH,EAAKuH,SAIV5jB,QAAQC,QAAQoc,EAAKyQ,QAEhC,CAEA,GAAI3rB,KAAKsqB,WAAW7iB,IAAIif,GACtB,OAAO1mB,KAAKsqB,WAAW3pB,IAAI+lB,GAG7B,MAAM0F,EAAmB,CACvBpsB,KAAKqsB,cACLrsB,KAAK+rB,iBAAiBrF,IAOxB,MAAMyE,EAAkBtsB,QAAQytB,IAAIF,GAAkBxtB,MAAK2tB,IACzD,MAAOC,EAAiBC,EAAkBC,GAAmBH,EAE7D,GACEE,EAAiBhK,SAAWC,EAAmB/gB,QAC/C+qB,aAAe,EAAfA,EAAiBjK,UAAWC,EAAmB/gB,MAE/C,MAAO,CACL8gB,OAAQC,EAAmB/gB,OAI/B,IAAIujB,EAAWuH,EAAiBd,QAEhC,MAAM,mBACJ/B,EACAC,kBAAmB8C,EAAwB,GAAE,UAC7Cxc,EAAY,CAAC,GACX+U,EAEE0H,EAAc,CAAC,EAEfC,EAAoB9jB,MAAM4E,KAAK,IAAIoG,IAAInM,OAAOklB,OAAO3c,KAErD4c,EAAYlf,IAChB,GAAI7N,KAAK4qB,SAASnjB,IAAIoG,EAAM/M,MAC1B,OAAOd,KAAK4qB,SAASjqB,IAAIkN,EAAM/M,MAC1B,GAAId,KAAK2qB,gBAAgBljB,IAAIoG,EAAM/M,MACxC,OAAOd,KAAK2qB,gBAAgBhqB,IAAIkN,EAAM/M,MAGxC,MAAMksB,EAAWhtB,KAAKkqB,cAAcrc,EAAM+b,oBAAoBhrB,MAC5DgS,IACE,MAAO,CACLA,WAzYQvO,EAyYiBuO,EAzYXvO,GAAKA,EAAErB,SAAYqB,GA0YjCyO,aAAcjD,EAAMxP,OAAOyS,aAC3BC,KAAMlD,EAAMxP,OAAO0S,MA3YX1O,KA4YT,IAUL,OANArC,KAAK2qB,gBAAgBlpB,IAAIoM,EAAM/M,KAAMksB,GACrCA,EAASpuB,MAAKV,IACZ8B,KAAK4qB,SAASnpB,IAAIoM,EAAM/M,KAAM5C,GAC9B8B,KAAK2qB,gBAAgB3X,OAAOnF,EAAM/M,KAAK,IAGlCksB,CAAQ,EAGjB,OAAOnuB,QAAQytB,IACbO,EAAkB1uB,KAAI6R,GAAahQ,KAAKksB,kBAAkBlc,MAC1DpR,MAAKquB,IACL,MAAMC,EAAS,GACTC,GAAwB3f,EAAAA,EAAAA,GAAOmf,GAErC,IAAK,MAAM,YAAEjB,EAAW,UAAE1b,KAAepI,OAAOklB,OAAOG,GAAa,CAClEC,EAAO9oB,KAAK,CAAEtD,KAAMkP,KAAc0b,IAClC,IAAK,MAAM0B,KAAmB1B,EAAY7B,kBACnCsD,EAAyBzV,SAAS0V,IACrCD,EAAyB/oB,KAAKgpB,EAGpC,CAEA,MAAMC,EAAoB,CACxBxuB,QAAQytB,IAAIY,EAAO/uB,IAAI4uB,IACvB/sB,KAAKkqB,cAAcN,EAAoB,SAIvCyD,EAAkBjpB,KAAKpE,KAAKkqB,cAAcN,IAS5C,MAAM0D,EAAyBzuB,QAAQytB,IAAIe,GAAmBzuB,MAC5D2uB,IACE,MAAOC,EAAiBC,EAAehU,GAAiB8T,EAExDX,EAAYc,UAAY,IAAIta,KAE5B,IAAK,MAAMua,KAAkBH,IACtBG,GAAkBA,aAA0BhsB,SAC/CirB,EAAYnK,OAASC,EAAmB/gB,MACxCirB,EAAYloB,MAAQipB,GAYxB,IAAIvnB,EAEJ,KARIqT,GAAiBA,aAAyB9X,SAE5CirB,EAAYnK,OAASC,EAAmB/gB,MACxCirB,EAAYloB,MAAQ+U,GAKlBmT,EAAYnK,SAAWC,EAAmB/gB,MAAO,CAcnD,GAbAirB,EAAYnK,OAASC,EAAmBwG,SAER,IAA9BuD,EAAiBb,WACa,KAA9Bc,aAAe,EAAfA,EAAiBd,YAEjBgB,EAAYhB,UAAW,GAEzB1G,EAAWtd,OAAOiJ,OAAOqU,EAAU,CACjCtC,uBAAwB4J,EACpBA,EAAgB5J,uBAChB,KAGkC,iBAA7B8J,aAAe,EAAfA,EAAiBf,SAAsB,CAChDvlB,EAAgBsjB,EAAgBxE,EAAU,KAAMuI,GAEhDrnB,EAAc6U,iBAAmByR,EAAgBf,QAEjD,MAAMiC,EAAiB,IAAIC,eAAe,CACxCC,KAAAA,CAAMhoB,GACJ,MAAMka,EAAK,IAAI+N,YACfjoB,EAAWgN,QAAQkN,EAAGgO,OAAOtB,EAAgBf,SAC/C,EACAsC,IAAAA,CAAKnoB,GAEHA,EAAWooB,OACb,EACAC,MAAAA,GAAU,IAGZ,OAAOpE,GACL1lB,EAAAA,EAAAA,0BAAyBupB,IACzBhvB,MAAKP,IACL+H,EAAc6U,iBAAmB5c,EAE1B+H,IAEX,CACEA,EAAgBsjB,EACdxE,EACAzL,EACAgU,EAGN,CAGA,OAAOrnB,CAAa,IAKlBgoB,EAA0BvvB,QAAQytB,IACtCa,EAAyBhvB,KAAIivB,IAE3B,GAAIptB,KAAKuqB,cAAc6C,GAAkB,CACvC,MAAM1B,EAAc1rB,KAAKuqB,cAAc6C,GACvC,MAAO,CAAEA,kBAAiB1B,cAC5B,CAEA,OAAO1rB,KAAKkrB,YACV,mBAAqCkC,UAEpCxuB,MAAKiqB,IACJ,MAAM6C,EAAcrrB,KAAKC,MAAMuoB,EAAI4C,cACnC,MAAO,CAAE2B,kBAAiB1B,cAAa,IAExCxlB,OAAM,KACL,MAAM,IAAIvE,MACR,qCAAuDyrB,UACxD,GACD,KAENxuB,MAAK8a,IACL,MAAM2U,EAAwB,CAAC,EAO/B,OALA3U,EAAmBlY,SAAQ2E,IAAuC,IAAtC,gBAAEinB,EAAe,YAAE1B,GAAavlB,EAC1DkoB,EAAsBjB,GAAmB1B,EACzC1rB,KAAKuqB,cAAc6C,GAAmB1B,CAAW,IAG5C2C,CAAqB,IAG9B,OACExvB,QAAQytB,IAAI,CAACgB,EAAwBc,IAClCxvB,MAAKsZ,IAA0C,IAC1CyT,GADEvlB,EAAesT,GAAmBxB,EAaxC,OAXI9R,IACFulB,EAAU,IAAKvlB,EAAesT,sBAC9BkT,EAAYjB,QAAUA,EACtBpJ,EAAAA,EAAQC,KAAK,0BAA2B,CACtCtH,KAAMyQ,EACNvlB,cAAeulB,KAInB3rB,KAAKqqB,OAAO5oB,IAAIilB,EAAUkG,GAEtBA,EAAYloB,MACP,CACLA,MAAOkoB,EAAYloB,MACnB+d,OAAQmK,EAAYnK,QAIjBkJ,CAAO,IAGfzlB,OAAMmiB,IACE,CACL3jB,MAAO2jB,EACP5F,OAAQC,EAAmB/gB,SAE7B,GAEN,IAcJ,OAXAwpB,EACGvsB,MAAK,KACJoB,KAAKsqB,WAAWtX,OAAO0T,EAAS,IAEjCxgB,OAAMxB,IAEL,MADA1E,KAAKsqB,WAAWtX,OAAO0T,GACjBhiB,CAAK,IAGf1E,KAAKsqB,WAAW7oB,IAAIilB,EAAUyE,GAEvBA,CACT,EAEA5gB,EACA3M,aAAA,SAAa+mB,EAASrmB,QAAO,IAAPA,IAAAA,EAAU,CAAC,GAC/B,MAAMooB,GAAWsF,EAAAA,EAAAA,IAASrH,GAC1B,GAAI3kB,KAAKqqB,OAAO5iB,IAAIif,GAAW,CAAC,IAAD4H,EAC7B,MAAMpJ,EAAWllB,KAAKqqB,OAAO1pB,IAAI+lB,GAEjC,GAAIxB,EAASyG,QACX,OAAOzG,EAASyG,QAGlB,GAAW,QAAX2C,EAAIhwB,SAAO,IAAAgwB,GAAPA,EAAS/J,iBACX,MAAO,CACL7f,MAAOwgB,EAASxgB,MAChB+d,OAAQyC,EAASzC,OAGvB,CAEF,EAAClY,EAEDgkB,eAAA,SAAe7H,GAEb,QAvkBkC8H,MACpC,GACE,eAAgBppB,gBACgB,IAAzBA,UAAUqpB,WACjB,CACA,IAAKrpB,UAAUqpB,WAAWC,eAAiB,IAAIhX,SAAS,MACtD,OAAO,EAET,GAAItS,UAAUqpB,WAAWE,SACvB,OAAO,CAEX,CACA,OAAO,CAAI,EA2jBJH,OAKDppB,UAAUwpB,YAAanF,EAAU1b,KAAK3I,UAAUwpB,cAKhD5uB,KAAKqqB,OAAO5iB,IAAIif,GAKtB,EAACnc,EAEDskB,SAAA,SAASnI,GACP,IAAK1mB,KAAKuuB,eAAe7H,GACvB,MAAO,CACL9nB,KAAME,GAAWA,GAAQ,GACzBgwB,MAAOA,QAGX,GAAI9uB,KAAK+qB,kBAAkBtjB,IAAIif,GAC7B,MAAO,CACL9nB,KAAME,GAAWA,GAAQ,GACzBgwB,MAAOA,QAIX,MAAMC,EAAQ,CACZjwB,QAAS,KACTypB,OAAQ,KACRyG,QAAS,MAEXD,EAAMC,QAAU,IAAInwB,SAAQ,CAACC,EAASypB,KACpCwG,EAAMjwB,QAAUA,EAChBiwB,EAAMxG,OAASA,CAAM,IAEvBvoB,KAAK8qB,eAAe1mB,KAAK,CAACsiB,EAAUqI,IACpC,MAAME,EAAS,IAAIC,gBAgBnB,OAfAD,EAAOE,OAAO3pB,iBAAiB,SAAS,KACtC,MAAMmX,EAAQ3c,KAAK8qB,eAAe1R,WAAUd,IAAA,IAAElZ,GAAEkZ,EAAA,OAAKlZ,IAAMsnB,CAAQ,KAEpD,IAAX/J,GACF3c,KAAK8qB,eAAezR,OAAOsD,EAAO,EACpC,IAGG3c,KAAK6qB,yBACR7qB,KAAK6qB,wBAAyB,EAC9BvX,YAAW,KACTtT,KAAKovB,2BAA2B,GAC/B,MAGE,CACLxwB,KAAMA,CAACE,EAASypB,IAAWwG,EAAMC,QAAQpwB,KAAKE,EAASypB,GACvDuG,MAAOG,EAAOH,MAAMxsB,KAAK2sB,GAE7B,EAAC1kB,EAED6kB,0BAAA,YACuBrqB,OAAOoO,qBAAmB,CAAKkc,GAAM/b,WAAW+b,EAAI,MAE5D,KACX,MAAMC,EAAatvB,KAAK8qB,eAAezR,OAAO,EAAG,GAC3CkW,EAAa1wB,QAAQytB,IACzBgD,EAAWnxB,KAAI8oB,IAA2B,IAAzBP,EAAU8I,GAASvI,EASlC,OANKjnB,KAAK+qB,kBAAkBtjB,IAAIif,KAC9B1mB,KAAKyF,UAAU,qBAAsB,CAAEa,SAAUogB,IACjD1mB,KAAK+qB,kBAAkB/V,IAAI0R,IAIzB1mB,KAAKorB,iBACAoE,EAAS1wB,SAAQ,GAGnBkB,KAAKyvB,YAAWzD,EAAAA,EAAAA,IAAStF,IAAW9nB,MAAK,KACzCoB,KAAKgrB,kBAAkBvjB,IAAIif,KAC9B1mB,KAAKyF,UAAU,yBAA0B,CAAEa,SAAUogB,IACrD1mB,KAAKgrB,kBAAkBhW,IAAI0R,IAG7B8I,EAAS1wB,SAAQ,EAAK,GACtB,KAIFkB,KAAK8qB,eAAetsB,OACtB+wB,EAAW3wB,MAAK,KACd0U,YAAW,KACTtT,KAAKovB,2BAA2B,GAC/B,IAAK,IAGVpvB,KAAK6qB,wBAAyB,CAChC,GAEJ,EAACtgB,EAEDklB,WAAA,SAAW/I,GACT,MAAMgJ,EAAcvG,EAAkBzC,GAsBpC,OAAOiJ,EAAeD,EAAa,CACjCrb,YAAa,YACbub,GAAI,UACHhxB,MAAK,IAGNoB,KAAK+rB,iBAAiBrF,IAG5B,EAACnc,EAEDslB,SAAA,SAASlL,GACP3kB,KAAKrC,SAASgnB,EAChB,EAACpa,EAED7M,2BAAA,SAA2BinB,GACzB,MAAM+B,GAAWsF,EAAAA,EAAAA,IAASrH,GACpBzJ,EAAOlb,KAAKwqB,WAAW7pB,IAAI+lB,GACjC,GAAIxL,EAAM,CACR,MAAM9U,EAAgBsjB,EAAgBxO,EAAKyQ,SAE3C,MAAM,GAANziB,QAAAsE,EAAAA,EAAAA,GACKsiB,EAAoB1pB,EAAc8U,KAAK0O,qBAAmB,CAC7DT,EAAkBzC,IAEtB,CACE,OAAO,IAEX,EAACnc,EAEDwlB,eAAA,SAAepL,GACb,MAAM+B,GAAWsF,EAAAA,EAAAA,IAASrH,GACpBzJ,EAAOlb,KAAKqqB,OAAO1pB,IAAI+lB,GAC7B,OAAQxL,GAAQA,EAAK0Q,QACvB,EAACrhB,EAED8hB,YAAA,SAAYb,GACV,YADiB,IAAPA,IAAAA,EAAU,GACbxrB,KAAKkrB,YAAY,4BAA8CtsB,MACpEiqB,IACE,MAAM,OAAEpG,EAAM,aAAEgJ,GAAiB5C,EAEjC,IAAImH,EAEJ,GAAe,MAAXvN,GAAkB+I,EAAU,EAE9B,OAAOxrB,KAAKqsB,YAAYb,EAAU,GAIpC,GAAe,MAAX/I,EACF,IACE,MAAMiJ,EAAcrrB,KAAKC,MAAMmrB,GAC/B,QAA2C9mB,IAAvC+mB,EAAY9I,uBACd,MAAM,IAAIjhB,MAAM,iCAGlBquB,EAAUtE,CACZ,CAAE,MAAOrD,GACP,CAIJ,OAAO2H,CAAO,GAGpB,EAAC/F,CAAA,CA/sBoB,GAktBvB,MAAM6F,EAAsBlG,IACzB7kB,OAAOkrB,gBAAgBrG,IAAuB,IAAIzrB,KACjD+xB,GAASC,GAAkBD,IAGxB,IAkGHpL,EAlGSE,EAAU,SAAAoL,GACrB,SAAApL,EAAYC,EAAekF,EAAYjF,GAAW,IAADtc,EA2B9C,OARDA,EAAAwnB,EAAApoB,KAAA,MAlBsB,SAACqoB,EAAWC,GAKhC,QAL0C,IAAVA,IAAAA,EAAa,eAKxCrL,EAHHqL,EAAa,cAGgBD,GAC7B,MAAM,IAAI1uB,MACR,+DAA+D0uB,MAInE,OACEpL,EAAcqL,GAAYD,KAEvBnqB,OAAMmiB,GAAOA,GAEpB,GAEqB8B,IAAW,KAE5BjF,GACFtc,EAAK4hB,WAAW/oB,KAAIuqB,EAAAA,EAAAA,IAAS9G,EAASvS,MAAO,CAC3C+T,SAAUxB,EAASvS,KACnBgZ,QAASzG,EACTzC,OAAQ,YAEX7Z,CACH,EAAC6J,EAAAA,EAAAA,GAAAuS,EAAAoL,GAAA,IAAAlM,EAAAc,EAAA7gB,UAkEA,OAlEA+f,EAEDuL,WAAA,SAAW/I,GACT,OAAO0J,EAAAjsB,UAAMsrB,WAAUznB,KAAC,KAAA0e,GAAU9nB,MAAKP,IACrC,GAAIA,EAAOokB,SAAWC,EAAmBwG,QACvC,OAAOrqB,QAAQC,UAEjB,MAAMomB,EAAW7mB,EAAOstB,QAClB0E,EAAYnL,EAAS0E,mBACrB2G,EAAgBT,EAAoBO,GAC1C,OAAOxxB,QAAQytB,IAAIiE,EAAcpyB,IAAIwxB,IAAiB/wB,MAAK,IAAMsmB,GAAS,GAE9E,EAAChB,EAED6H,iBAAA,SAAiBpH,GACf,OAAOyL,EAAAjsB,UAAM4nB,iBAAgB/jB,KAAC,KAAA2c,GAAS/lB,MAAKmS,GACtCA,EAAK6a,SACHvC,EAAiB1E,GACZ5T,EAIFuY,EAAQ3E,EAAS,QAAQ/lB,MAAKiqB,GAChB,MAAfA,EAAIpG,OAIC,CACLA,OAAQC,EAAmB/gB,OAMxBoP,IAGJA,GAEX,EAACmT,EAED+H,yBAAA,SAAyBtH,GACvB,OAAOyL,EAAAjsB,UAAM8nB,yBAAwBjkB,KAAC,KAAA2c,GAAS/lB,MAAKmS,GAC9CA,EAAK6a,SACHvC,EAAiB1E,GACZ5T,EAIFuY,EAAQ3E,EAAS,QAAQ/lB,MAAKiqB,GAChB,MAAfA,EAAIpG,OAIC,CACLA,OAAQC,EAAmB/gB,OAMxBoP,IAGJA,GAEX,EAACiU,CAAA,CA/FoB,CAASiF,GAoGzB,MAAM9E,EAAYqL,IACvB1L,EAAW0L,CAAO,EAGPhL,EAAe,CAC1B1S,QAAS6R,GAAWG,EAAS+J,SAASlK,GAGtCjnB,2BAA4BinB,GAC1BG,EAASpnB,2BAA2BinB,GACtChnB,SAAUgnB,GAAWG,EAASnnB,SAASgnB,GAEvC/mB,aAAc,SAAC+mB,EAASrmB,GAAY,YAAL,IAAPA,IAAAA,EAAU,CAAC,GACjCwmB,EAASlnB,aAAa+mB,EAASrmB,EAAQ,EACzCuwB,SAAUlK,GAAWG,EAAS+J,SAASlK,GACvCoL,eAAgBpL,GAAWG,EAASiL,eAAepL,GACnDkL,SAAUlL,GAAWG,EAAS+K,SAASlL,GACvC0H,YAAaA,IAAMvH,EAASuH,eAG9B,QAEO,SAASnG,IACd,OAAIpB,EACKA,EAASyF,cAET,CAAC,CAEZ,CAEO,SAASnE,IACd,OAAItB,EACKA,EAAS8F,SAET,CAAC,CAEZ,wBC98BA/sB,EAAQ0vB,WAAa,CACnB,+BAAgCkD,IAAM,8BACtC,iCAAkCC,IAAM,iFACxC,yCAA0CC,IAAM,0FAChD,mCAAoCC,IAAM,iFAC1C,mCAAoCC,IAAM,0FAC1C,2CAA4CC,IAAM,gFAClD,iCAAkCC,IAAM,4GACxC,4CAA6CC,IAAM,iFACnD,qCAAsCC,IAAM,iFAC5C,oCAAqCC,IAAM,mGAC3C,oCAAqCC,IAAM,mGAC3C,qCAAsCC,IAAM,gFAC5C,mCAAoCC,IAAM,qHCV5CxzB,EAAQ,GAAuBA,EAAQ,QAAgB,EACvD,IAAI2O,EAAiB,EAAQ,MAC7B3O,EAAQ,GAAgB2O,EAAevF,cACvC,IAAIqqB,EAAwB,EAAQ,MACpCzzB,EAAQ,GAAuByzB,EAAsBplB,qOCN4J,SAAS4H,IAAI,OAAOA,EAAElM,OAAOiJ,OAAOjJ,OAAOiJ,OAAOvO,OAAO,SAAS7C,GAAG,IAAI,IAAIiB,EAAE,EAAEA,EAAEoI,UAAUtK,OAAOkC,IAAI,CAAC,IAAIxB,EAAE4J,UAAUpI,GAAG,IAAI,IAAIlB,KAAKN,EAAE0I,OAAOzD,UAAU4D,eAAeC,KAAK9I,EAAEM,KAAKC,EAAED,GAAGN,EAAEM,GAAG,CAAC,OAAOC,CAAC,EAAEqU,EAAE7K,MAAMjJ,KAAK8I,UAAU,CAAC,SAASjJ,EAAEJ,GAAG,IAAIiB,EAAEjB,GAAG,IAAIP,EAAE,GAAGM,EAAE,GAAG,MAAM+P,EAAE7O,EAAEmB,QAAQ,MAAM,IAAI0N,IAAI/P,EAAEkB,EAAEmN,MAAM0B,GAAG7O,EAAEA,EAAEmN,MAAM,EAAE0B,IAAI,MAAM0D,EAAEvS,EAAEmB,QAAQ,KAAK,OAAO,IAAIoR,IAAI/T,EAAEwB,EAAEmN,MAAMoF,GAAGvS,EAAEA,EAAEmN,MAAM,EAAEoF,IAAI,CAAC3M,SAAS5F,EAAEgb,OAAO,MAAMxc,EAAE,GAAGA,EAAE8K,KAAK,MAAMxK,EAAE,GAAGA,EAAE,CAAC,MAAMO,EAAE,6BAA6Bf,EAAES,IAAI,GAAG,iBAAiBA,EAAE,OAAO,CAACA,GAAGM,EAAEgO,KAAKtO,GAAX,CAAeA,EAAC,EAAGL,EAAE,IAA+F,GAAc8C,EAAE,IAAmG,GAAgB,SAASF,EAAEvC,EAAEiB,EAAEtB,KAAK,IAAIF,EAAE,IAAIF,EAAES,GAAG,OAAOA,EAAE,GAAGA,EAAEgP,WAAW,OAAOhP,EAAEgP,WAAW,OAAO,OAAOhP,EAAE,MAAMD,EAAE,OAAON,EAAE,MAAMwB,EAAEA,EAAEwB,KAAKhD,EAAE,IAAI,MAAM,GAAG,MAAMM,GAAGA,EAAE+b,SAAS,KAAK/b,EAAEqO,MAAM,GAAG,GAAGrO,IAAIC,EAAEgP,WAAW,KAAKhP,EAAE,IAAIA,KAAK,CAAC,MAAMgD,EAAEhD,GAAG,MAAMA,OAAE,EAAOA,EAAEgP,WAAW,KAA4E,SAAShO,EAAEhB,EAAEiB,GAAG,MAAM4F,SAASpH,EAAEwc,OAAOlc,EAAEwK,KAAKuF,GAAG1P,EAAEJ,GAAG,MAAM,IAAG,OAAEP,EAAEwB,KAAKlB,IAAI+P,GAAG,CAAC,MAAMlN,EAAE,CAAC5C,EAAEiB,IAAI,iBAAiBjB,EAAEA,EAAET,EAAES,GAAGgD,EAAEhD,GAAG,SAASA,GAAG,MAAMiB,EAAEsB,EAAEvC,GAAGP,EAAlL,SAAwL,OAAgCuB,EAAEC,EAAExB,EAAI,CAAvE,CAAyEO,GAAG,SAASA,EAAEiB,GAAG,GAAG+B,EAAEhD,GAAG,OAAOA,EAAE,MAAMD,EAA1Q,SAAgR+P,GAAE,aAAE9P,EAAEiB,GAAG,OAAgCD,EAAE8O,EAAE/P,EAAI,CAA5F,CAA8FC,EAAEiB,GAAGjB,EAAEyB,EAAE,CAAC,KAAK,WAAW,UAAU,eAAe,kBAAkB,cAAc,WAAW,kBAAkB,QAAQ,UAAU,aAAa,SAAStB,EAAEH,GAAG,OAAOuC,EAAEvC,EAAEyC,IAAI,CAAC,MAAMpC,EAAE,CAACyxB,gBAAgB,SAASC,YAAY,SAASC,gBAAgB,QAAQ,SAASrxB,EAAEX,GAAgB,OAAO,gBAAgB,WAAE,MAAK,EAAEuF,SAAS9F,KAAkB,gBAAgBie,EAAErJ,EAAE,CAAC,EAAErU,EAAE,CAACiyB,UAAUxyB,MAAK,CAAC,MAAMie,UAAU,YAAY,WAAArP,CAAYrO,GAAG2f,MAAM3f,GAAGO,KAAK2xB,gBAAgB,EAAEhT,mBAAmBlf,EAAEif,UAAUhe,MAAMV,KAAKqD,MAAMouB,gBAAgBhyB,EAAEiB,GAAG,CAACkxB,UAAU,CAAC5xB,KAAKqD,MAAMuuB,UAAU5xB,KAAKqD,MAAMkuB,iBAAiBhzB,OAAOyQ,SAASL,KAAK,KAAKsI,MAAMnD,EAAE,CAAC,EAAE9T,KAAKqD,MAAM4T,MAAMjX,KAAKqD,MAAMmuB,cAAc,KAAK,IAAI9wB,GAAE,EAAG,oBAAoBqE,QAAQA,OAAO8sB,uBAAuBnxB,GAAE,GAAIV,KAAK6F,MAAM,CAACisB,YAAYpxB,GAAGV,KAAK+xB,cAAc,KAAK/xB,KAAKgyB,UAAUhyB,KAAKgyB,UAAU1vB,KAAKtC,KAAK,CAAC,SAAAiyB,GAAY,IAAIxyB,EAAEsF,OAAOC,SAASsB,SAASvB,OAAOC,SAAS0W,OAAO1b,KAAKqD,MAAMquB,WAAW1xB,KAAKqD,MAAMquB,UAAUprB,WAAW7G,EAAEO,KAAKqD,MAAMquB,UAAUprB,SAAStG,KAAKqD,MAAMquB,UAAUhW,QAAQ,MAAMhb,EAAEb,EAAEwC,EAAErC,KAAKqD,MAAM4Z,GAAGxd,IAAIP,EAAEwB,EAAE4F,SAAS5F,EAAEgb,OAAO,GAAGjc,IAAIP,EAAE,OAAOqmB,UAAUzS,QAAQ5T,EAAE,CAAC,oBAAA2L,GAAuB,IAAI7K,KAAKkyB,GAAG,OAAO,MAAMpN,SAASrlB,EAAE0yB,GAAGzxB,GAAGV,KAAKkyB,GAAGlyB,KAAK+xB,eAAe/xB,KAAK+xB,cAAcjD,QAAQrvB,EAAE2yB,UAAU1xB,GAAGjB,EAAE4yB,YAAY,CAAC,SAAAL,CAAUvyB,GAAGO,KAAKqD,MAAMmb,UAAU5W,OAAOzD,UAAU4D,eAAeC,KAAKhI,KAAKqD,MAAMmb,SAAS,WAAWxe,KAAKqD,MAAMmb,SAAS7R,QAAQlN,EAAEO,KAAKqD,MAAMmb,UAAUxe,KAAKqD,MAAMmb,SAAS/e,GAAGO,KAAK6F,MAAMisB,aAAaryB,IAAIO,KAAKkyB,GAAG,EAAEzyB,EAAEiB,KAAK,MAAMxB,EAAE,IAAI6F,OAAO8sB,sBAAqB3yB,IAAIA,EAAEsC,SAAQtC,IAAIO,IAAIP,EAAEozB,QAAQ5xB,EAAExB,EAAEqzB,gBAAgBrzB,EAAEszB,kBAAkB,EAAC,GAAE,IAAI,OAAOtzB,EAAEuzB,QAAQhzB,GAAG,CAACqlB,SAAS5lB,EAAEizB,GAAG1yB,EAAG,EAAtK,CAAwKA,GAAEA,IAAIA,EAAEO,KAAK+xB,cAAc/xB,KAAKiyB,YAAYjyB,KAAK+xB,eAAe/xB,KAAK+xB,cAAcjD,OAAM,IAAI,CAAC,MAAA7jB,GAAS,MAAMxL,EAAEO,KAAKqD,OAAO4Z,GAAG/d,EAAEuf,SAASjf,EAAEQ,KAAK2xB,gBAAgB/S,QAAQ3L,EAAEyf,aAAa3yB,EAAE8F,MAAMzG,EAAEyF,QAAQ3C,EAAEwvB,UAAU1vB,GAAGvC,EAAEgD,EAAE,SAAShD,EAAEiB,GAAG,GAAG,MAAMjB,EAAE,MAAM,CAAC,EAAE,IAAIP,EAAEM,EAAE+P,EAAE,CAAC,EAAE0D,EAAErL,OAAO8G,KAAKjP,GAAG,IAAID,EAAE,EAAEA,EAAEyT,EAAEzU,OAAOgB,IAAIkB,EAAEmB,QAAQ3C,EAAE+T,EAAEzT,KAAK,IAAI+P,EAAErQ,GAAGO,EAAEP,IAAI,OAAOqQ,CAAC,CAAjI,CAAmI9P,EAAEyB,GAAgN6c,EAAE1b,EAAEnD,EAAE8C,EAAEsE,UAAU,OAAOtH,EAAE+e,GAAgB,gBAAgB,OAAEjK,EAAE,CAACmJ,GAAGc,EAAElY,MAAMzG,EAAEqf,SAASjf,EAAEgf,SAASxe,KAAKgyB,UAAUU,aAAajzB,IAAIM,GAAGA,EAAEN,GAAG,MAAMiB,EAAEb,EAAEke,GAAGwH,UAAUsK,SAASnvB,EAAE4F,SAAS5F,EAAEgb,OAAM,EAAGkD,QAAQnf,IAAI,GAAGwT,GAAGA,EAAExT,KAAK,IAAIA,EAAEqf,QAAQ9e,KAAKqD,MAAMivB,QAAQ7yB,EAAEof,kBAAkBpf,EAAEsf,SAAStf,EAAEuf,QAAQvf,EAAEwf,SAASxf,EAAEyf,UAAU,CAACzf,EAAE0f,iBAAiB,IAAIze,EAAEwB,EAAE,MAAMhD,EAAE8c,UAAU+B,KAAK/b,EAAEsE,SAAS,kBAAkBpE,GAAGhD,IAAIwB,GAAE,GAAIqE,OAAO2gB,YAAY3H,EAAE,CAAClY,MAAMzG,EAAEyF,QAAQnE,GAAG,CAAC,OAAM,CAAC,GAAI+B,IAAiB,gBAAgB,IAAIqR,EAAE,CAAC6H,KAAKoC,GAAGtb,GAAG,EAAE0a,EAAE9R,UAAUyI,EAAE,CAAC,EAAEhU,EAAE,CAAC8e,QAAQ,OAAO3B,GAAG,SAASzR,WAAW3G,QAAQ,OAAOgB,MAAM,WAAW,MAAM5C,EAAE,cAAa,CAACxD,EAAEP,IAAiB,gBAAgBkB,EAAE0T,EAAE,CAAC0K,SAAStf,GAAGO,MAAK0C,EAAE,CAAC1C,EAAEiB,KAAKqE,OAAO2gB,YAAYrjB,EAAE5C,EAAEsF,OAAOC,SAASsB,UAAU5F,EAAC,mICGx7I,MAAM4Z,GCgB+BxZ,EDhBkB,cCgBZ6xB,EDhB2B,CAAC,ECiBjEpsB,EAAM/D,oBAjBgB,SAAC1B,EAAM6xB,GAajC,YAb6C,IAAZA,IAAAA,EAAe,MAE3C/V,WAAWC,mBACdD,WAAWC,iBAAmB,CAAC,GAG5BD,WAAWC,iBAAiB/b,KAC/B8b,WAAWC,iBAAiB/b,GAAQyF,EAAM/D,oBACxC1B,EACA6xB,IAIG/V,WAAWC,iBAAiB/b,EACrC,CAIW0B,CAAoB1B,EAAM6xB,GAG5BpsB,EAAAA,cAAoBosB,IAL7B,IAAqC7xB,EAAM6xB,EDd3C,SAASC,EAAuBzsB,GAA4C,IAA3C,gBAAE0sB,EAAe,KAAE9hB,EAAI,MAAE+hB,EAAK,OAAE7nB,GAAQ9E,EACvE,MAAM4sB,EAAYhiB,EACdA,EAAKA,KACL8hB,EAAgBC,IAAUD,EAAgBC,GAAO/hB,KAErD,OACExK,EAAAA,cAACA,EAAAA,SAAc,KACZwsB,GAAa9nB,EAAO8nB,IACnBA,GAAaxsB,EAAAA,cAAA,WAAK,yBAG1B,CAKA,MAAMysB,EAAc3vB,IAClB,MAAM,KAAE0N,EAAI,MAAE+hB,EAAK,OAAE7nB,EAAM,SAAEE,GAAa9H,EAS1C,OACEkD,EAAAA,cAAC+T,EAAmBgM,SAAQ,MACzBuM,GACCtsB,EAAAA,cAACqsB,EAAuB,CACtB7hB,KAAMA,EACN+hB,MAAOA,EACP7nB,OAAQA,GAAUE,EAClB0nB,gBAAiBA,KAGO,EAW5BI,EAAiBH,IAAU,IAADI,EAErB3sB,EAAAA,WAUT,MAAM4sB,EAAU5sB,EAAAA,WAAiB+T,GAKjC,GAAI8Y,MAAMC,OAAOP,IACf,MAAM,IAAInxB,MAAM,iLAIMmxB,WAIxB,GAAkB,QAAlBI,EAAIC,EAAQL,UAAM,IAAAI,GAAdA,EAAgBniB,KAClB,OAAOoiB,EAAQL,GAAO/hB,KAEtB,MAAM,IAAIpP,MACR,uMAIJ,mFEtFF,SAAS8Q,EAAehT,EAAG8P,GACzB9P,EAAE0E,UAAYyD,OAAO4H,OAAOD,EAAEpL,WAAY1E,EAAE0E,UAAU2J,YAAcrO,GAAG,OAAeA,EAAG8P,EAC3F,wGCEO,MAAM4S,EAAgB,SAAsBhc,EAEhDmtB,GAAgB,IAFiC,SAClDtuB,GACDmB,CAWD,qCCfE5B,EAAO1G,QAAU,EAAjB,wCCEa,SAAS4oB,EAAY8M,EAAKC,GACvC,YAD6C,IAANA,IAAAA,EAAS,IAC3CA,EAIDD,IAAQC,EACH,IAGLD,EAAI9kB,WAAW,GAAG+kB,MACbD,EAAI1lB,MAAM2lB,EAAOh1B,QAGnB+0B,EAXEA,CAYX,qMCnBA,EAAeE,IACb,QAAsB9uB,IAAlB8uB,EACF,OAAOA,EAET,IAAK9gB,EAAM+I,EAAS,IAAM+X,EAAcphB,MAAM,KAK9C,OAJIqJ,IACFA,EAAS,IAAMA,GAGJ,MAAT/I,EACK,IAAM+I,EAEsB,MAAjC/I,EAAK+gB,OAAO/gB,EAAKnU,OAAS,GACrBmU,EAAK9E,MAAM,GAAI,GAAK6N,EAEtB/I,EAAO+I,CACf,YCXD,MAAMiY,EAAY,IAAIx0B,IACtB,IAAIgrB,EAAa,GAEjB,MAAMyJ,EAAeC,IACnB,IAAIC,EAAiBD,EAGrB,IAAoB,IAFDA,EAAYhyB,QAAQ,KAEhB,CACrB,MAAO8Q,EAAMohB,GAAMF,EAAYxhB,MAAM,KACrCyhB,EAAiB,GAAGnhB,KAAQwC,mBAAmB4e,IACjD,CAEA,MAAMztB,EAAWmX,mBAAmBqW,GAUpC,OAPwBrN,EAAAA,EAAAA,GACtBngB,EACAmX,mBAAmB+I,KAGlBnU,MAAM,KAAK,EAEQ,EAGxB,SAAS2hB,EAAWrhB,GAElB,OACEA,EAAKlE,WAAW,MAChBkE,EAAKlE,WAAW,aAChBkE,EAAKlE,WAAW,WAETkE,EAIF,IAAIoJ,IACTpJ,EACA5N,OAAOC,SAAS2W,MAAQ5W,OAAOC,SAAS2W,KAAKJ,SAAS,KAAO,GAAK,MAClEjV,QACJ,CAOO,MAAM2kB,EAAgBlnB,IAC3BomB,EAAapmB,CAAK,EAWP6iB,EAAgBiN,IAC3B,MAAMI,EAAkBC,EAAUL,GAE5BM,EAAYhK,EAAWhsB,KAAIgI,IAA0B,IAAzB,KAAEwM,EAAI,UAAEkS,GAAW1e,EACnD,MAAO,CACLwM,KAAMkS,EACNuP,aAAczhB,EACf,IAGGA,GAAO0hB,EAAAA,EAAAA,MAAKF,EAAWF,GAE7B,OAAIthB,EACK2hB,EAAkB3hB,EAAK4K,MAAM6W,cAG/B,IAAI,EAYAtZ,EAAkB+Y,IAC7B,MAAMI,EAAkBC,EAAUL,GAE5BM,EAAYhK,EAAWhsB,KAAI+Z,IAA0B,IAAzB,KAAEvF,EAAI,UAAEkS,GAAW3M,EACnD,MAAO,CACLvF,KAAMkS,EACNuP,aAAczhB,EACf,IAGGA,GAAO0hB,EAAAA,EAAAA,MAAKF,EAAWF,GAE7B,OAAIthB,EACKA,EAAKsH,OAGP,CAAC,CAAC,EAWE+R,EAAW6H,IACtB,MAAMI,EAAkBL,EAAaI,EAAWH,IAChD,GAAIF,EAAUlsB,IAAIwsB,GAChB,OAAON,EAAUhzB,IAAIszB,GAGvB,MAAMjT,GAAWD,EAAAA,EAAAA,GAAwB8S,GACzC,GAAI7S,EACF,OAAOgL,EAAShL,EAASc,QAG3B,IAAIyS,EAAY3N,EAAcqN,GAQ9B,OANKM,IACHA,EAAYL,EAAUL,IAGxBF,EAAUlyB,IAAIwyB,EAAiBM,GAExBA,CAAS,EAULL,EAAYL,IAGvB,IAAIU,EAFoBX,EAAaI,EAAWH,IAShD,MANkB,gBAAdU,IACFA,EAAY,KAGdA,EAAYD,EAAkBC,GAEvBA,CAAS,qCC5JlB12B,EAAQkD,YAAa,EACrBlD,EAAQ22B,uBAIR,SAAgC7oB,GAC9B,IAAKA,EAAiBnN,OACpB,OAEF,MAAMi2B,EAAkBvqB,SAAS+N,cAAc,0BACzCyc,EAAkBxqB,SAAS+N,cAAc,kDAC3Cwc,GACFA,EAAgBrgB,SAEdsgB,GACFA,EAAgBtgB,SAElB,MAAMugB,GAAW,EAAIC,EAAalpB,aAAaC,GACzCkpB,EAAU3qB,SAASgB,cAAc,UACvC2pB,EAAQhgB,QAAQigB,UAAY,GAC5BD,EAAQpd,WAAY,EAAIsd,EAAa5mB,kBAAkB,CACrDrC,QAAS6oB,IAEXzqB,SAASyO,KAAKzD,YAAY2f,EAC5B,EAtBA,IAAIE,EAAe,EAAQ,MACvBH,EAAe,EAAQ,yECF3B,MCgBA,SAActI,GAGb,OAFAA,EAAMA,GAAO1kB,OAAO4H,OAAO,MAEpB,CAQNwlB,GAAI,SAAY9xB,EAAc6kB,IAC5BuE,EAAIppB,KAAUopB,EAAIppB,GAAQ,KAAKkB,KAAK2jB,EACtC,EASAkN,IAAK,SAAa/xB,EAAc6kB,GAC3BuE,EAAIppB,IACPopB,EAAIppB,GAAMmW,OAAOiT,EAAIppB,GAAMrB,QAAQkmB,KAAa,EAAG,EAErD,EAUAvF,KAAM,SAActf,EAAcgyB,IAChC5I,EAAIppB,IAAS,IAAI2K,QAAQ1P,KAAI,SAAU4pB,GAAWA,EAAQmN,EAAM,KAChE5I,EAAI,MAAQ,IAAIze,QAAQ1P,KAAI,SAAU4pB,GAAWA,EAAQ7kB,EAAMgyB,EAAM,GACvE,EAEF,CD1DgBC,yBEFhB5wB,EAAO1G,QAAU,CAAC,CACZO,OAAQX,EAAQ,MAChBa,QAAS,CAAC,QAAU,GAAG,KAAO,WAAW,WAAa,WAAW,UAAY,IAAI,KAAO,6BAA6B,iBAAmB,UAAU,YAAc,UAAU,QAAU,aAAa,QAAS,EAAK,qBAAsB,EAAK,mBAAqB,QAAQ,YAAc,YAAY,iBAAkB,EAAK,YAAc,qCACtU,CACAF,OAAQX,EAAQ,MAChBa,QAAS,CAAC,QAAU,yECL1B,MAAMH,EAAM,IAAIkK,QAET,SAASyR,IACd,MAAMsb,EAAiB33B,EAAQ,MAY/B,MAAO,CAAEwN,OAVMA,CAACG,EAAW+mB,KACzB,IAAIkD,EAAOl3B,EAAIwC,IAAIwxB,GACdkD,GACHl3B,EAAIsD,IAAI0wB,EAAKkD,EAAOD,EAAeE,WAAWnD,IAEhDkD,EAAKpqB,OAAOG,EAAU,EAKPia,QAFDA,CAACja,EAAW+mB,IAAOiD,EAAeG,YAAYpD,EAAI/mB,GAGpE","sources":["webpack://marjoree-home/./.cache/api-runner-browser.js","webpack://marjoree-home/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://marjoree-home/./node_modules/invariant/browser.js","webpack://marjoree-home/./.cache/register-service-worker.js","webpack://marjoree-home/./.cache/create-content-digest-browser-shim.js","webpack://marjoree-home/./.cache/public-page-renderer-prod.js","webpack://marjoree-home/./.cache/slice/context.js","webpack://marjoree-home/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://marjoree-home/./.cache/public-page-renderer.js","webpack://marjoree-home/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://marjoree-home/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://marjoree-home/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://marjoree-home/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://marjoree-home/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://marjoree-home/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://marjoree-home/./.cache/slice/server-slice-renderer.js","webpack://marjoree-home/./.cache/slice/server-slice.js","webpack://marjoree-home/./.cache/slice/inline-slice.js","webpack://marjoree-home/./.cache/slice.js","webpack://marjoree-home/./.cache/gatsby-browser-entry.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://marjoree-home/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://marjoree-home/./.cache/head/components/fire-callback-in-effect.js","webpack://marjoree-home/./.cache/head/constants.js","webpack://marjoree-home/./.cache/head/utils.js","webpack://marjoree-home/./.cache/head/head-export-handler-for-browser.js","webpack://marjoree-home/./.cache/page-renderer.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://marjoree-home/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://marjoree-home/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://marjoree-home/./.cache/redirect-utils.js","webpack://marjoree-home/./.cache/route-announcer-props.js","webpack://marjoree-home/./.cache/navigation.js","webpack://marjoree-home/./node_modules/shallow-compare/es/index.js","webpack://marjoree-home/./.cache/ensure-resources.js","webpack://marjoree-home/./.cache/production-app.js","webpack://marjoree-home/./.cache/prefetch.js","webpack://marjoree-home/./.cache/loader.js","webpack://marjoree-home/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://marjoree-home/./node_modules/gatsby-react-router-scroll/index.js","webpack://marjoree-home/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://marjoree-home/./.cache/static-query.js","webpack://marjoree-home/./.cache/context-utils.js","webpack://marjoree-home/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://marjoree-home/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://marjoree-home/./node_modules/react-server-dom-webpack/index.js","webpack://marjoree-home/./.cache/strip-prefix.js","webpack://marjoree-home/./.cache/normalize-page-path.js","webpack://marjoree-home/./.cache/find-path.js","webpack://marjoree-home/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://marjoree-home/./.cache/emitter.js","webpack://marjoree-home/./node_modules/mitt/dist/mitt.es.js","webpack://marjoree-home/./.cache/api-runner-browser-plugins.js","webpack://marjoree-home/./.cache/react-dom-utils.js"],"sourcesContent":["const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n  require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n  // Hooks for gatsby-cypress's API handler\n  if (process.env.CYPRESS_SUPPORT) {\n    if (window.___apiHandler) {\n      window.___apiHandler(api)\n    } else if (window.___resolvedAPIs) {\n      window.___resolvedAPIs.push(api)\n    } else {\n      window.___resolvedAPIs = [api]\n    }\n  }\n\n  let results = plugins.map(plugin => {\n    if (!plugin.plugin[api]) {\n      return undefined\n    }\n\n    args.getResourceURLsForPathname = getResourceURLsForPathname\n    args.loadPage = loadPage\n    args.loadPageSync = loadPageSync\n\n    const result = plugin.plugin[api](args, plugin.options)\n    if (result && argTransform) {\n      args = argTransform({ args, result, plugin })\n    }\n    return result\n  })\n\n  // Filter out undefined results.\n  results = results.filter(result => typeof result !== `undefined`)\n\n  if (results.length > 0) {\n    return results\n  } else if (defaultReturn) {\n    return [defaultReturn]\n  } else {\n    return []\n  }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n  plugins.reduce(\n    (previous, next) =>\n      next.plugin[api]\n        ? previous.then(() => next.plugin[api](args, next.options))\n        : previous,\n    Promise.resolve()\n  )\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d<c.length;d++){var e=n.get(c[d]);if(null!==e)throw e;}c=__webpack_require__(b.id);b=\"*\"===b.name?c:\"\"===b.name?c.__esModule?c.default:c:c[b.name];a._status=3;return a._value=b;case 0:throw a;default:throw a._value;}}function x(){var a=y(this,0);return w(a)}function z(a,b){return new v(3,b,a)}\nfunction A(a){if(null!==a)for(var b=0;b<a.length;b++)(0,a[b])()}function C(a,b){if(0===a._status){var c=a._value;a._status=4;a._value=b;A(c)}}function D(a,b){a._chunks.forEach(function(a){C(a,b)})}function y(a,b){var c=a._chunks,d=c.get(b);d||(d=new v(0,null,a),c.set(b,d));return d}\nfunction E(a,b,c){switch(c[0]){case \"$\":if(\"$\"===c)return p;if(\"$\"===c[1]||\"@\"===c[1])return c.substring(1);b=parseInt(c.substring(1),16);a=y(a,b);return w(a);case \"@\":return b=parseInt(c.substring(1),16),a=y(a,b),{$$typeof:q,_payload:a,_init:w}}return c}function F(a){D(a,Error(\"Connection closed.\"))}\nfunction G(a,b){if(\"\"!==b){var c=b[0],d=b.indexOf(\":\",1),e=parseInt(b.substring(1,d),16);d=b.substring(d+1);switch(c){case \"J\":b=a._chunks;(c=b.get(e))?0===c._status&&(a=c._value,c._status=1,c._value=d,A(a)):b.set(e,new v(1,d,a));break;case \"M\":b=a._chunks;c=b.get(e);d=JSON.parse(d,a._fromJSON);var f=a._bundlerConfig;d=f?f[d.id][d.name]:d;f=d.chunks;for(var h=0;h<f.length;h++){var g=f[h];if(void 0===n.get(g)){var B=__webpack_chunk_load__(g),m=n.set.bind(n,g,null),J=n.set.bind(n,g);B.then(m,J);n.set(g,\nB)}}c?0===c._status&&(a=c._value,c._status=2,c._value=d,A(a)):b.set(e,new v(2,d,a));break;case \"P\":a._chunks.set(e,z(a,u(d).Provider));break;case \"S\":c=JSON.parse(d);a._chunks.set(e,z(a,Symbol.for(c)));break;case \"E\":b=JSON.parse(d);c=Error(b.message);c.stack=b.stack;b=a._chunks;(d=b.get(e))?C(d,c):b.set(e,new v(4,c,a));break;default:throw Error(\"Error parsing the data. It's probably an error code or network corruption.\");}}}\nfunction H(a){return function(b,c){return\"string\"===typeof c?E(a,this,c):\"object\"===typeof c&&null!==c?(b=c[0]===p?{$$typeof:p,type:c[1],key:c[2],ref:null,props:c[3],_owner:null}:c,b):c}}function I(a){var b=new TextDecoder,c=new Map;a={_bundlerConfig:a,_chunks:c,readRoot:x,_partialRow:\"\",_stringDecoder:b};a._fromJSON=H(a);return a}\nfunction K(a,b){function c(b){var h=b.value;if(b.done)F(a);else{b=h;h=a._stringDecoder;for(var g=b.indexOf(10);-1<g;){var f=a._partialRow;var m=b.subarray(0,g);m=h.decode(m);G(a,f+m);a._partialRow=\"\";b=b.subarray(g+1);g=b.indexOf(10)}a._partialRow+=h.decode(b,l);return e.read().then(c,d)}}function d(b){D(a,b)}var e=b.getReader();e.read().then(c,d)}exports.createFromFetch=function(a,b){var c=I(b&&b.moduleMap?b.moduleMap:null);a.then(function(a){K(c,a.body)},function(a){D(c,a)});return c};\nexports.createFromReadableStream=function(a,b){b=I(b&&b.moduleMap?b.moduleMap:null);K(b,a);return b};\nexports.createFromXHR=function(a,b){function c(){for(var b=a.responseText,c=f,d=b.indexOf(\"\\n\",c);-1<d;)c=e._partialRow+b.substring(c,d),G(e,c),e._partialRow=\"\",c=d+1,d=b.indexOf(\"\\n\",c);e._partialRow+=b.substring(c);f=b.length}function d(){D(e,new TypeError(\"Network error\"))}var e=I(b&&b.moduleMap?b.moduleMap:null),f=0;a.addEventListener(\"progress\",c);a.addEventListener(\"load\",function(){c();F(e)});a.addEventListener(\"error\",d);a.addEventListener(\"abort\",d);a.addEventListener(\"timeout\",d);return e};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n  window.location.protocol !== `https:` &&\n  window.location.hostname !== `localhost`\n) {\n  console.error(\n    `Service workers can only be used over HTTPS, or on localhost for development`\n  )\n} else if (`serviceWorker` in navigator) {\n  navigator.serviceWorker\n    .register(`${__BASE_PATH__}/sw.js`)\n    .then(function (reg) {\n      reg.addEventListener(`updatefound`, () => {\n        apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n        // The updatefound event implies that reg.installing is set; see\n        // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n        const installingWorker = reg.installing\n        console.log(`installingWorker`, installingWorker)\n        installingWorker.addEventListener(`statechange`, () => {\n          switch (installingWorker.state) {\n            case `installed`:\n              if (navigator.serviceWorker.controller) {\n                // At this point, the old content will have been purged and the fresh content will\n                // have been added to the cache.\n\n                // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n                window.___swUpdated = true\n                // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n                apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n                // If resources failed for the current page, reload.\n                if (window.___failedResources) {\n                  console.log(`resources failed, SW updated - reloading`)\n                  window.location.reload()\n                }\n              } else {\n                // At this point, everything has been precached.\n                // It's the perfect time to display a \"Content is cached for offline use.\" message.\n                console.log(`Content is now available offline!`)\n\n                // Post to service worker that install is complete.\n                // Delay to allow time for the event listener to be added --\n                // otherwise fetch is called too soon and resources aren't cached.\n                apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n              }\n              break\n\n            case `redundant`:\n              console.error(`The installing service worker became redundant.`)\n              apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n              break\n\n            case `activated`:\n              apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n              break\n          }\n        })\n      })\n    })\n    .catch(function (e) {\n      console.error(`Error during service worker registration:`, e)\n    })\n}\n","exports.createContentDigest = () => ``\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n  const pageResources = loader.loadPageSync(location.pathname)\n  if (!pageResources) {\n    return null\n  }\n  return React.createElement(InternalPageRenderer, {\n    location,\n    pageResources,\n    ...pageResources.json,\n  })\n}\n\nProdPageRenderer.propTypes = {\n  location: PropTypes.shape({\n    pathname: PropTypes.string.isRequired,\n  }).isRequired,\n}\n\nexport default ProdPageRenderer\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n  SlicesResultsContext,\n  SlicesContext,\n  SlicesMapContext,\n  SlicesPropsContext,\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n  if (process.env.NODE_ENV !== `development`) {\n    return;\n  }\n  (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n  // Clear scripts after we've used them to avoid leaky behavior\n  _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n  module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n  module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n  module.exports = () => null\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n  (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n  function ScrollHandler() {\n    var _this;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n    _this._stateStorage = new _sessionStorage.SessionStorage();\n    _this._isTicking = false;\n    _this._latestKnownScrollY = 0;\n    _this.scrollListener = function () {\n      _this._latestKnownScrollY = window.scrollY;\n      if (!_this._isTicking) {\n        _this._isTicking = true;\n        requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n      }\n    };\n    _this.windowScroll = function (position, prevProps) {\n      if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n        window.scrollTo(0, position);\n      }\n    };\n    _this.scrollToHash = function (hash, prevProps) {\n      var node = document.getElementById(hash.substring(1));\n      if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n        node.scrollIntoView();\n      }\n    };\n    _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n      var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n      if (!shouldUpdateScroll) {\n        return true;\n      }\n\n      // Hack to allow accessing this._stateStorage.\n      return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n    };\n    return _this;\n  }\n  var _proto = ScrollHandler.prototype;\n  _proto._saveScroll = function _saveScroll() {\n    var key = this.props.location.key || null;\n    if (key) {\n      this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n    }\n    this._isTicking = false;\n  };\n  _proto.componentDidMount = function componentDidMount() {\n    window.addEventListener(\"scroll\", this.scrollListener);\n    var scrollPosition;\n    var _this$props$location = this.props.location,\n      key = _this$props$location.key,\n      hash = _this$props$location.hash;\n    if (key) {\n      scrollPosition = this._stateStorage.read(this.props.location, key);\n    }\n\n    /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n     * from an external website) then scroll to the hash instead of any previously stored scroll\n     * position. */\n    if (hash) {\n      this.scrollToHash(decodeURI(hash), undefined);\n    } else if (scrollPosition) {\n      this.windowScroll(scrollPosition, undefined);\n    }\n  };\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    window.removeEventListener(\"scroll\", this.scrollListener);\n  };\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var _this$props$location2 = this.props.location,\n      hash = _this$props$location2.hash,\n      key = _this$props$location2.key;\n    var scrollPosition;\n    if (key) {\n      scrollPosition = this._stateStorage.read(this.props.location, key);\n    }\n\n    /**  There are two pieces of state: the browser url and\n     * history state which keeps track of scroll position\n     * Native behaviour prescribes that we ought to restore scroll position\n     * when a user navigates back in their browser (this is the `POP` action)\n     * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n     * So we _always_ stick to the url as a source of truth — if the url\n     * contains a hash, we scroll to it\n     */\n\n    if (hash) {\n      this.scrollToHash(decodeURI(hash), prevProps);\n    } else {\n      this.windowScroll(scrollPosition, prevProps);\n    }\n  };\n  _proto.render = function render() {\n    return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n      value: this._stateStorage\n    }, this.props.children);\n  };\n  return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n  shouldUpdateScroll: _propTypes.default.func,\n  children: _propTypes.default.element.isRequired,\n  location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n  return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","function _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n  var location = (0, _reachRouter.useLocation)();\n  var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n  var ref = (0, _react.useRef)(null);\n  (0, _react.useLayoutEffect)(function () {\n    if (ref.current) {\n      var position = state.read(location, identifier);\n      ref.current.scrollTo(0, position || 0);\n    }\n  }, [location.key]);\n  return {\n    ref: ref,\n    onScroll: function onScroll() {\n      if (ref.current) {\n        state.save(location, identifier, ref.current.scrollTop);\n      }\n    }\n  };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n  function SessionStorage() {}\n  var _proto = SessionStorage.prototype;\n  _proto.read = function read(location, key) {\n    var stateKey = this.getStateKey(location, key);\n    try {\n      var value = window.sessionStorage.getItem(stateKey);\n      return value ? JSON.parse(value) : 0;\n    } catch (e) {\n      if (process.env.NODE_ENV !== \"production\") {\n        console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n      }\n      if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n        return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n      }\n      return 0;\n    }\n  };\n  _proto.save = function save(location, key, value) {\n    var stateKey = this.getStateKey(location, key);\n    var storedValue = JSON.stringify(value);\n    try {\n      window.sessionStorage.setItem(stateKey, storedValue);\n    } catch (e) {\n      if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n        window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n      } else {\n        window[GATSBY_ROUTER_SCROLL_STATE] = {};\n        window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n      }\n      if (process.env.NODE_ENV !== \"production\") {\n        console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n      }\n    }\n  };\n  _proto.getStateKey = function getStateKey(location, key) {\n    var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n    return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n  };\n  return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n  const defaultFilename = `manifest.webmanifest`;\n  if (!Array.isArray(localizedManifests)) {\n    return defaultFilename;\n  }\n  const localizedManifest = localizedManifests.find(app => {\n    let startUrl = app.start_url;\n    if (shouldPrependPathPrefix) {\n      startUrl = (0, _gatsby.withPrefix)(startUrl);\n    }\n    return pathname.startsWith(startUrl);\n  });\n  if (!localizedManifest) {\n    return defaultFilename;\n  }\n  return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n<s.length;n++)(r=e.createElement(\\\"script\\\")).innerHTML=s[n].innerHTML,e.head.appendChild(r);c&&c.parentNode.removeChild(c)}function w(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\\\".\\\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\\\"push\\\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\\\"complete\\\"==e.readyState?u():(t.addEventListener(\\\"DOMContentLoaded\\\",u),t.addEventListener(\\\"load\\\",u))}(window,document,navigator,top,window.crossOriginIsolated);\";\n\nconst createSnippet = (config, snippetCode) => {\n    const { forward = [], ...filteredConfig } = config || {};\n    const configStr = JSON.stringify(filteredConfig, (k, v) => {\n        if (typeof v === 'function') {\n            v = String(v);\n            if (v.startsWith(k + '(')) {\n                v = 'function ' + v;\n            }\n        }\n        return v;\n    });\n    return [\n        `!(function(w,p,f,c){`,\n        Object.keys(filteredConfig).length > 0\n            ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n            : `c=w[p]=w[p]||{};`,\n        `c[f]=(c[f]||[])`,\n        forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n        `})(window,'partytown','forward');`,\n        snippetCode,\n    ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `<script>` from executing on the main thread.\n * 2. Is used as a selector so the Partytown library can find all scripts to execute in a web worker.\n *\n * @public\n */\nconst SCRIPT_TYPE = `text/partytown`;\n\n/**\n * Function that returns the Partytown snippet as a string, which can be\n * used as the innerHTML of the inlined Partytown script in the head.\n *\n * @public\n */\nconst partytownSnippet = (config) => createSnippet(config, PartytownSnippet);\n\nexports.SCRIPT_TYPE = SCRIPT_TYPE;\nexports.partytownSnippet = partytownSnippet;\n","function _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n  var r = \"function\" == typeof Map ? new Map() : void 0;\n  return _wrapNativeSuper = function _wrapNativeSuper(t) {\n    if (null === t || !isNativeFunction(t)) return t;\n    if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n    if (void 0 !== r) {\n      if (r.has(t)) return r.get(t);\n      r.set(t, Wrapper);\n    }\n    function Wrapper() {\n      return construct(t, arguments, getPrototypeOf(this).constructor);\n    }\n    return Wrapper.prototype = Object.create(t.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: !1,\n        writable: !0,\n        configurable: !0\n      }\n    }), setPrototypeOf(Wrapper, t);\n  }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n  try {\n    return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n  } catch (n) {\n    return \"function\" == typeof t;\n  }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n  if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n  var o = [null];\n  o.push.apply(o, e);\n  var p = new (t.bind.apply(t, o))();\n  return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n  const contents = [\n    React.createElement(`slice-start`, {\n      id: `${sliceId}-1`,\n    }),\n    React.createElement(`slice-end`, {\n      id: `${sliceId}-1`,\n    }),\n  ]\n\n  if (children) {\n    // if children exist, we split the slice into a before and after piece\n    // see renderSlices in render-html\n    contents.push(children)\n    contents.push(\n      React.createElement(`slice-start`, {\n        id: `${sliceId}-2`,\n      }),\n      React.createElement(`slice-end`, {\n        id: `${sliceId}-2`,\n      })\n    )\n  }\n\n  return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n  if (!Object.keys(sliceProps).length) {\n    return sliceName\n  }\n\n  const propsString = createContentDigest(sliceProps)\n  return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n  sliceName,\n  allowEmpty,\n  children,\n  ...sliceProps\n}) => {\n  const slicesMap = useContext(SlicesMapContext)\n  const slicesProps = useContext(SlicesPropsContext)\n  const concreteSliceName = slicesMap[sliceName]\n\n  if (!concreteSliceName) {\n    if (allowEmpty) {\n      return null\n    } else {\n      throw new Error(\n        `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n      )\n    }\n  }\n\n  const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n  // set props on context object for static-entry to return\n  let sliceUsage = slicesProps[sliceId]\n  if (!sliceUsage) {\n    slicesProps[sliceId] = sliceUsage = {\n      props: sliceProps,\n      sliceName: concreteSliceName,\n      hasChildren: !!children,\n    }\n  } else {\n    if (children) {\n      sliceUsage.hasChildren = true\n    }\n  }\n\n  return <ServerSliceRenderer sliceId={sliceId}>{children}</ServerSliceRenderer>\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n  sliceName,\n  allowEmpty,\n  children,\n  ...sliceProps\n}) => {\n  const slicesMap = useContext(SlicesMapContext)\n  const slicesResultsMap = useContext(SlicesResultsContext)\n  const concreteSliceName = slicesMap[sliceName]\n  const slice = slicesResultsMap.get(concreteSliceName)\n\n  if (!slice) {\n    if (allowEmpty) {\n      return null\n    } else {\n      throw new Error(\n        `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n      )\n    }\n  }\n\n  return (\n    <slice.component\n      sliceContext={slice.sliceContext}\n      data={slice.data}\n      {...sliceProps}\n    >\n      {children}\n    </slice.component>\n  )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n  if (process.env.GATSBY_SLICES) {\n    // we use sliceName internally, so remap alias to sliceName\n    const internalProps = {\n      ...props,\n      sliceName: props.alias,\n    }\n    delete internalProps.alias\n    delete internalProps.__renderedByLocation\n\n    const slicesContext = useContext(SlicesContext)\n\n    // validate props\n    const propErrors = validateSliceProps(props)\n    if (Object.keys(propErrors).length) {\n      throw new SlicePropsError(\n        slicesContext.renderEnvironment === `browser`,\n        internalProps.sliceName,\n        propErrors,\n        props.__renderedByLocation\n      )\n    }\n\n    if (slicesContext.renderEnvironment === `server`) {\n      return <ServerSlice {...internalProps} />\n    } else if (slicesContext.renderEnvironment === `browser`) {\n      // in the browser, we'll just render the component as is\n      return <InlineSlice {...internalProps} />\n    } else if (\n      slicesContext.renderEnvironment === `engines` ||\n      slicesContext.renderEnvironment === `dev-ssr`\n    ) {\n      // if we're in SSR, we'll just render the component as is\n      return <InlineSlice {...internalProps} />\n    } else if (slicesContext.renderEnvironment === `slices`) {\n      // we are not yet supporting nested slices\n\n      let additionalContextMessage = ``\n\n      // just in case generating additional contextual information fails, we still want the base message to show\n      // and not show another cryptic error message\n      try {\n        additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render <Slice alias=\"${props.alias}\"/>`\n      } catch {\n        // don't need to handle it, we will just skip the additional context message if we fail to generate it\n      }\n\n      throw new Error(\n        `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n      )\n    } else {\n      throw new Error(\n        `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n      )\n    }\n  } else {\n    throw new Error(`Slices are disabled.`)\n  }\n}\n\nclass SlicePropsError extends Error {\n  constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n    const errors = Object.entries(propErrors)\n      .map(\n        ([key, value]) =>\n          `not serializable \"${value}\" type passed to \"${key}\" prop`\n      )\n      .join(`, `)\n\n    const name = `SlicePropsError`\n    let stack = ``\n    let message = ``\n\n    if (inBrowser) {\n      // They're just (kinda) kidding, I promise... You can still work here <3\n      //   https://www.gatsbyjs.com/careers/\n      const fullStack =\n        React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n      // remove the first line of the stack trace\n      const stackLines = fullStack.trim().split(`\\n`).slice(1)\n      stackLines[0] = stackLines[0].trim()\n      stack = `\\n` + stackLines.join(`\\n`)\n\n      message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n    } else {\n      // we can't really grab any extra info outside of the browser, so just print what we can\n      message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n      const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n      stack = `${message}\\n${stackLines.join(`\\n`)}`\n    }\n\n    super(message)\n    this.name = name\n    if (stack) {\n      this.stack = stack\n    } else {\n      Error.captureStackTrace(this, SlicePropsError)\n    }\n\n    if (renderedByLocation) {\n      this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n    }\n  }\n}\n\nconst validateSliceProps = (\n  props,\n  errors = {},\n  seenObjects = [],\n  path = null\n) => {\n  // recursively validate all props\n  for (const [name, value] of Object.entries(props)) {\n    if (\n      value === undefined ||\n      value === null ||\n      (!path && name === `children`)\n    ) {\n      continue\n    }\n\n    const propPath = path ? `${path}.${name}` : name\n\n    if (typeof value === `function`) {\n      errors[propPath] = typeof value\n    } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n      seenObjects.push(value)\n      validateSliceProps(value, errors, seenObjects, propPath)\n    }\n  }\n\n  return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n  throw new Error(\n    `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n      `are supposed to only be evaluated at compile time, and then compiled away. ` +\n      `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n      `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n  )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n  Link,\n  withPrefix,\n  withAssetPrefix,\n  navigate,\n  parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","function _interopRequireDefault(e) {\n  return e && e.__esModule ? e : {\n    \"default\": e\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use client\"\nimport t,{useEffect as e}from\"react\";import{Location as n,useLocation as r}from\"@gatsbyjs/reach-router\";function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},o.apply(this,arguments)}const a=new Map,l={get:t=>a.get(t)||[],set(t,e){const n=a.get(t)||[];n.push(e),a.set(t,n)},delete(t){a.delete(t)}},s=\"undefined\"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(t){const e=Date.now();return setTimeout(function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})},1)};var c;!function(t){t.postHydrate=\"post-hydrate\",t.idle=\"idle\",t.offMainThread=\"off-main-thread\"}(c||(c={}));const i=new Set([\"src\",\"strategy\",\"dangerouslySetInnerHTML\",\"children\",\"onLoad\",\"onError\"]),u=new Set,d=new Map;function f(e){/*#__PURE__*/return t.createElement(n,null,()=>/*#__PURE__*/t.createElement(p,e))}function p(n){const{src:a,strategy:i=c.postHydrate}=n||{},{pathname:u}=r();if(e(()=>{let t;switch(i){case c.postHydrate:t=y(n);break;case c.idle:s(()=>{t=y(n)});break;case c.offMainThread:{const t=b(n);l.set(u,t)}}return()=>{const{script:e,loadCallback:n,errorCallback:r}=t||{};n&&(null==e||e.removeEventListener(\"load\",n)),r&&(null==e||e.removeEventListener(\"error\",r)),null==e||e.remove()}},[]),i===c.offMainThread){const e=m(n),r=b(n);return\"undefined\"==typeof window&&l.set(u,r),/*#__PURE__*/t.createElement(\"script\",e?o({type:\"text/partytown\",\"data-strategy\":i,crossOrigin:\"anonymous\"},r,{dangerouslySetInnerHTML:{__html:m(n)}}):o({type:\"text/partytown\",src:h(a),\"data-strategy\":i,crossOrigin:\"anonymous\"},r))}return null}function y(t){const{id:e,src:n,strategy:r=c.postHydrate,onLoad:a,onError:l}=t||{},s=e||n,i=[\"load\",\"error\"],f={load:a,error:l};if(s){for(const t of i)if(null!=f&&f[t]){var p;const e=d.get(s)||{},{callbacks:n=[]}=(null==e?void 0:e[t])||{};var y,h;n.push(null==f?void 0:f[t]),null!=e&&null!=(p=e[t])&&p.event?null==f||null==(y=f[t])||y.call(f,null==e||null==(h=e[t])?void 0:h.event):d.set(s,o({},e,{[t]:{callbacks:n}}))}if(u.has(s))return null}const v=m(t),k=b(t),w=document.createElement(\"script\");e&&(w.id=e),w.dataset.strategy=r;for(const[t,e]of Object.entries(k))w.setAttribute(t,e);v&&(w.textContent=v),n&&(w.src=n);const C={};if(s){for(const t of i){const e=e=>g(e,s,t);w.addEventListener(t,e),C[`${t}Callback`]=e}u.add(s)}return document.body.appendChild(w),{script:w,loadCallback:C.loadCallback,errorCallback:C.errorCallback}}function m(t){const{dangerouslySetInnerHTML:e,children:n=\"\"}=t||{},{__html:r=\"\"}=e||{};return r||n}function b(t){const e={};for(const[n,r]of Object.entries(t))i.has(n)||(e[n]=r);return e}function h(t){if(t)return`/__third-party-proxy?url=${encodeURIComponent(t)}`}function g(t,e,n){const r=d.get(e)||{};for(const e of(null==r||null==(o=r[n])?void 0:o.callbacks)||[]){var o;e(t)}d.set(e,{[n]:{event:t}})}export{f as Script,c as ScriptStrategy,l as collectedScriptsByPage,u as scriptCache,d as scriptCallbackCache};\n//# sourceMappingURL=index.modern.mjs.map\n","function _setPrototypeOf(t, e) {\n  return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n  useEffect(() => {\n    callback()\n  })\n\n  return children\n}\n","export const VALID_NODE_NAMES = [\n  `link`,\n  `meta`,\n  `style`,\n  `title`,\n  `base`,\n  `noscript`,\n  `script`,\n  `html`,\n  `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n  return {\n    location: {\n      pathname: input.location.pathname,\n    },\n    params: input.params,\n    data: input.data || {},\n    serverData: input.serverData,\n    pageContext: input.pageContext,\n  }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n  if (typeof head !== `function`)\n    throw new Error(\n      `Expected \"Head\" export to be a function got \"${typeof head}\".`\n    )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n  const warnings = new Set()\n  warnOnce = msg => {\n    if (!warnings.has(msg)) {\n      console.warn(msg)\n    }\n    warnings.add(msg)\n  }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n  if (process.env.NODE_ENV !== `production`) {\n    const warning = createWarningForInvalidTag(tagName)\n    warnOnce(warning)\n  }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n  return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n    `, `\n  )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n  if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n    const nonce = newTag.getAttribute(`nonce`)\n    // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n    // be stripped if there is no content security policy response header that includes a nonce.\n    if (nonce && !oldTag.getAttribute(`nonce`)) {\n      const cloneTag = newTag.cloneNode(true)\n      cloneTag.setAttribute(`nonce`, ``)\n      cloneTag.nonce = nonce\n      return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n    }\n  }\n\n  return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n  for (const existingHeadElement of oldNodes) {\n    const indexInNewNodes = newNodes.findIndex(e =>\n      isEqualNode(e, existingHeadElement)\n    )\n\n    if (indexInNewNodes === -1) {\n      onStale(existingHeadElement)\n    } else {\n      // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n      newNodes.splice(indexInNewNodes, 1)\n    }\n  }\n\n  // remaing new nodes didn't have matching old node, so need to be added\n  for (const newNode of newNodes) {\n    onNew(newNode)\n  }\n}\n\nexport function getValidHeadNodesAndAttributes(\n  rootNode,\n  htmlAndBodyAttributes = {\n    html: {},\n    body: {},\n  }\n) {\n  const seenIds = new Map()\n  const validHeadNodes = []\n\n  // Filter out non-element nodes before looping since we don't care about them\n  for (const node of rootNode.childNodes) {\n    const nodeName = node.nodeName.toLowerCase()\n    const id = node.attributes?.id?.value\n\n    if (!isElementType(node)) continue\n\n    if (isValidNodeName(nodeName)) {\n      // <html> and <body> tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n      if (nodeName === `html` || nodeName === `body`) {\n        for (const attribute of node.attributes) {\n          const isStyleAttribute = attribute.name === `style`\n\n          // Merge attributes for same nodeName from previous loop iteration\n          htmlAndBodyAttributes[nodeName] = {\n            ...htmlAndBodyAttributes[nodeName],\n          }\n\n          if (!isStyleAttribute) {\n            htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n          }\n\n          // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n          if (isStyleAttribute) {\n            htmlAndBodyAttributes[nodeName].style = `${\n              htmlAndBodyAttributes[nodeName]?.style\n                ? htmlAndBodyAttributes[nodeName].style\n                : ``\n            }${attribute.value} `\n          }\n        }\n      } else {\n        let clonedNode = node.cloneNode(true)\n        clonedNode.setAttribute(`data-gatsby-head`, true)\n\n        // // This is hack to make script tags work\n        if (clonedNode.nodeName.toLowerCase() === `script`) {\n          clonedNode = massageScript(clonedNode)\n        }\n        // Duplicate ids are not allowed in the head, so we need to dedupe them\n        if (id) {\n          if (!seenIds.has(id)) {\n            validHeadNodes.push(clonedNode)\n            seenIds.set(id, validHeadNodes.length - 1)\n          } else {\n            const indexOfPreviouslyInsertedNode = seenIds.get(id)\n            validHeadNodes[\n              indexOfPreviouslyInsertedNode\n            ].parentNode?.removeChild(\n              validHeadNodes[indexOfPreviouslyInsertedNode]\n            )\n            validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n          }\n        } else {\n          validHeadNodes.push(clonedNode)\n        }\n      }\n    } else {\n      warnForInvalidTag(nodeName)\n    }\n\n    if (node.childNodes.length) {\n      validHeadNodes.push(\n        ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n          .validHeadNodes\n      )\n    }\n  }\n\n  return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n  const script = document.createElement(`script`)\n  for (const attr of node.attributes) {\n    script.setAttribute(attr.name, attr.value)\n  }\n  script.innerHTML = node.innerHTML\n\n  return script\n}\n\nexport function isValidNodeName(nodeName) {\n  return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n  return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n  const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n  for (const node of prevHeadNodes) {\n    node.parentNode.removeChild(node)\n  }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n  if (!htmlAndBodyAttributes) return\n\n  const { html, body } = htmlAndBodyAttributes\n\n  const htmlElement = document.querySelector(`html`)\n  if (htmlElement) {\n    Object.entries(html).forEach(([attributeName, attributeValue]) => {\n      htmlElement.setAttribute(attributeName, attributeValue)\n    })\n  }\n\n  const bodyElement = document.querySelector(`body`)\n  if (bodyElement) {\n    Object.entries(body).forEach(([attributeName, attributeValue]) => {\n      bodyElement.setAttribute(attributeName, attributeValue)\n    })\n  }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n  if (!htmlAndBodyattributeList) return\n\n  const { html, body } = htmlAndBodyattributeList\n\n  if (html) {\n    const htmlElement = document.querySelector(`html`)\n    html.forEach(attributeName => {\n      if (htmlElement) {\n        htmlElement.removeAttribute(attributeName)\n      }\n    })\n  }\n\n  if (body) {\n    const bodyElement = document.querySelector(`body`)\n    body.forEach(attributeName => {\n      if (bodyElement) {\n        bodyElement.removeAttribute(attributeName)\n      }\n    })\n  }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n  headExportValidator,\n  filterHeadProps,\n  diffNodes,\n  getValidHeadNodesAndAttributes,\n  removePrevHeadElements,\n  applyHtmlAndBodyAttributes,\n  removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n  html: [],\n  body: [],\n}\n\nconst onHeadRendered = () => {\n  const { validHeadNodes, htmlAndBodyAttributes } =\n    getValidHeadNodesAndAttributes(hiddenRoot)\n\n  keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n  keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n  applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n  /**\n   * The rest of the code block below is a diffing mechanism to ensure that\n   * the head elements aren't duplicted on every re-render.\n   */\n  const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n  if (existingHeadElements.length === 0) {\n    document.head.append(...validHeadNodes)\n    return\n  }\n\n  const newHeadNodes = []\n  diffNodes({\n    oldNodes: existingHeadElements,\n    newNodes: validHeadNodes,\n    onStale: node => node.parentNode.removeChild(node),\n    onNew: node => newHeadNodes.push(node),\n  })\n\n  document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n  // sigh ... <html> and <body> elements are not valid descedents of <div> (our hidden element)\n  // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n  // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n  // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n  // instead we continue to render to <div>, and just silence warnings for <html> and <body> elements\n  // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n  const originalConsoleError = console.error.bind(console)\n  console.error = (...args) => {\n    if (\n      Array.isArray(args) &&\n      args.length >= 2 &&\n      args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n      (args[1] === `<html>` || args[1] === `<body>`)\n    ) {\n      return undefined\n    }\n    return originalConsoleError(...args)\n  }\n\n  /* We set up observer to be able to regenerate <head> after react-refresh\n     updates our hidden element.\n  */\n  const observer = new MutationObserver(onHeadRendered)\n  observer.observe(hiddenRoot, {\n    attributes: true,\n    childList: true,\n    characterData: true,\n    subtree: true,\n  })\n}\n\nexport function headHandlerForBrowser({\n  pageComponent,\n  staticQueryResults,\n  pageComponentProps,\n}) {\n  useEffect(() => {\n    if (pageComponent?.Head) {\n      headExportValidator(pageComponent.Head)\n\n      const { render } = reactDOMUtils()\n\n      const HeadElement = (\n        <pageComponent.Head {...filterHeadProps(pageComponentProps)} />\n      )\n\n      const WrapHeadElement = apiRunner(\n        `wrapRootElement`,\n        { element: HeadElement },\n        HeadElement,\n        ({ result }) => {\n          return { element: result }\n        }\n      ).pop()\n\n      render(\n        // just a hack to call the callback after react has done first render\n        // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n        // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n        <FireCallbackInEffect callback={onHeadRendered}>\n          <StaticQueryContext.Provider value={staticQueryResults}>\n            <LocationProvider>{WrapHeadElement}</LocationProvider>\n          </StaticQueryContext.Provider>\n        </FireCallbackInEffect>,\n        hiddenRoot\n      )\n    }\n\n    return () => {\n      removePrevHeadElements()\n      removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n    }\n  })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n  const pageComponentProps = {\n    ...props,\n    params: {\n      ...grabMatchParams(props.location.pathname),\n      ...props.pageResources.json.pageContext.__params,\n    },\n  }\n\n  const preferDefault = m => (m && m.default) || m\n\n  let pageElement\n  if (props.pageResources.partialHydration) {\n    pageElement = props.pageResources.partialHydration\n  } else {\n    pageElement = createElement(preferDefault(props.pageResources.component), {\n      ...pageComponentProps,\n      key: props.path || props.pageResources.page.path,\n    })\n  }\n\n  const pageComponent = props.pageResources.head\n\n  headHandlerForBrowser({\n    pageComponent,\n    staticQueryResults: props.pageResources.staticQueryResults,\n    pageComponentProps,\n  })\n\n  const wrappedPage = apiRunner(\n    `wrapPageElement`,\n    {\n      element: pageElement,\n      props: pageComponentProps,\n    },\n    pageElement,\n    ({ result }) => {\n      return { element: result, props: pageComponentProps }\n    }\n  ).pop()\n\n  return wrappedPage\n}\n\nPageRenderer.propTypes = {\n  location: PropTypes.object.isRequired,\n  pageResources: PropTypes.object.isRequired,\n  data: PropTypes.object,\n  pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n  for (const suffix of suffixes) {\n    if (input.endsWith(suffix)) return true;\n  }\n  return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n  if (input === `/`) return input;\n  const hasTrailingSlash = input.endsWith(`/`);\n  if (endsWithSuffixes(suffixes, input)) {\n    return input;\n  }\n  if (option === `always`) {\n    return hasTrailingSlash ? input : `${input}/`;\n  }\n  if (option === `never`) {\n    return hasTrailingSlash ? input.slice(0, -1) : input;\n  }\n  return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","import*as e from\"react\";import t from\"react\";import r from\"prop-types\";import n from\"invariant\";function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function a(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}const s=e=>{const{search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c}=e.location;let{pathname:l}=e.location;return!l&&n&&u&&(l=new URL(n).pathname),{pathname:encodeURI(decodeURI(l)),search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c,state:e.history.state,key:e.history.state&&e.history.state.key||\"initial\"}},i=(e,t)=>{let r=[],n=s(e),a=!1,i=()=>{};return{get location(){return n},get transitioning(){return a},_onTransitionComplete(){a=!1,i()},listen(t){r.push(t);const o=()=>{n=s(e),t({location:n,action:\"POP\"})};return e.addEventListener(\"popstate\",o),()=>{e.removeEventListener(\"popstate\",o),r=r.filter(e=>e!==t)}},navigate(t,{state:c,replace:u=!1}={}){if(\"number\"==typeof t)e.history.go(t);else{c=o({},c,{key:Date.now()+\"\"});try{a||u?e.history.replaceState(c,null,t):e.history.pushState(c,null,t)}catch(r){e.location[u?\"replace\":\"assign\"](t)}}n=s(e),a=!0;const l=new Promise(e=>i=e);return r.forEach(e=>e({location:n,action:\"PUSH\"})),l}}},c=(e=\"/\")=>{const t=e.indexOf(\"?\"),r={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):\"\"};let n=0;const o=[r],a=[null];return{get location(){return o[n]},addEventListener(e,t){},removeEventListener(e,t){},history:{get entries(){return o},get index(){return n},get state(){return a[n]},pushState(e,t,r){const[s,i=\"\"]=r.split(\"?\");n++,o.push({pathname:s,search:i.length?`?${i}`:i}),a.push(e)},replaceState(e,t,r){const[s,i=\"\"]=r.split(\"?\");o[n]={pathname:s,search:i},a[n]=e},go(e){const t=n+e;t<0||t>a.length-1||(n=t)}}}},u=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),l=i(u?window:c()),{navigate:p}=l;function h(e,r){return t.createServerContext?((e,r=null)=>(globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[e]||(globalThis.__SERVER_CONTEXT[e]=t.createServerContext(e,r)),globalThis.__SERVER_CONTEXT[e]))(e,r):t.createContext(r)}const m=h(\"Base\",{baseuri:\"/\",basepath:\"/\"}),d=h(\"Location\"),f=()=>e.useContext(m),y=()=>e.useContext(d);function E(e){this.uri=e}const g=e=>e instanceof E,v=e=>{throw new E(e)};function b(t){const{to:r,replace:n=!0,state:o,noThrow:a,baseuri:s}=t;e.useEffect(()=>{Promise.resolve().then(()=>{const e=k(r,s);p(P(e,t),{replace:n,state:o})})},[]);const i=k(r,s);return a||v(P(i,t)),null}const R=t=>{const r=y(),{baseuri:n}=f();/*#__PURE__*/return e.createElement(b,o({},r,{baseuri:n},t))};R.propTypes={from:r.string,to:r.string.isRequired};const C=(e,t)=>e.substr(0,t.length)===t,w=(e,t)=>{let r,o;const[a]=t.split(\"?\"),s=N(a),i=\"\"===s[0],c=j(e);for(let e=0,a=c.length;e<a;e++){let a=!1;const u=c[e].route;if(u.default){o={route:u,params:{},uri:t};continue}const l=N(u.path),p={},h=Math.max(s.length,l.length);let m=0;for(;m<h;m++){const e=l[m],t=s[m];if($(e)){p[e.slice(1)||\"*\"]=s.slice(m).map(decodeURIComponent).join(\"/\");break}if(void 0===t){a=!0;break}const r=O.exec(e);if(r&&!i){const e=-1===U.indexOf(r[1]);n(e,`<Router> dynamic segment \"${r[1]}\" is a reserved name. Please use a different name in path \"${u.path}\".`);const o=decodeURIComponent(t);p[r[1]]=o}else if(e!==t){a=!0;break}}if(!a){r={route:u,params:p,uri:\"/\"+s.slice(0,m).join(\"/\")};break}}return r||o||null},x=(e,t)=>w([{path:e}],t),k=(e,t)=>{if(C(e,\"/\"))return e;const[r,n]=e.split(\"?\"),[o]=t.split(\"?\"),a=N(r),s=N(o);if(\"\"===a[0])return L(o,n);if(!C(a[0],\".\")){const e=s.concat(a).join(\"/\");return L((\"/\"===o?\"\":\"/\")+e,n)}const i=s.concat(a),c=[];for(let e=0,t=i.length;e<t;e++){const t=i[e];\"..\"===t?c.pop():\".\"!==t&&c.push(t)}return L(\"/\"+c.join(\"/\"),n)},P=(e,t)=>{const[r,n=\"\"]=e.split(\"?\");let o=\"/\"+N(r).map(e=>{const r=O.exec(e);return r?t[r[1]]:e}).join(\"/\");const{location:{search:a=\"\"}={}}=t,s=a.split(\"?\")[1]||\"\";return o=L(o,n,s),o},T=(e,t)=>{const r=e=>_(e);return N(e).filter(r).sort().join(\"/\")===N(t).filter(r).sort().join(\"/\")},O=/^:(.+)/,_=e=>O.test(e),$=e=>e&&\"*\"===e[0],S=(e,t)=>({route:e,score:e.default?0:N(e.path).reduce((e,t)=>(e+=4,(e=>\"\"===e)(t)?e+=1:_(t)?e+=2:$(t)?e-=5:e+=3,e),0),index:t}),j=e=>e.map(S).sort((e,t)=>e.score<t.score?1:e.score>t.score?-1:e.index-t.index),N=e=>e.replace(/(^\\/+|\\/+$)/g,\"\").split(\"/\"),L=(e,...t)=>e+((t=t.filter(e=>e&&e.length>0))&&t.length>0?`?${t.join(\"&\")}`:\"\"),U=[\"uri\",\"path\"],D=(e,t)=>{const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(r=>t.hasOwnProperty(r)&&e[r]===t[r])},M=e=>e.replace(/(^\\/+|\\/+$)/g,\"\"),I=t=>r=>{if(!r)return null;if(r.type===e.Fragment&&r.props.children)return e.Children.map(r.props.children,I(t));if(n(r.props.path||r.props.default||r.type===R,`<Router>: Children of <Router> must have a \\`path\\` or \\`default\\` prop, or be a \\`<Redirect>\\`. None found on element type \\`${r.type}\\``),n(!!(r.type!==R||r.props.from&&r.props.to),`<Redirect from=\"${r.props.from}\" to=\"${r.props.to}\"/> requires both \"from\" and \"to\" props when inside a <Router>.`),n(!(r.type===R&&!T(r.props.from,r.props.to)),`<Redirect from=\"${r.props.from} to=\"${r.props.to}\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`),r.props.default)return{value:r,default:!0};const o=r.type===R?r.props.from:r.props.path,a=\"/\"===o?t:`${M(t)}/${M(o)}`;return{value:r,default:r.props.default,path:r.props.children?`${M(a)}/*`:a}},V=[\"innerRef\"],q=[\"to\",\"state\",\"replace\",\"getProps\"],X=[\"key\"];let{forwardRef:B}=e;void 0===B&&(B=e=>e);const K=()=>{},A=B((t,r)=>{let{innerRef:n}=t,s=a(t,V);const{baseuri:i}=f(),{location:c}=y(),{to:u,state:l,replace:h,getProps:m=K}=s,d=a(s,q),E=k(u,i),g=encodeURI(E),v=c.pathname===g,b=C(c.pathname,g);/*#__PURE__*/return e.createElement(\"a\",o({ref:r||n,\"aria-current\":v?\"page\":void 0},d,m({isCurrent:v,isPartiallyCurrent:b,href:E,location:c}),{href:E,onClick:e=>{if(d.onClick&&d.onClick(e),(e=>!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(e)){e.preventDefault();let t=h;if(\"boolean\"!=typeof h&&v){const e=a(o({},c.state),X);t=D(o({},l),e)}p(E,{state:l,replace:t})}}}))});A.displayName=\"Link\",A.propTypes={to:r.string.isRequired};class F extends e.Component{constructor(...e){super(...e),this.displayName=\"ReactUseErrorBoundary\"}componentDidCatch(...e){this.setState({}),this.props.onError(...e)}render(){return this.props.children}}const W=e.createContext({componentDidCatch:{current:void 0},error:void 0,setError:()=>!1});function H({children:t}){const[r,n]=e.useState(),o=e.useRef(),a=e.useMemo(()=>({componentDidCatch:o,error:r,setError:n}),[r]);/*#__PURE__*/return e.createElement(W.Provider,{value:a},/*#__PURE__*/e.createElement(F,{error:r,onError:(e,t)=>{n(e),null==o.current||o.current(e,t)}},t))}H.displayName=\"ReactUseErrorBoundaryContext\";const z=function(t){var r,n;function a(r){/*#__PURE__*/return e.createElement(H,null,/*#__PURE__*/e.createElement(t,o({key:\"WrappedComponent\"},r)))}return a.displayName=`WithErrorBoundary(${null!=(r=null!=(n=t.displayName)?n:t.name)?r:\"Component\"})`,a}(({history:t=l,children:r})=>{const{location:n}=t,[o,a]=e.useState({location:n}),[s]=function(t){const r=e.useContext(W);r.componentDidCatch.current=void 0;const n=e.useCallback(()=>{r.setError(void 0)},[]);return[r.error,n]}();if(e.useEffect(()=>{t._onTransitionComplete()},[o.location]),e.useEffect(()=>{let e=!1;const r=t.listen(({location:t})=>{Promise.resolve().then(()=>{requestAnimationFrame(()=>{e||a({location:t})})})});return()=>{e=!0,r()}},[]),s){if(!g(s))throw s;p(s.uri,{replace:!0})}/*#__PURE__*/return e.createElement(d.Provider,{value:o},\"function\"==typeof r?r(o):r||null)}),G=({children:t})=>{const r=y();return r?t(r):/*#__PURE__*/e.createElement(z,null,t)},J=({url:t,children:r})=>{const n=t.indexOf(\"?\");let o,a=\"\";return n>-1?(o=t.substring(0,n),a=t.substring(n)):o=t,/*#__PURE__*/e.createElement(d.Provider,{value:{location:{pathname:o,search:a,hash:\"\"}}},r)},Q=({path:e,children:t})=>{const{baseuri:r}=f(),{location:n}=y(),a=k(e,r),s=x(a,n.pathname);return t({location:n,match:s?o({},s.params,{uri:s.uri,path:e}):null})},Y=[\"uri\",\"location\",\"component\"],Z=[\"children\",\"style\",\"component\",\"uri\",\"location\"],ee=t=>{let{uri:r,location:n,component:s}=t,i=a(t,Y);/*#__PURE__*/return e.createElement(re,o({},i,{component:s,uri:r,location:n}))};let te=0;const re=t=>{let{children:r,style:n,component:s=\"div\",uri:i,location:c}=t,u=a(t,Z);const l=e.useRef(),p=e.useRef(!0),h=e.useRef(i),m=e.useRef(c.pathname),d=e.useRef(!1);e.useEffect(()=>(te++,f(),()=>{te--,0===te&&(p.current=!0)}),[]),e.useEffect(()=>{let e=!1,t=!1;i!==h.current&&(h.current=i,e=!0),c.pathname!==m.current&&(m.current=c.pathname,t=!0),d.current=e||t&&c.pathname===i,d.current&&f()},[i,c]);const f=e.useCallback(()=>{var e;\"test\"!==process.env.NODE_ENV&&(p.current?p.current=!1:(e=l.current,d.current&&e&&e.focus()))},[]);/*#__PURE__*/return e.createElement(s,o({style:o({outline:\"none\"},n),tabIndex:\"-1\",ref:l},u),r)},ne=[\"location\",\"primary\",\"children\",\"basepath\",\"baseuri\",\"component\"],oe=t=>{const r=f(),n=y();/*#__PURE__*/return e.createElement(ae,o({},r,n,t))};function ae(t){const{location:r,primary:n=!0,children:s,basepath:i,component:c=\"div\"}=t,u=a(t,ne),l=e.Children.toArray(s).reduce((e,t)=>{const r=I(i)(t);return e.concat(r)},[]),{pathname:p}=r,h=w(l,p);if(h){const{params:t,uri:a,route:s,route:{value:l}}=h,p=s.default?i:s.path.replace(/\\*$/,\"\"),d=o({},t,{uri:a,location:r}),f=e.cloneElement(l,d,l.props.children?/*#__PURE__*/e.createElement(oe,{location:r,primary:n},l.props.children):void 0),y=n?ee:c,E=n?o({uri:a,location:r,component:c},u):u;/*#__PURE__*/return e.createElement(m.Provider,{value:{baseuri:a,basepath:p}},/*#__PURE__*/e.createElement(y,E,f))}return null}const se=()=>{const e=y();if(!e)throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");return e.location},ie=()=>{throw new Error(\"useNavigate is removed. Use import { navigate } from 'gatsby' instead\")},ce=()=>{const e=f();if(!e)throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");const t=se(),r=x(e.basepath,t.pathname);return r?r.params:null},ue=e=>{if(!e)throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");const t=f();if(!t)throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");const r=se(),n=k(e,t.baseuri),a=x(n,r.pathname);return a?o({},a.params,{uri:a.uri,path:e}):null};export{m as BaseContext,A as Link,G as Location,d as LocationContext,z as LocationProvider,Q as Match,R as Redirect,oe as Router,J as ServerLocation,i as createHistory,c as createMemorySource,l as globalHistory,P as insertParams,g as isRedirect,x as match,p as navigate,w as pick,v as redirectTo,k as resolve,D as shallowCompare,C as startsWith,f as useBaseContext,se as useLocation,y as useLocationContext,ue as useMatch,ie as useNavigate,ce as useParams,T as validateRedirect};\n//# sourceMappingURL=index.modern.mjs.map\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n  if (redirect.ignoreCase) {\n    redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n  } else {\n    redirectMap.set(redirect.fromPath, redirect)\n  }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n  let redirect = redirectMap.get(pathname)\n  if (!redirect) {\n    redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n  }\n  return redirect\n}\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n  id: `gatsby-announcer`,\n  style: {\n    position: `absolute`,\n    top: 0,\n    width: 1,\n    height: 1,\n    padding: 0,\n    overflow: `hidden`,\n    clip: `rect(0, 0, 0, 0)`,\n    whiteSpace: `nowrap`,\n    border: 0,\n  },\n  \"aria-live\": `assertive`,\n  \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n  navigate as reachNavigate,\n  globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n  const redirect = maybeGetBrowserRedirect(pathname)\n  const { hash, search } = window.location\n\n  if (redirect != null) {\n    window.___replace(redirect.toPath + search + hash)\n    return true\n  } else {\n    return false\n  }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n  if (/loading chunk \\d* failed./i.test(event.reason)) {\n    if (nextRoute) {\n      window.location.pathname = nextRoute\n    }\n  }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n  if (!maybeRedirect(location.pathname)) {\n    nextRoute = location.pathname\n    apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n  }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n  if (!maybeRedirect(location.pathname)) {\n    apiRunner(`onRouteUpdate`, { location, prevLocation })\n    if (\n      process.env.GATSBY_QUERY_ON_DEMAND &&\n      process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n    ) {\n      emitter.emit(`onRouteUpdate`, { location, prevLocation })\n    }\n  }\n}\n\nconst navigate = (to, options = {}) => {\n  // Support forward/backward navigation with numbers\n  // navigate(-2) (jumps back 2 history steps)\n  // navigate(2)  (jumps forward 2 history steps)\n  if (typeof to === `number`) {\n    globalHistory.navigate(to)\n    return\n  }\n\n  const { pathname, search, hash } = parsePath(to)\n  const redirect = maybeGetBrowserRedirect(pathname)\n\n  // If we're redirecting, just replace the passed in pathname\n  // to the one we want to redirect to.\n  if (redirect) {\n    to = redirect.toPath + search + hash\n  }\n\n  // If we had a service worker update, no matter the path, reload window and\n  // reset the pathname whitelist\n  if (window.___swUpdated) {\n    window.location = pathname + search + hash\n    return\n  }\n\n  // Start a timer to wait for a second before transitioning and showing a\n  // loader in case resources aren't around yet.\n  const timeoutId = setTimeout(() => {\n    emitter.emit(`onDelayedLoadPageResources`, { pathname })\n    apiRunner(`onRouteUpdateDelayed`, {\n      location: window.location,\n    })\n  }, 1000)\n\n  loader.loadPage(pathname + search).then(pageResources => {\n    // If no page resources, then refresh the page\n    // Do this, rather than simply `window.location.reload()`, so that\n    // pressing the back/forward buttons work - otherwise when pressing\n    // back, the browser will just change the URL and expect JS to handle\n    // the change, which won't always work since it might not be a Gatsby\n    // page.\n    if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n      window.history.replaceState({}, ``, location.href)\n      window.location = pathname\n      clearTimeout(timeoutId)\n      return\n    }\n\n    // If the loaded page has a different compilation hash to the\n    // window, then a rebuild has occurred on the server. Reload.\n    if (process.env.NODE_ENV === `production` && pageResources) {\n      if (\n        pageResources.page.webpackCompilationHash !==\n        window.___webpackCompilationHash\n      ) {\n        // Purge plugin-offline cache\n        if (\n          `serviceWorker` in navigator &&\n          navigator.serviceWorker.controller !== null &&\n          navigator.serviceWorker.controller.state === `activated`\n        ) {\n          navigator.serviceWorker.controller.postMessage({\n            gatsbyApi: `clearPathResources`,\n          })\n        }\n\n        window.location = pathname + search + hash\n      }\n    }\n    reachNavigate(to, options)\n    clearTimeout(timeoutId)\n  })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n  const { pathname, hash } = location\n  const results = apiRunner(`shouldUpdateScroll`, {\n    prevRouterProps,\n    // `pathname` for backwards compatibility\n    pathname,\n    routerProps: { location },\n    getSavedScrollPosition: args => [\n      0,\n      // FIXME this is actually a big code smell, we should fix this\n      // eslint-disable-next-line @babel/no-invalid-this\n      this._stateStorage.read(args, args.key),\n    ],\n  })\n  if (results.length > 0) {\n    // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n    // @see https://github.com/gatsbyjs/gatsby/issues/12038\n    return results[results.length - 1]\n  }\n\n  if (prevRouterProps) {\n    const {\n      location: { pathname: oldPathname },\n    } = prevRouterProps\n    if (oldPathname === pathname) {\n      // Scroll to element if it exists, if it doesn't, or no hash is provided,\n      // scroll to top.\n      return hash ? decodeURI(hash.slice(1)) : [0, 0]\n    }\n  }\n  return true\n}\n\nfunction init() {\n  // The \"scroll-behavior\" package expects the \"action\" to be on the location\n  // object so let's copy it over.\n  globalHistory.listen(args => {\n    args.location.action = args.action\n  })\n\n  window.___push = to => navigate(to, { replace: false })\n  window.___replace = to => navigate(to, { replace: true })\n  window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n  constructor(props) {\n    super(props)\n    this.announcementRef = React.createRef()\n  }\n\n  componentDidUpdate(prevProps, nextProps) {\n    requestAnimationFrame(() => {\n      let pageName = `new page at ${this.props.location.pathname}`\n      if (document.title) {\n        pageName = document.title\n      }\n      const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n      if (pageHeadings && pageHeadings.length) {\n        pageName = pageHeadings[0].textContent\n      }\n      const newAnnouncement = `Navigated to ${pageName}`\n      if (this.announcementRef.current) {\n        const oldAnnouncement = this.announcementRef.current.innerText\n        if (oldAnnouncement !== newAnnouncement) {\n          this.announcementRef.current.innerText = newAnnouncement\n        }\n      }\n    })\n  }\n\n  render() {\n    return <div {...RouteAnnouncerProps} ref={this.announcementRef}></div>\n  }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n  if (prevLocation.href !== nextLocation.href) {\n    return true\n  }\n\n  if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n    return true\n  }\n\n  return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n  constructor(props) {\n    super(props)\n    onPreRouteUpdate(props.location, null)\n  }\n\n  componentDidMount() {\n    onRouteUpdate(this.props.location, null)\n  }\n\n  shouldComponentUpdate(nextProps) {\n    if (compareLocationProps(this.props.location, nextProps.location)) {\n      onPreRouteUpdate(nextProps.location, this.props.location)\n      return true\n    }\n    return false\n  }\n\n  componentDidUpdate(prevProps) {\n    if (compareLocationProps(prevProps.location, this.props.location)) {\n      onRouteUpdate(this.props.location, prevProps.location)\n    }\n  }\n\n  render() {\n    return (\n      <React.Fragment>\n        {this.props.children}\n        <RouteAnnouncer location={location} />\n      </React.Fragment>\n    )\n  }\n}\n\nRouteUpdates.propTypes = {\n  location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n  for (var i in a) {\n    if (!(i in b)) return true;\n  }for (var _i in b) {\n    if (a[_i] !== b[_i]) return true;\n  }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n  return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n  constructor(props) {\n    super()\n    const { location, pageResources } = props\n    this.state = {\n      location: { ...location },\n      pageResources:\n        pageResources ||\n        loader.loadPageSync(location.pathname + location.search, {\n          withErrorDetails: true,\n        }),\n    }\n  }\n\n  static getDerivedStateFromProps({ location }, prevState) {\n    if (prevState.location.href !== location.href) {\n      const pageResources = loader.loadPageSync(\n        location.pathname + location.search,\n        {\n          withErrorDetails: true,\n        }\n      )\n\n      return {\n        pageResources,\n        location: { ...location },\n      }\n    }\n\n    return {\n      location: { ...location },\n    }\n  }\n\n  loadResources(rawPath) {\n    loader.loadPage(rawPath).then(pageResources => {\n      if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n        this.setState({\n          location: { ...window.location },\n          pageResources,\n        })\n      } else {\n        window.history.replaceState({}, ``, location.href)\n        window.location = rawPath\n      }\n    })\n  }\n\n  shouldComponentUpdate(nextProps, nextState) {\n    // Always return false if we're missing resources.\n    if (!nextState.pageResources) {\n      this.loadResources(\n        nextProps.location.pathname + nextProps.location.search\n      )\n      return false\n    }\n\n    if (\n      process.env.BUILD_STAGE === `develop` &&\n      nextState.pageResources.stale\n    ) {\n      this.loadResources(\n        nextProps.location.pathname + nextProps.location.search\n      )\n      return false\n    }\n\n    // Check if the component or json have changed.\n    if (this.state.pageResources !== nextState.pageResources) {\n      return true\n    }\n    if (\n      this.state.pageResources.component !== nextState.pageResources.component\n    ) {\n      return true\n    }\n\n    if (this.state.pageResources.json !== nextState.pageResources.json) {\n      return true\n    }\n    // Check if location has changed on a page using internal routing\n    // via matchPath configuration.\n    if (\n      this.state.location.key !== nextState.location.key &&\n      nextState.pageResources.page &&\n      (nextState.pageResources.page.matchPath ||\n        nextState.pageResources.page.path)\n    ) {\n      return true\n    }\n    return shallowCompare(this, nextProps, nextState)\n  }\n\n  render() {\n    if (\n      process.env.NODE_ENV !== `production` &&\n      (!this.state.pageResources ||\n        this.state.pageResources.status === PageResourceStatus.Error)\n    ) {\n      const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n      if (this.state.pageResources?.error) {\n        console.error(message)\n        throw this.state.pageResources.error\n      }\n\n      throw new Error(message)\n    }\n\n    return this.props.children(this.state)\n  }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n  SlicesMapContext,\n  SlicesContext,\n  SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n  shouldUpdateScroll,\n  init as navigationInit,\n  RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n  setLoader,\n  ProdLoader,\n  publicLoader,\n  PageResourceStatus,\n  getStaticQueryResults,\n  getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n  // Let plugins register a service worker. The plugin just needs\n  // to return true.\n  if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n    require(`./register-service-worker`)\n  }\n\n  // In gatsby v2 if Router is used in page using matchPaths\n  // paths need to contain full path.\n  // For example:\n  //   - page have `/app/*` matchPath\n  //   - inside template user needs to use `/app/xyz` as path\n  // Resetting `basepath`/`baseuri` keeps current behaviour\n  // to not introduce breaking change.\n  // Remove this in v3\n  const RouteHandler = props => (\n    <BaseContext.Provider\n      value={{\n        baseuri: `/`,\n        basepath: `/`,\n      }}\n    >\n      <PageRenderer {...props} />\n    </BaseContext.Provider>\n  )\n\n  const DataContext = React.createContext({})\n\n  const slicesContext = {\n    renderEnvironment: `browser`,\n  }\n\n  class GatsbyRoot extends React.Component {\n    render() {\n      const { children } = this.props\n      return (\n        <Location>\n          {({ location }) => (\n            <EnsureResources location={location}>\n              {({ pageResources, location }) => {\n                const staticQueryResults = getStaticQueryResults()\n                const sliceResults = getSliceResults()\n\n                return (\n                  <StaticQueryContext.Provider value={staticQueryResults}>\n                    <SlicesContext.Provider value={slicesContext}>\n                      <SlicesResultsContext.Provider value={sliceResults}>\n                        <SlicesMapContext.Provider\n                          value={pageResources.page.slicesMap}\n                        >\n                          <DataContext.Provider\n                            value={{ pageResources, location }}\n                          >\n                            {children}\n                          </DataContext.Provider>\n                        </SlicesMapContext.Provider>\n                      </SlicesResultsContext.Provider>\n                    </SlicesContext.Provider>\n                  </StaticQueryContext.Provider>\n                )\n              }}\n            </EnsureResources>\n          )}\n        </Location>\n      )\n    }\n  }\n\n  class LocationHandler extends React.Component {\n    render() {\n      return (\n        <DataContext.Consumer>\n          {({ pageResources, location }) => (\n            <RouteUpdates location={location}>\n              <ScrollContext\n                location={location}\n                shouldUpdateScroll={shouldUpdateScroll}\n              >\n                <Router\n                  basepath={__BASE_PATH__}\n                  location={location}\n                  id=\"gatsby-focus-wrapper\"\n                >\n                  <RouteHandler\n                    path={\n                      pageResources.page.path === `/404.html` ||\n                      pageResources.page.path === `/500.html`\n                        ? stripPrefix(location.pathname, __BASE_PATH__)\n                        : encodeURI(\n                            (\n                              pageResources.page.matchPath ||\n                              pageResources.page.path\n                            ).split(`?`)[0]\n                          )\n                    }\n                    {...this.props}\n                    location={location}\n                    pageResources={pageResources}\n                    {...pageResources.json}\n                  />\n                </Router>\n              </ScrollContext>\n            </RouteUpdates>\n          )}\n        </DataContext.Consumer>\n      )\n    }\n  }\n\n  const { pagePath, location: browserLoc } = window\n\n  // Explicitly call navigate if the canonical path (window.pagePath)\n  // is different to the browser path (window.location.pathname). SSR\n  // page paths might include search params, while SSG and DSG won't.\n  // If page path include search params we also compare query params.\n  // But only if NONE of the following conditions hold:\n  //\n  // - The url matches a client side route (page.matchPath)\n  // - it's a 404 page\n  // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n  if (\n    pagePath &&\n    __BASE_PATH__ + pagePath !==\n      browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n    !(\n      loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n      pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n      pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n    )\n  ) {\n    navigate(\n      __BASE_PATH__ +\n        pagePath +\n        (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n        browserLoc.hash,\n      {\n        replace: true,\n      }\n    )\n  }\n\n  // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n  const getSessionStorage = () => {\n    try {\n      return sessionStorage\n    } catch {\n      return null\n    }\n  }\n\n  publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n    const sessionStorage = getSessionStorage()\n\n    if (\n      page?.page?.webpackCompilationHash &&\n      page.page.webpackCompilationHash !== window.___webpackCompilationHash\n    ) {\n      // Purge plugin-offline cache\n      if (\n        `serviceWorker` in navigator &&\n        navigator.serviceWorker.controller !== null &&\n        navigator.serviceWorker.controller.state === `activated`\n      ) {\n        navigator.serviceWorker.controller.postMessage({\n          gatsbyApi: `clearPathResources`,\n        })\n      }\n\n      // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n      // with our data (coming from `app-data.json` file). This can cause issues such as\n      // errors trying to load static queries (as list of static queries is inside `page-data`\n      // which might not match to currently loaded `.js` scripts).\n      // We are making attempt to reload if hashes don't match, but we also have to handle case\n      // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n      if (sessionStorage) {\n        const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n        if (!isReloaded) {\n          sessionStorage.setItem(reloadStorageKey, `1`)\n          window.location.reload(true)\n          return\n        }\n      }\n    }\n\n    if (sessionStorage) {\n      sessionStorage.removeItem(reloadStorageKey)\n    }\n\n    if (!page || page.status === PageResourceStatus.Error) {\n      const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n      // if the chunk throws an error we want to capture the real error\n      // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n      if (page && page.error) {\n        console.error(message)\n        throw page.error\n      }\n\n      throw new Error(message)\n    }\n\n    const SiteRoot = apiRunner(\n      `wrapRootElement`,\n      { element: <LocationHandler /> },\n      <LocationHandler />,\n      ({ result }) => {\n        return { element: result }\n      }\n    ).pop()\n\n    const App = function App() {\n      const onClientEntryRanRef = React.useRef(false)\n\n      React.useEffect(() => {\n        if (!onClientEntryRanRef.current) {\n          onClientEntryRanRef.current = true\n          if (performance.mark) {\n            performance.mark(`onInitialClientRender`)\n          }\n\n          apiRunner(`onInitialClientRender`)\n        }\n      }, [])\n\n      return <GatsbyRoot>{SiteRoot}</GatsbyRoot>\n    }\n\n    const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n    // Client only pages have any empty body so we just do a normal\n    // render to avoid React complaining about hydration mis-matches.\n    let defaultRenderer = render\n    if (focusEl && focusEl.children.length) {\n      defaultRenderer = hydrate\n    }\n\n    const renderer = apiRunner(\n      `replaceHydrateFunction`,\n      undefined,\n      defaultRenderer\n    )[0]\n\n    function runRender() {\n      const rootElement =\n        typeof window !== `undefined`\n          ? document.getElementById(`___gatsby`)\n          : null\n\n      renderer(<App />, rootElement)\n    }\n\n    // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n    // TODO remove IE 10 support\n    const doc = document\n    if (\n      doc.readyState === `complete` ||\n      (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n    ) {\n      setTimeout(function () {\n        runRender()\n      }, 0)\n    } else {\n      const handler = function () {\n        doc.removeEventListener(`DOMContentLoaded`, handler, false)\n        window.removeEventListener(`load`, handler, false)\n\n        runRender()\n      }\n\n      doc.addEventListener(`DOMContentLoaded`, handler, false)\n      window.addEventListener(`load`, handler, false)\n    }\n\n    return\n  })\n})\n","const support = function (feature) {\n  if (typeof document === `undefined`) {\n    return false\n  }\n  const fakeLink = document.createElement(`link`)\n  try {\n    if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n      return fakeLink.relList.supports(feature)\n    }\n  } catch (err) {\n    return false\n  }\n  return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n  return new Promise((resolve, reject) => {\n    if (typeof document === `undefined`) {\n      reject()\n      return\n    }\n\n    const link = document.createElement(`link`)\n    link.setAttribute(`rel`, `prefetch`)\n    link.setAttribute(`href`, url)\n\n    Object.keys(options).forEach(key => {\n      link.setAttribute(key, options[key])\n    })\n\n    link.onload = resolve\n    link.onerror = reject\n\n    const parentElement =\n      document.getElementsByTagName(`head`)[0] ||\n      document.getElementsByName(`script`)[0].parentNode\n    parentElement.appendChild(link)\n  })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n  return new Promise((resolve, reject) => {\n    const req = new XMLHttpRequest()\n    req.open(`GET`, url, true)\n\n    req.onload = () => {\n      if (req.status === 200) {\n        resolve()\n      } else {\n        reject()\n      }\n    }\n\n    req.send(null)\n  })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n  ? linkPrefetchStrategy\n  : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n  return new Promise(resolve => {\n    if (preFetched[url]) {\n      resolve()\n      return\n    }\n\n    supportedPrefetchStrategy(url, options)\n      .then(() => {\n        resolve()\n        preFetched[url] = true\n      })\n      .catch(() => {}) // 404s are logged to the console anyway\n  })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n  /**\n   * At least one of critical resources failed to load\n   */\n  Error: `error`,\n  /**\n   * Resources loaded successfully\n   */\n  Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n  s = s[0] === `/` ? s.slice(1) : s\n  s = s.endsWith(`/`) ? s.slice(0, -1) : s\n  return s\n}\n\nconst createPageDataUrl = rawPath => {\n  const [path, maybeSearch] = rawPath.split(`?`)\n  const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n  return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n    maybeSearch ? `?${maybeSearch}` : ``\n  }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n  return new Promise(resolve => {\n    const req = new XMLHttpRequest()\n    req.open(method, url, true)\n    req.onreadystatechange = () => {\n      if (req.readyState == 4) {\n        resolve(req)\n      }\n    }\n    req.send(null)\n  })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n  if (\n    `connection` in navigator &&\n    typeof navigator.connection !== `undefined`\n  ) {\n    if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n      return false\n    }\n    if (navigator.connection.saveData) {\n      return false\n    }\n  }\n  return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n  const page = {\n    componentChunkName: pageData.componentChunkName,\n    path: pageData.path,\n    webpackCompilationHash: pageData.webpackCompilationHash,\n    matchPath: pageData.matchPath,\n    staticQueryHashes: pageData.staticQueryHashes,\n    getServerDataError: pageData.getServerDataError,\n    slicesMap: pageData.slicesMap ?? {},\n  }\n\n  return {\n    component,\n    head,\n    json: pageData.result,\n    page,\n  }\n}\n\nfunction waitForResponse(response) {\n  return new Promise(resolve => {\n    try {\n      const result = response.readRoot()\n      resolve(result)\n    } catch (err) {\n      if (\n        Object.hasOwnProperty.call(err, `_response`) &&\n        Object.hasOwnProperty.call(err, `_status`)\n      ) {\n        setTimeout(() => {\n          waitForResponse(response).then(resolve)\n        }, 200)\n      } else {\n        throw err\n      }\n    }\n  })\n}\n\nexport class BaseLoader {\n  constructor(loadComponent, matchPaths) {\n    // Map of pagePath -> Page. Where Page is an object with: {\n    //   status: PageResourceStatus.Success || PageResourceStatus.Error,\n    //   payload: PageResources, // undefined if PageResourceStatus.Error\n    // }\n    // PageResources is {\n    //   component,\n    //   json: pageData.result,\n    //   page: {\n    //     componentChunkName,\n    //     path,\n    //     webpackCompilationHash,\n    //     staticQueryHashes\n    //   },\n    //   staticQueryResults\n    // }\n    this.pageDb = new Map()\n    this.inFlightDb = new Map()\n    this.staticQueryDb = {}\n    this.pageDataDb = new Map()\n    this.partialHydrationDb = new Map()\n    this.slicesDataDb = new Map()\n    this.sliceInflightDb = new Map()\n    this.slicesDb = new Map()\n    this.isPrefetchQueueRunning = false\n    this.prefetchQueued = []\n    this.prefetchTriggered = new Set()\n    this.prefetchCompleted = new Set()\n    this.loadComponent = loadComponent\n    setMatchPaths(matchPaths)\n  }\n\n  inFlightNetworkRequests = new Map()\n\n  memoizedGet(url) {\n    let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n    if (!inFlightPromise) {\n      inFlightPromise = doFetch(url, `GET`)\n      this.inFlightNetworkRequests.set(url, inFlightPromise)\n    }\n\n    // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n    return inFlightPromise\n      .then(response => {\n        this.inFlightNetworkRequests.delete(url)\n        return response\n      })\n      .catch(err => {\n        this.inFlightNetworkRequests.delete(url)\n        throw err\n      })\n  }\n\n  setApiRunner(apiRunner) {\n    this.apiRunner = apiRunner\n    this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n  }\n\n  fetchPageDataJson(loadObj) {\n    const { pagePath, retries = 0 } = loadObj\n    const url = createPageDataUrl(pagePath)\n    return this.memoizedGet(url).then(req => {\n      const { status, responseText } = req\n\n      // Handle 200\n      if (status === 200) {\n        try {\n          const jsonPayload = JSON.parse(responseText)\n          if (jsonPayload.path === undefined) {\n            throw new Error(`not a valid pageData response`)\n          }\n\n          const maybeSearch = pagePath.split(`?`)[1]\n          if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n            jsonPayload.path += `?${maybeSearch}`\n          }\n\n          return Object.assign(loadObj, {\n            status: PageResourceStatus.Success,\n            payload: jsonPayload,\n          })\n        } catch (err) {\n          // continue regardless of error\n        }\n      }\n\n      // Handle 404\n      if (status === 404 || status === 200) {\n        // If the request was for a 404/500 page and it doesn't exist, we're done\n        if (pagePath === `/404.html` || pagePath === `/500.html`) {\n          return Object.assign(loadObj, {\n            status: PageResourceStatus.Error,\n          })\n        }\n\n        // Need some code here to cache the 404 request. In case\n        // multiple loadPageDataJsons result in 404s\n        return this.fetchPageDataJson(\n          Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n        )\n      }\n\n      // handle 500 response (Unrecoverable)\n      if (status === 500) {\n        return this.fetchPageDataJson(\n          Object.assign(loadObj, {\n            pagePath: `/500.html`,\n            internalServerError: true,\n          })\n        )\n      }\n\n      // Handle everything else, including status === 0, and 503s. Should retry\n      if (retries < 3) {\n        return this.fetchPageDataJson(\n          Object.assign(loadObj, { retries: retries + 1 })\n        )\n      }\n\n      // Retried 3 times already, result is an error.\n      return Object.assign(loadObj, {\n        status: PageResourceStatus.Error,\n      })\n    })\n  }\n\n  fetchPartialHydrationJson(loadObj) {\n    const { pagePath, retries = 0 } = loadObj\n    const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n    return this.memoizedGet(url).then(req => {\n      const { status, responseText } = req\n\n      // Handle 200\n      if (status === 200) {\n        try {\n          return Object.assign(loadObj, {\n            status: PageResourceStatus.Success,\n            payload: responseText,\n          })\n        } catch (err) {\n          // continue regardless of error\n        }\n      }\n\n      // Handle 404\n      if (status === 404 || status === 200) {\n        // If the request was for a 404/500 page and it doesn't exist, we're done\n        if (pagePath === `/404.html` || pagePath === `/500.html`) {\n          return Object.assign(loadObj, {\n            status: PageResourceStatus.Error,\n          })\n        }\n\n        // Need some code here to cache the 404 request. In case\n        // multiple loadPageDataJsons result in 404s\n        return this.fetchPartialHydrationJson(\n          Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n        )\n      }\n\n      // handle 500 response (Unrecoverable)\n      if (status === 500) {\n        return this.fetchPartialHydrationJson(\n          Object.assign(loadObj, {\n            pagePath: `/500.html`,\n            internalServerError: true,\n          })\n        )\n      }\n\n      // Handle everything else, including status === 0, and 503s. Should retry\n      if (retries < 3) {\n        return this.fetchPartialHydrationJson(\n          Object.assign(loadObj, { retries: retries + 1 })\n        )\n      }\n\n      // Retried 3 times already, result is an error.\n      return Object.assign(loadObj, {\n        status: PageResourceStatus.Error,\n      })\n    })\n  }\n\n  loadPageDataJson(rawPath) {\n    const pagePath = findPath(rawPath)\n    if (this.pageDataDb.has(pagePath)) {\n      const pageData = this.pageDataDb.get(pagePath)\n      if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n        return Promise.resolve(pageData)\n      }\n    }\n\n    return this.fetchPageDataJson({ pagePath }).then(pageData => {\n      this.pageDataDb.set(pagePath, pageData)\n\n      return pageData\n    })\n  }\n\n  loadPartialHydrationJson(rawPath) {\n    const pagePath = findPath(rawPath)\n    if (this.partialHydrationDb.has(pagePath)) {\n      const pageData = this.partialHydrationDb.get(pagePath)\n      if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n        return Promise.resolve(pageData)\n      }\n    }\n\n    return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n      this.partialHydrationDb.set(pagePath, pageData)\n\n      return pageData\n    })\n  }\n\n  loadSliceDataJson(sliceName) {\n    if (this.slicesDataDb.has(sliceName)) {\n      const jsonPayload = this.slicesDataDb.get(sliceName)\n      return Promise.resolve({ sliceName, jsonPayload })\n    }\n\n    const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n    return doFetch(url, `GET`).then(res => {\n      const jsonPayload = JSON.parse(res.responseText)\n\n      this.slicesDataDb.set(sliceName, jsonPayload)\n      return { sliceName, jsonPayload }\n    })\n  }\n\n  findMatchPath(rawPath) {\n    return findMatchPath(rawPath)\n  }\n\n  // TODO check all uses of this and whether they use undefined for page resources not exist\n  loadPage(rawPath) {\n    const pagePath = findPath(rawPath)\n    if (this.pageDb.has(pagePath)) {\n      const page = this.pageDb.get(pagePath)\n      if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n        if (page.error) {\n          return Promise.resolve({\n            error: page.error,\n            status: page.status,\n          })\n        }\n\n        return Promise.resolve(page.payload)\n      }\n    }\n\n    if (this.inFlightDb.has(pagePath)) {\n      return this.inFlightDb.get(pagePath)\n    }\n\n    const loadDataPromises = [\n      this.loadAppData(),\n      this.loadPageDataJson(pagePath),\n    ]\n\n    if (global.hasPartialHydration) {\n      loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n    }\n\n    const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n      const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n      if (\n        pageDataResponse.status === PageResourceStatus.Error ||\n        rscDataResponse?.status === PageResourceStatus.Error\n      ) {\n        return {\n          status: PageResourceStatus.Error,\n        }\n      }\n\n      let pageData = pageDataResponse.payload\n\n      const {\n        componentChunkName,\n        staticQueryHashes: pageStaticQueryHashes = [],\n        slicesMap = {},\n      } = pageData\n\n      const finalResult = {}\n\n      const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n      const loadSlice = slice => {\n        if (this.slicesDb.has(slice.name)) {\n          return this.slicesDb.get(slice.name)\n        } else if (this.sliceInflightDb.has(slice.name)) {\n          return this.sliceInflightDb.get(slice.name)\n        }\n\n        const inFlight = this.loadComponent(slice.componentChunkName).then(\n          component => {\n            return {\n              component: preferDefault(component),\n              sliceContext: slice.result.sliceContext,\n              data: slice.result.data,\n            }\n          }\n        )\n\n        this.sliceInflightDb.set(slice.name, inFlight)\n        inFlight.then(results => {\n          this.slicesDb.set(slice.name, results)\n          this.sliceInflightDb.delete(slice.name)\n        })\n\n        return inFlight\n      }\n\n      return Promise.all(\n        dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n      ).then(slicesData => {\n        const slices = []\n        const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n        for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n          slices.push({ name: sliceName, ...jsonPayload })\n          for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n            if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n              dedupedStaticQueryHashes.push(staticQueryHash)\n            }\n          }\n        }\n\n        const loadChunkPromises = [\n          Promise.all(slices.map(loadSlice)),\n          this.loadComponent(componentChunkName, `head`),\n        ]\n\n        if (!global.hasPartialHydration) {\n          loadChunkPromises.push(this.loadComponent(componentChunkName))\n        }\n\n        // In develop we have separate chunks for template and Head components\n        // to enable HMR (fast refresh requires single exports).\n        // In production we have shared chunk with both exports. Double loadComponent here\n        // will be deduped by webpack runtime resulting in single request and single module\n        // being loaded for both `component` and `head`.\n        // get list of components to get\n        const componentChunkPromises = Promise.all(loadChunkPromises).then(\n          components => {\n            const [sliceComponents, headComponent, pageComponent] = components\n\n            finalResult.createdAt = new Date()\n\n            for (const sliceComponent of sliceComponents) {\n              if (!sliceComponent || sliceComponent instanceof Error) {\n                finalResult.status = PageResourceStatus.Error\n                finalResult.error = sliceComponent\n              }\n            }\n\n            if (\n              !global.hasPartialHydration &&\n              (!pageComponent || pageComponent instanceof Error)\n            ) {\n              finalResult.status = PageResourceStatus.Error\n              finalResult.error = pageComponent\n            }\n\n            let pageResources\n\n            if (finalResult.status !== PageResourceStatus.Error) {\n              finalResult.status = PageResourceStatus.Success\n              if (\n                pageDataResponse.notFound === true ||\n                rscDataResponse?.notFound === true\n              ) {\n                finalResult.notFound = true\n              }\n              pageData = Object.assign(pageData, {\n                webpackCompilationHash: appDataResponse\n                  ? appDataResponse.webpackCompilationHash\n                  : ``,\n              })\n\n              if (typeof rscDataResponse?.payload === `string`) {\n                pageResources = toPageResources(pageData, null, headComponent)\n\n                pageResources.partialHydration = rscDataResponse.payload\n\n                const readableStream = new ReadableStream({\n                  start(controller) {\n                    const te = new TextEncoder()\n                    controller.enqueue(te.encode(rscDataResponse.payload))\n                  },\n                  pull(controller) {\n                    // close on next read when queue is empty\n                    controller.close()\n                  },\n                  cancel() {},\n                })\n\n                return waitForResponse(\n                  createFromReadableStream(readableStream)\n                ).then(result => {\n                  pageResources.partialHydration = result\n\n                  return pageResources\n                })\n              } else {\n                pageResources = toPageResources(\n                  pageData,\n                  pageComponent,\n                  headComponent\n                )\n              }\n            }\n\n            // undefined if final result is an error\n            return pageResources\n          }\n        )\n\n        // get list of static queries to get\n        const staticQueryBatchPromise = Promise.all(\n          dedupedStaticQueryHashes.map(staticQueryHash => {\n            // Check for cache in case this static query result has already been loaded\n            if (this.staticQueryDb[staticQueryHash]) {\n              const jsonPayload = this.staticQueryDb[staticQueryHash]\n              return { staticQueryHash, jsonPayload }\n            }\n\n            return this.memoizedGet(\n              `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n            )\n              .then(req => {\n                const jsonPayload = JSON.parse(req.responseText)\n                return { staticQueryHash, jsonPayload }\n              })\n              .catch(() => {\n                throw new Error(\n                  `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n                )\n              })\n          })\n        ).then(staticQueryResults => {\n          const staticQueryResultsMap = {}\n\n          staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n            staticQueryResultsMap[staticQueryHash] = jsonPayload\n            this.staticQueryDb[staticQueryHash] = jsonPayload\n          })\n\n          return staticQueryResultsMap\n        })\n\n        return (\n          Promise.all([componentChunkPromises, staticQueryBatchPromise])\n            .then(([pageResources, staticQueryResults]) => {\n              let payload\n              if (pageResources) {\n                payload = { ...pageResources, staticQueryResults }\n                finalResult.payload = payload\n                emitter.emit(`onPostLoadPageResources`, {\n                  page: payload,\n                  pageResources: payload,\n                })\n              }\n\n              this.pageDb.set(pagePath, finalResult)\n\n              if (finalResult.error) {\n                return {\n                  error: finalResult.error,\n                  status: finalResult.status,\n                }\n              }\n\n              return payload\n            })\n            // when static-query fail to load we throw a better error\n            .catch(err => {\n              return {\n                error: err,\n                status: PageResourceStatus.Error,\n              }\n            })\n        )\n      })\n    })\n\n    inFlightPromise\n      .then(() => {\n        this.inFlightDb.delete(pagePath)\n      })\n      .catch(error => {\n        this.inFlightDb.delete(pagePath)\n        throw error\n      })\n\n    this.inFlightDb.set(pagePath, inFlightPromise)\n\n    return inFlightPromise\n  }\n\n  // returns undefined if the page does not exists in cache\n  loadPageSync(rawPath, options = {}) {\n    const pagePath = findPath(rawPath)\n    if (this.pageDb.has(pagePath)) {\n      const pageData = this.pageDb.get(pagePath)\n\n      if (pageData.payload) {\n        return pageData.payload\n      }\n\n      if (options?.withErrorDetails) {\n        return {\n          error: pageData.error,\n          status: pageData.status,\n        }\n      }\n    }\n    return undefined\n  }\n\n  shouldPrefetch(pagePath) {\n    // Skip prefetching if we know user is on slow or constrained connection\n    if (!doesConnectionSupportPrefetch()) {\n      return false\n    }\n\n    // Don't prefetch if this is a crawler bot\n    if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n      return false\n    }\n\n    // Check if the page exists.\n    if (this.pageDb.has(pagePath)) {\n      return false\n    }\n\n    return true\n  }\n\n  prefetch(pagePath) {\n    if (!this.shouldPrefetch(pagePath)) {\n      return {\n        then: resolve => resolve(false),\n        abort: () => {},\n      }\n    }\n    if (this.prefetchTriggered.has(pagePath)) {\n      return {\n        then: resolve => resolve(true),\n        abort: () => {},\n      }\n    }\n\n    const defer = {\n      resolve: null,\n      reject: null,\n      promise: null,\n    }\n    defer.promise = new Promise((resolve, reject) => {\n      defer.resolve = resolve\n      defer.reject = reject\n    })\n    this.prefetchQueued.push([pagePath, defer])\n    const abortC = new AbortController()\n    abortC.signal.addEventListener(`abort`, () => {\n      const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n      // remove from the queue\n      if (index !== -1) {\n        this.prefetchQueued.splice(index, 1)\n      }\n    })\n\n    if (!this.isPrefetchQueueRunning) {\n      this.isPrefetchQueueRunning = true\n      setTimeout(() => {\n        this._processNextPrefetchBatch()\n      }, 3000)\n    }\n\n    return {\n      then: (resolve, reject) => defer.promise.then(resolve, reject),\n      abort: abortC.abort.bind(abortC),\n    }\n  }\n\n  _processNextPrefetchBatch() {\n    const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n    idleCallback(() => {\n      const toPrefetch = this.prefetchQueued.splice(0, 4)\n      const prefetches = Promise.all(\n        toPrefetch.map(([pagePath, dPromise]) => {\n          // Tell plugins with custom prefetching logic that they should start\n          // prefetching this path.\n          if (!this.prefetchTriggered.has(pagePath)) {\n            this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n            this.prefetchTriggered.add(pagePath)\n          }\n\n          // If a plugin has disabled core prefetching, stop now.\n          if (this.prefetchDisabled) {\n            return dPromise.resolve(false)\n          }\n\n          return this.doPrefetch(findPath(pagePath)).then(() => {\n            if (!this.prefetchCompleted.has(pagePath)) {\n              this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n              this.prefetchCompleted.add(pagePath)\n            }\n\n            dPromise.resolve(true)\n          })\n        })\n      )\n\n      if (this.prefetchQueued.length) {\n        prefetches.then(() => {\n          setTimeout(() => {\n            this._processNextPrefetchBatch()\n          }, 3000)\n        })\n      } else {\n        this.isPrefetchQueueRunning = false\n      }\n    })\n  }\n\n  doPrefetch(pagePath) {\n    const pageDataUrl = createPageDataUrl(pagePath)\n\n    if (global.hasPartialHydration) {\n      return Promise.all([\n        prefetchHelper(pageDataUrl, {\n          crossOrigin: `anonymous`,\n          as: `fetch`,\n        }).then(() =>\n          // This was just prefetched, so will return a response from\n          // the cache instead of making another request to the server\n          this.loadPageDataJson(pagePath)\n        ),\n        prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n          crossOrigin: `anonymous`,\n          as: `fetch`,\n        }).then(() =>\n          // This was just prefetched, so will return a response from\n          // the cache instead of making another request to the server\n          this.loadPartialHydrationJson(pagePath)\n        ),\n      ])\n    } else {\n      return prefetchHelper(pageDataUrl, {\n        crossOrigin: `anonymous`,\n        as: `fetch`,\n      }).then(() =>\n        // This was just prefetched, so will return a response from\n        // the cache instead of making another request to the server\n        this.loadPageDataJson(pagePath)\n      )\n    }\n  }\n\n  hovering(rawPath) {\n    this.loadPage(rawPath)\n  }\n\n  getResourceURLsForPathname(rawPath) {\n    const pagePath = findPath(rawPath)\n    const page = this.pageDataDb.get(pagePath)\n    if (page) {\n      const pageResources = toPageResources(page.payload)\n\n      return [\n        ...createComponentUrls(pageResources.page.componentChunkName),\n        createPageDataUrl(pagePath),\n      ]\n    } else {\n      return null\n    }\n  }\n\n  isPageNotFound(rawPath) {\n    const pagePath = findPath(rawPath)\n    const page = this.pageDb.get(pagePath)\n    return !page || page.notFound\n  }\n\n  loadAppData(retries = 0) {\n    return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n      req => {\n        const { status, responseText } = req\n\n        let appData\n\n        if (status !== 200 && retries < 3) {\n          // Retry 3 times incase of non-200 responses\n          return this.loadAppData(retries + 1)\n        }\n\n        // Handle 200\n        if (status === 200) {\n          try {\n            const jsonPayload = JSON.parse(responseText)\n            if (jsonPayload.webpackCompilationHash === undefined) {\n              throw new Error(`not a valid app-data response`)\n            }\n\n            appData = jsonPayload\n          } catch (err) {\n            // continue regardless of error\n          }\n        }\n\n        return appData\n      }\n    )\n  }\n}\n\nconst createComponentUrls = componentChunkName =>\n  (window.___chunkMapping[componentChunkName] || []).map(\n    chunk => __PATH_PREFIX__ + chunk\n  )\n\nexport class ProdLoader extends BaseLoader {\n  constructor(asyncRequires, matchPaths, pageData) {\n    const loadComponent = (chunkName, exportType = `components`) => {\n      if (!global.hasPartialHydration) {\n        exportType = `components`\n      }\n\n      if (!asyncRequires[exportType][chunkName]) {\n        throw new Error(\n          `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n        )\n      }\n\n      return (\n        asyncRequires[exportType][chunkName]()\n          // loader will handle the case when component is error\n          .catch(err => err)\n      )\n    }\n\n    super(loadComponent, matchPaths)\n\n    if (pageData) {\n      this.pageDataDb.set(findPath(pageData.path), {\n        pagePath: pageData.path,\n        payload: pageData,\n        status: `success`,\n      })\n    }\n  }\n\n  doPrefetch(pagePath) {\n    return super.doPrefetch(pagePath).then(result => {\n      if (result.status !== PageResourceStatus.Success) {\n        return Promise.resolve()\n      }\n      const pageData = result.payload\n      const chunkName = pageData.componentChunkName\n      const componentUrls = createComponentUrls(chunkName)\n      return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n    })\n  }\n\n  loadPageDataJson(rawPath) {\n    return super.loadPageDataJson(rawPath).then(data => {\n      if (data.notFound) {\n        if (shouldAbortFetch(rawPath)) {\n          return data\n        }\n        // check if html file exist using HEAD request:\n        // if it does we should navigate to it instead of showing 404\n        return doFetch(rawPath, `HEAD`).then(req => {\n          if (req.status === 200) {\n            // page (.html file) actually exist (or we asked for 404 )\n            // returning page resources status as errored to trigger\n            // regular browser navigation to given page\n            return {\n              status: PageResourceStatus.Error,\n            }\n          }\n\n          // if HEAD request wasn't 200, return notFound result\n          // and show 404 page\n          return data\n        })\n      }\n      return data\n    })\n  }\n\n  loadPartialHydrationJson(rawPath) {\n    return super.loadPartialHydrationJson(rawPath).then(data => {\n      if (data.notFound) {\n        if (shouldAbortFetch(rawPath)) {\n          return data\n        }\n        // check if html file exist using HEAD request:\n        // if it does we should navigate to it instead of showing 404\n        return doFetch(rawPath, `HEAD`).then(req => {\n          if (req.status === 200) {\n            // page (.html file) actually exist (or we asked for 404 )\n            // returning page resources status as errored to trigger\n            // regular browser navigation to given page\n            return {\n              status: PageResourceStatus.Error,\n            }\n          }\n\n          // if HEAD request wasn't 200, return notFound result\n          // and show 404 page\n          return data\n        })\n      }\n      return data\n    })\n  }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n  instance = _loader\n}\n\nexport const publicLoader = {\n  enqueue: rawPath => instance.prefetch(rawPath),\n\n  // Real methods\n  getResourceURLsForPathname: rawPath =>\n    instance.getResourceURLsForPathname(rawPath),\n  loadPage: rawPath => instance.loadPage(rawPath),\n  // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n  loadPageSync: (rawPath, options = {}) =>\n    instance.loadPageSync(rawPath, options),\n  prefetch: rawPath => instance.prefetch(rawPath),\n  isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n  hovering: rawPath => instance.hovering(rawPath),\n  loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n  if (instance) {\n    return instance.staticQueryDb\n  } else {\n    return {}\n  }\n}\n\nexport function getSliceResults() {\n  if (instance) {\n    return instance.slicesDb\n  } else {\n    return {}\n  }\n}\n","exports.components = {\n  \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n  \"component---src-pages-about-js\": () => import(\"./../../../src/pages/about.js\" /* webpackChunkName: \"component---src-pages-about-js\" */),\n  \"component---src-pages-cat-plus-plus-js\": () => import(\"./../../../src/pages/catPlusPlus.js\" /* webpackChunkName: \"component---src-pages-cat-plus-plus-js\" */),\n  \"component---src-pages-clients-js\": () => import(\"./../../../src/pages/clients.js\" /* webpackChunkName: \"component---src-pages-clients-js\" */),\n  \"component---src-pages-contact-js\": () => import(\"./../../../src/pages/contact.js\" /* webpackChunkName: \"component---src-pages-contact-js\" */),\n  \"component---src-pages-frontend-mentor-js\": () => import(\"./../../../src/pages/frontendMentor.js\" /* webpackChunkName: \"component---src-pages-frontend-mentor-js\" */),\n  \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n  \"component---src-pages-machine-learning-js\": () => import(\"./../../../src/pages/machineLearning.js\" /* webpackChunkName: \"component---src-pages-machine-learning-js\" */),\n  \"component---src-pages-mer-nshop-js\": () => import(\"./../../../src/pages/MERNshop.js\" /* webpackChunkName: \"component---src-pages-mer-nshop-js\" */),\n  \"component---src-pages-projects-js\": () => import(\"./../../../src/pages/projects.js\" /* webpackChunkName: \"component---src-pages-projects-js\" */),\n  \"component---src-pages-services-js\": () => import(\"./../../../src/pages/services.js\" /* webpackChunkName: \"component---src-pages-services-js\" */),\n  \"component---src-pages-storybook-js\": () => import(\"./../../../src/pages/storybook.js\" /* webpackChunkName: \"component---src-pages-storybook-js\" */),\n  \"component---src-pages-weather-js\": () => import(\"./../../../src/pages/weather.js\" /* webpackChunkName: \"component---src-pages-weather-js\" */)\n}\n\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use client\"\nimport t from\"prop-types\";import e from\"react\";import{resolve as n,Location as r,Link as o}from\"@gatsbyjs/reach-router\";import{applyTrailingSlashOption as s}from\"gatsby-page-utils/apply-trailing-slash-option\";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},i.apply(this,arguments)}function a(t){let e=t||\"/\",n=\"\",r=\"\";const o=e.indexOf(\"#\");-1!==o&&(r=e.slice(o),e=e.slice(0,o));const s=e.indexOf(\"?\");return-1!==s&&(n=e.slice(s),e=e.slice(0,s)),{pathname:e,search:\"?\"===n?\"\":n,hash:\"#\"===r?\"\":r}}const c=/^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/,l=t=>{if(\"string\"==typeof t)return!(t=>c.test(t))(t)},p=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __BASE_PATH__?__BASE_PATH__:void 0:__BASE_PATH__,h=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __PATH_PREFIX__?__PATH_PREFIX__:void 0:__PATH_PREFIX__;function f(t,e=p()){var n;if(!l(t))return t;if(t.startsWith(\"./\")||t.startsWith(\"../\"))return t;const r=null!=(n=null!=e?e:h())?n:\"/\";return`${null!=r&&r.endsWith(\"/\")?r.slice(0,-1):r}${t.startsWith(\"/\")?t:`/${t}`}`}const u=t=>null==t?void 0:t.startsWith(\"/\"),_=()=>\"undefined\"!=typeof __TRAILING_SLASH__?__TRAILING_SLASH__:void 0;function d(t,e){const{pathname:n,search:r,hash:o}=a(t);return`${s(n,e)}${r}${o}`}const m=(t,e)=>\"number\"==typeof t?t:l(t)?u(t)?function(t){const e=f(t),n=_();return\"always\"===n||\"never\"===n?d(e,n):e}(t):function(t,e){if(u(t))return t;const r=_(),o=n(t,e);return\"always\"===r||\"never\"===r?d(o,r):o}(t,e):t,y=[\"to\",\"getProps\",\"onClick\",\"onMouseEnter\",\"activeClassName\",\"activeStyle\",\"innerRef\",\"partiallyActive\",\"state\",\"replace\",\"_location\"];function v(t){return f(t,h())}const b={activeClassName:t.string,activeStyle:t.object,partiallyActive:t.bool};function w(t){/*#__PURE__*/return e.createElement(r,null,({location:n})=>/*#__PURE__*/e.createElement(P,i({},t,{_location:n})))}class P extends e.Component{constructor(t){super(t),this.defaultGetProps=({isPartiallyCurrent:t,isCurrent:e})=>(this.props.partiallyActive?t:e)?{className:[this.props.className,this.props.activeClassName].filter(Boolean).join(\" \"),style:i({},this.props.style,this.props.activeStyle)}:null;let e=!1;\"undefined\"!=typeof window&&window.IntersectionObserver&&(e=!0),this.state={IOSupported:e},this.abortPrefetch=null,this.handleRef=this.handleRef.bind(this)}_prefetch(){let t=window.location.pathname+window.location.search;this.props._location&&this.props._location.pathname&&(t=this.props._location.pathname+this.props._location.search);const e=a(m(this.props.to,t)),n=e.pathname+e.search;if(t!==n)return ___loader.enqueue(n)}componentWillUnmount(){if(!this.io)return;const{instance:t,el:e}=this.io;this.abortPrefetch&&this.abortPrefetch.abort(),t.unobserve(e),t.disconnect()}handleRef(t){this.props.innerRef&&Object.prototype.hasOwnProperty.call(this.props.innerRef,\"current\")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=((t,e)=>{const n=new window.IntersectionObserver(n=>{n.forEach(n=>{t===n.target&&e(n.isIntersecting||n.intersectionRatio>0)})});return n.observe(t),{instance:n,el:t}})(t,t=>{t?this.abortPrefetch=this._prefetch():this.abortPrefetch&&this.abortPrefetch.abort()}))}render(){const t=this.props,{to:n,getProps:r=this.defaultGetProps,onClick:s,onMouseEnter:c,state:p,replace:h,_location:f}=t,u=function(t,e){if(null==t)return{};var n,r,o={},s=Object.keys(t);for(r=0;r<s.length;r++)e.indexOf(n=s[r])>=0||(o[n]=t[n]);return o}(t,y);\"production\"===process.env.NODE_ENV||l(n)||console.warn(`External link ${n} was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links`);const _=m(n,f.pathname);return l(_)?/*#__PURE__*/e.createElement(o,i({to:_,state:p,getProps:r,innerRef:this.handleRef,onMouseEnter:t=>{c&&c(t);const e=a(_);___loader.hovering(e.pathname+e.search)},onClick:t=>{if(s&&s(t),!(0!==t.button||this.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();let e=h;const n=encodeURI(_)===f.pathname;\"boolean\"!=typeof h&&n&&(e=!0),window.___navigate(_,{state:p,replace:e})}return!0}},u)):/*#__PURE__*/e.createElement(\"a\",i({href:_},u))}}P.propTypes=i({},b,{onClick:t.func,to:t.string.isRequired,replace:t.bool,state:t.object});const E=e.forwardRef((t,n)=>/*#__PURE__*/e.createElement(w,i({innerRef:n},t))),g=(t,e)=>{window.___navigate(m(t,window.location.pathname),e)};export{E as Link,g as navigate,a as parsePath,v as withAssetPrefix,f as withPrefix};\n//# sourceMappingURL=index.modern.mjs.map\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n  const finalData = data\n    ? data.data\n    : staticQueryData[query] && staticQueryData[query].data\n\n  return (\n    <React.Fragment>\n      {finalData && render(finalData)}\n      {!finalData && <div>Loading (StaticQuery)</div>}\n    </React.Fragment>\n  )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n  const { data, query, render, children } = props\n\n  if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n    console.warn(\n      `The <StaticQuery /> component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n    )\n    warnedAboutStaticQuery = true\n  }\n\n  return (\n    <StaticQueryContext.Consumer>\n      {staticQueryData => (\n        <StaticQueryDataRenderer\n          data={data}\n          query={query}\n          render={render || children}\n          staticQueryData={staticQueryData}\n        />\n      )}\n    </StaticQueryContext.Consumer>\n  )\n}\n\nStaticQuery.propTypes = {\n  data: PropTypes.object,\n  query: PropTypes.string.isRequired,\n  render: PropTypes.func,\n  children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n  if (\n    typeof React.useContext !== `function` &&\n    process.env.NODE_ENV === `development`\n  ) {\n    // TODO(v5): Remove since we require React >= 18\n    throw new Error(\n      `You're likely using a version of React that doesn't support Hooks\\n` +\n        `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n    )\n  }\n\n  const context = React.useContext(StaticQueryContext)\n\n  // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n  // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n  // catch the misuse of the API and give proper direction\n  if (isNaN(Number(query))) {\n    throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n  }\n\n  if (context[query]?.data) {\n    return context[query].data\n  } else {\n    throw new Error(\n      `The result of this StaticQuery could not be fetched.\\n\\n` +\n        `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n        `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n    )\n  }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n  /* eslint-disable no-undef */\n  if (!globalThis.__SERVER_CONTEXT) {\n    globalThis.__SERVER_CONTEXT = {}\n  }\n\n  if (!globalThis.__SERVER_CONTEXT[name]) {\n    globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n      name,\n      defaultValue\n    )\n  }\n\n  return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n  if (React.createServerContext) {\n    return createServerContext(name, defaultValue)\n  }\n\n  return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n  location\n}, pluginOptions) {\n  if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n    const {\n      localize\n    } = pluginOptions;\n    const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n    const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n    if (manifestEl) {\n      manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n    }\n  }\n};","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-server-dom-webpack.production.min.js');\n} else {\n  module.exports = require('./cjs/react-server-dom-webpack.development.js');\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n  if (!prefix) {\n    return str\n  }\n\n  if (str === prefix) {\n    return `/`\n  }\n\n  if (str.startsWith(`${prefix}/`)) {\n    return str.slice(prefix.length)\n  }\n\n  return str\n}\n","export default pathAndSearch => {\n  if (pathAndSearch === undefined) {\n    return pathAndSearch\n  }\n  let [path, search = ``] = pathAndSearch.split(`?`)\n  if (search) {\n    search = `?` + search\n  }\n\n  if (path === `/`) {\n    return `/` + search\n  }\n  if (path.charAt(path.length - 1) === `/`) {\n    return path.slice(0, -1) + search\n  }\n  return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n  let newRawPathname = rawPathname\n  const queryIndex = rawPathname.indexOf(`?`)\n\n  if (queryIndex !== -1) {\n    const [path, qs] = rawPathname.split(`?`)\n    newRawPathname = `${path}?${encodeURIComponent(qs)}`\n  }\n\n  const pathname = decodeURIComponent(newRawPathname)\n\n  // Remove the pathPrefix from the pathname.\n  const trimmedPathname = stripPrefix(\n    pathname,\n    decodeURIComponent(__BASE_PATH__)\n  )\n    // Remove any hashfragment\n    .split(`#`)[0]\n\n  return trimmedPathname\n}\n\nfunction absolutify(path) {\n  // If it's already absolute, return as-is\n  if (\n    path.startsWith(`/`) ||\n    path.startsWith(`https://`) ||\n    path.startsWith(`http://`)\n  ) {\n    return path\n  }\n  // Calculate path relative to current location, adding a trailing slash to\n  // match behavior of @reach/router\n  return new URL(\n    path,\n    window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n  ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n  matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n  const trimmedPathname = cleanPath(rawPathname)\n\n  const pickPaths = matchPaths.map(({ path, matchPath }) => {\n    return {\n      path: matchPath,\n      originalPath: path,\n    }\n  })\n\n  const path = pick(pickPaths, trimmedPathname)\n\n  if (path) {\n    return normalizePagePath(path.route.originalPath)\n  }\n\n  return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n *  { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n  const trimmedPathname = cleanPath(rawPathname)\n\n  const pickPaths = matchPaths.map(({ path, matchPath }) => {\n    return {\n      path: matchPath,\n      originalPath: path,\n    }\n  })\n\n  const path = pick(pickPaths, trimmedPathname)\n\n  if (path) {\n    return path.params\n  }\n\n  return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n  const trimmedPathname = trimPathname(absolutify(rawPathname))\n  if (pathCache.has(trimmedPathname)) {\n    return pathCache.get(trimmedPathname)\n  }\n\n  const redirect = maybeGetBrowserRedirect(rawPathname)\n  if (redirect) {\n    return findPath(redirect.toPath)\n  }\n\n  let foundPath = findMatchPath(trimmedPathname)\n\n  if (!foundPath) {\n    foundPath = cleanPath(rawPathname)\n  }\n\n  pathCache.set(trimmedPathname, foundPath)\n\n  return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n  const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n  let foundPath = trimmedPathname\n  if (foundPath === `/index.html`) {\n    foundPath = `/`\n  }\n\n  foundPath = normalizePagePath(foundPath)\n\n  return foundPath\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n  if (!collectedScripts.length) {\n    return;\n  }\n  const existingSnippet = document.querySelector(`script[data-partytown]`);\n  const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n  if (existingSnippet) {\n    existingSnippet.remove();\n  }\n  if (existingSandbox) {\n    existingSandbox.remove();\n  }\n  const forwards = (0, _getForwards.getForwards)(collectedScripts);\n  const snippet = document.createElement(`script`);\n  snippet.dataset.partytown = ``;\n  snippet.innerHTML = (0, _integration.partytownSnippet)({\n    forward: forwards\n  });\n  document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","//      \n// An event handler can take an optional event argument\n// and should not return a value\n                                          \n                                                               \n\n// An array of all currently registered event handlers for a type\n                                            \n                                                            \n// A map of event types and their corresponding event handlers.\n                        \n                                 \n                                   \n  \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n *  @name mitt\n *  @returns {Mitt}\n */\nfunction mitt(all                 ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param  {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type        , handler              ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param  {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type        , handler              ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type  The event type to invoke\n\t\t * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type        , evt     ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","module.exports = [{\n      plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n      options: {\"plugins\":[],\"name\":\"Marjoree\",\"short_name\":\"Marjoree\",\"start_url\":\"/\",\"icon\":\"src/images/Feb2025Icon.png\",\"background_color\":\"#000000\",\"theme_color\":\"#3fb401\",\"display\":\"standalone\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"a903820261d30960ddd6c675471e53be\"},\n    },{\n      plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n      options: {\"plugins\":[]},\n    }]\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n  const reactDomClient = require(`react-dom/client`)\n\n  const render = (Component, el) => {\n    let root = map.get(el)\n    if (!root) {\n      map.set(el, (root = reactDomClient.createRoot(el)))\n    }\n    root.render(Component)\n  }\n\n  const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n  return { render, hydrate }\n}\n"],"names":["plugins","require","getResourceURLsForPathname","loadPage","loadPageSync","exports","api","args","defaultReturn","argTransform","results","map","plugin","result","options","filter","length","reduce","previous","next","then","Promise","resolve","k","l","stream","n","Map","p","Symbol","for","q","r","t","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ContextRegistry","v","a","b","c","this","_status","_value","_response","w","JSON","parse","_fromJSON","chunks","d","e","get","__webpack_require__","id","name","__esModule","default","x","y","z","A","C","D","_chunks","forEach","set","F","Error","G","indexOf","parseInt","substring","f","_bundlerConfig","h","g","B","m","bind","J","createServerContext","u","Provider","message","stack","H","$$typeof","_payload","_init","E","type","key","ref","props","_owner","I","TextDecoder","readRoot","_partialRow","_stringDecoder","K","getReader","read","value","done","subarray","decode","prototype","push","createFromReadableStream","moduleMap","module","condition","format","error","undefined","argIndex","replace","framesToPop","window","location","protocol","hostname","console","navigator","serviceWorker","register","reg","addEventListener","apiRunner","installingWorker","installing","log","state","controller","___swUpdated","___failedResources","reload","catch","_ref","pageResources","loader","pathname","React","InternalPageRenderer","json","SlicesResultsContext","SlicesContext","SlicesMapContext","SlicesPropsContext","onInitialClientRender","ReferenceError","_interopRequireDefault","ScrollHandler","ScrollContext","_assertThisInitialized2","_inheritsLoose2","obj","nodeInterop","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","hasOwnProperty","call","desc","_interopRequireWildcard","_propTypes","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","_React$Component","_this","_len","arguments","Array","_key","apply","concat","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","requestAnimationFrame","_saveScroll","windowScroll","position","prevProps","shouldUpdateScroll","scrollTo","scrollToHash","hash","node","document","getElementById","scrollIntoView","prevRouterProps","routerProps","_proto","save","componentDidMount","scrollPosition","_this$props$location","decodeURI","componentWillUnmount","removeEventListener","componentDidUpdate","_this$props$location2","render","createElement","children","Component","propTypes","func","element","isRequired","object","getForwards","collectedScripts","flatMap","script","forward","_setPrototypeOf","setPrototypeOf","__proto__","useScrollRestoration","identifier","_reachRouter","useLocation","_react","useContext","_scrollHandler","useRef","useLayoutEffect","current","onScroll","scrollTop","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","storedValue","stringify","setItem","stateKeyBase","_arrayLikeToArray","_toConsumableArray","isArray","iterator","from","toString","slice","constructor","test","TypeError","_gatsby","SCRIPT_TYPE","partytownSnippet","config","snippetCode","filteredConfig","configStr","String","startsWith","keys","join","createSnippet","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Function","Wrapper","o","create","enumerable","writable","configurable","ServerSliceRenderer","sliceId","contents","ServerSlice","sliceName","allowEmpty","sliceProps","slicesMap","slicesProps","concreteSliceName","getSliceId","createContentDigest","sliceUsage","hasChildren","InlineSlice","slicesResultsMap","component","assign","sliceContext","data","Slice","internalProps","alias","__renderedByLocation","slicesContext","propErrors","validateSliceProps","SlicePropsError","renderEnvironment","additionalContextMessage","sliceRoot","componentPath","_Error","inBrowser","renderedByLocation","errors","entries","stackLines","ReactDebugCurrentFrame","getCurrentStack","trim","split","captureStackTrace","forcedLocation","functionName","_inheritsLoose","seenObjects","path","propPath","prefetchPathname","enqueue","graphql","delete","s","self","requestIdleCallback","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","postHydrate","idle","offMainThread","i","Set","src","strategy","loadCallback","errorCallback","remove","crossOrigin","dangerouslySetInnerHTML","__html","onLoad","onError","load","callbacks","event","dataset","setAttribute","textContent","add","body","appendChild","encodeURIComponent","FireCallbackInEffect","callback","useEffect","VALID_NODE_NAMES","isEqualNode","oldTag","newTag","HTMLElement","nonce","getAttribute","cloneTag","cloneNode","getValidHeadNodesAndAttributes","rootNode","htmlAndBodyAttributes","html","seenIds","validHeadNodes","childNodes","_node$attributes","_node$attributes$id","nodeName","toLowerCase","attributes","isElementType","isValidNodeName","attribute","isStyleAttribute","_htmlAndBodyAttribute","style","clonedNode","massageScript","_validHeadNodes$index","indexOfPreviouslyInsertedNode","parentNode","removeChild","attr","innerHTML","includes","nodeType","hiddenRoot","keysOfHtmlAndBodyAttributes","onHeadRendered","_document$head2","htmlElement","querySelector","_ref2","attributeName","attributeValue","bodyElement","_ref3","applyHtmlAndBodyAttributes","existingHeadElements","querySelectorAll","_document$head","head","append","newHeadNodes","oldNodes","newNodes","onStale","onNew","existingHeadElement","indexInNewNodes","findIndex","splice","newNode","diffNodes","headHandlerForBrowser","pageComponent","staticQueryResults","pageComponentProps","Head","headExportValidator","reactDOMUtils","HeadElement","input","params","serverData","pageContext","WrapHeadElement","pop","StaticQueryContext","LocationProvider","prevHeadNodes","removePrevHeadElements","htmlAndBodyattributeList","removeAttribute","removeHtmlAndBodyAttributes","PageRenderer","grabMatchParams","__params","pageElement","partialHydration","page","PropTypes","suffixes","option","hasTrailingSlash","endsWith","suffix","endsWithSuffixes","search","href","origin","host","port","URL","encodeURI","history","transitioning","_onTransitionComplete","listen","action","navigate","go","replaceState","pushState","substr","index","globalThis","__SERVER_CONTEXT","baseuri","basepath","uri","to","noThrow","P","R","N","j","route","$","decodeURIComponent","O","exec","U","L","T","_","sort","S","score","every","M","V","X","forwardRef","innerRef","getProps","isCurrent","isPartiallyCurrent","onClick","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","preventDefault","super","componentDidCatch","setState","W","setError","url","Q","match","Y","Z","ee","re","te","focus","outline","tabIndex","ne","oe","ae","primary","toArray","se","ie","ce","ue","redirectMap","redirectIgnoreCaseMap","maybeGetBrowserRedirect","redirect","ignoreCase","fromPath","RouteAnnouncerProps","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","___replace","toPath","nextRoute","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","globalHistory","parsePath","timeoutId","emitter","emit","status","PageResourceStatus","clearTimeout","webpackCompilationHash","___webpackCompilationHash","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","oldPathname","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","newAnnouncement","innerText","compareLocationProps","nextLocation","_prevLocation$state","_nextLocation$state","RouteUpdates","_React$Component2","_this2","_proto2","shouldComponentUpdate","shallowDiffers","_i","EnsureResources","withErrorDetails","getDerivedStateFromProps","prevState","loadResources","rawPath","nextState","matchPath","instance","shallowCompare","ProdLoader","asyncRequires","pageData","setLoader","setApiRunner","hydrate","___emitter","___loader","publicLoader","___push","___navigate","reloadStorageKey","apiRunnerAsync","RouteHandler","BaseContext","DataContext","GatsbyRoot","Location","getStaticQueryResults","sliceResults","getSliceResults","LocationHandler","Consumer","Router","__BASE_PATH__","stripPrefix","pagePath","browserLoc","findMatchPath","getSessionStorage","_page$page","removeItem","SiteRoot","_ref4","App","onClientEntryRanRef","performance","mark","focusEl","defaultRenderer","renderer","runRender","rootElement","doc","readyState","documentElement","doScroll","handler","supportedPrefetchStrategy","feature","fakeLink","relList","supports","err","support","reject","link","onload","onerror","getElementsByTagName","getElementsByName","req","XMLHttpRequest","open","send","preFetched","Success","createPageDataUrl","maybeSearch","shouldAbortFetch","doFetch","method","onreadystatechange","BOT_REGEX","toPageResources","_pageData$slicesMap","componentChunkName","staticQueryHashes","getServerDataError","waitForResponse","response","BaseLoader","loadComponent","matchPaths","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","partialHydrationDb","slicesDataDb","sliceInflightDb","slicesDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","prefetchCompleted","setMatchPaths","memoizedGet","inFlightPromise","prefetchDisabled","some","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","internalServerError","fetchPartialHydrationJson","loadPageDataJson","findPath","loadPartialHydrationJson","loadSliceDataJson","res","loadDataPromises","loadAppData","all","allData","appDataResponse","pageDataResponse","rscDataResponse","pageStaticQueryHashes","finalResult","dedupedSliceNames","values","loadSlice","inFlight","slicesData","slices","dedupedStaticQueryHashes","staticQueryHash","loadChunkPromises","componentChunkPromises","components","sliceComponents","headComponent","createdAt","sliceComponent","readableStream","ReadableStream","start","TextEncoder","encode","pull","close","cancel","staticQueryBatchPromise","staticQueryResultsMap","_options","shouldPrefetch","doesConnectionSupportPrefetch","connection","effectiveType","saveData","userAgent","prefetch","abort","defer","promise","abortC","AbortController","signal","_processNextPrefetchBatch","cb","toPrefetch","prefetches","dPromise","doPrefetch","pageDataUrl","prefetchHelper","as","hovering","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","_BaseLoader2","chunkName","exportType","componentUrls","_loader","component---src-pages-404-js","component---src-pages-about-js","component---src-pages-cat-plus-plus-js","component---src-pages-clients-js","component---src-pages-contact-js","component---src-pages-frontend-mentor-js","component---src-pages-index-js","component---src-pages-machine-learning-js","component---src-pages-mer-nshop-js","component---src-pages-projects-js","component---src-pages-services-js","component---src-pages-storybook-js","component---src-pages-weather-js","_useScrollRestoration","activeClassName","activeStyle","partiallyActive","_location","defaultGetProps","className","IntersectionObserver","IOSupported","abortPrefetch","handleRef","_prefetch","io","el","unobserve","disconnect","target","isIntersecting","intersectionRatio","observe","onMouseEnter","defaultValue","StaticQueryDataRenderer","staticQueryData","query","finalData","StaticQuery","useStaticQuery","_context$query","context","isNaN","Number","pluginOptions","str","prefix","pathAndSearch","charAt","pathCache","trimPathname","rawPathname","newRawPathname","qs","absolutify","trimmedPathname","cleanPath","pickPaths","originalPath","pick","normalizePagePath","foundPath","injectPartytownSnippet","existingSnippet","existingSandbox","forwards","_getForwards","snippet","partytown","_integration","on","off","evt","mitt","reactDomClient","root","createRoot","hydrateRoot"],"sourceRoot":""}