{"version":3,"file":"./bundle.js","mappings":"qBAMA,WAEE,aAEA,SAASA,EAAeC,EAAIC,GAErBD,IAILE,KAAKF,GAAKA,EACVE,KAAKC,YAAcD,KAAKF,GAAGI,uBAAuB,mBAClDF,KAAKG,UAAYH,KAAKF,GAAGI,uBAAuB,iBAChDF,KAAKI,kBAAoBJ,KAAKF,GAAGI,uBAAuB,wBAExDF,KAAKD,QAAUC,KAAKK,QAAQ,CAC1BC,WAAY,IACZC,aAAa,EACbC,YAAa,EACbC,gBAAgB,GACfV,GAEwC,QAAxCD,EAAGY,aAAa,qBACjBV,KAAKD,QAAQQ,aAAc,EACsB,SAAxCT,EAAGY,aAAa,uBACzBV,KAAKD,QAAQQ,aAAc,GAG1BT,EAAGY,aAAa,qBACjBV,KAAKD,QAAQO,WAAaK,SAASb,EAAGY,aAAa,qBAGlDZ,EAAGY,aAAa,uBACjBV,KAAKD,QAAQS,YAAcG,SAASb,EAAGY,aAAa,uBAGR,QAA3CZ,EAAGY,aAAa,wBACjBV,KAAKD,QAAQU,gBAAiB,EACsB,SAA3CX,EAAGY,aAAa,0BACzBV,KAAKD,QAAQU,gBAAiB,GAGA,IAA5BT,KAAKC,YAAYW,QAAgBZ,KAAKC,YAAYW,SAAWZ,KAAKG,UAAUS,QAIhFZ,KAAKa,QACP,CAEAhB,EAAciB,UAAUD,MAAQ,WAE9B,IAAIE,EAAQf,KAEZA,KAAKgB,kBAAoBhB,KAAKC,YAAYW,OAC1CZ,KAAKiB,wBAA0BjB,KAAKI,kBAAkBQ,OACtDZ,KAAKQ,YAAc,EACnBR,KAAKkB,gBAAkB,KACvBlB,KAAKmB,cAAgBnB,KAAKoB,YAAYC,KAAKrB,MAC3CA,KAAKsB,gBAAkBtB,KAAKuB,cAAcF,KAAKrB,MAC/CA,KAAKwB,KAAO,CACVC,KAAM,GACNC,KAAM,GACNC,MAAO,GACPC,MAAO,IAGNC,OAAOC,YAAc9B,KAAKD,QAAQO,YAAcN,KAAKD,QAAQQ,YAC5DP,KAAK+B,aAAc,EAEnB/B,KAAK+B,aAAc,EAGvB,IAAK,IAAIC,EAAI,EAAGA,EAAIhC,KAAKgB,kBAAmBgB,IAC1ChC,KAAKC,YAAY+B,GAAGC,MAAQD,EAC5BhC,KAAKC,YAAY+B,GAAGE,iBAAiB,QAASlC,KAAKmB,eAAe,GAClEnB,KAAKC,YAAY+B,GAAGE,iBAAiB,UAAWlC,KAAKsB,iBAAiB,GAElEtB,KAAKC,YAAY+B,GAAGG,UAAUC,SAAS,iBACzCpC,KAAKQ,YAAcwB,GAGrBhC,KAAKqC,MAAML,GAGb,IAASA,EAAI,EAAGA,EAAIhC,KAAKiB,wBAAyBe,IAChDhC,KAAKI,kBAAkB4B,GAAGC,MAAQD,EAClChC,KAAKI,kBAAkB4B,GAAGE,iBAAiB,QAASlC,KAAKmB,eAAe,GACxEnB,KAAKI,kBAAkB4B,GAAGE,iBAAiB,UAAWlC,KAAKsB,iBAAiB,GAExEtB,KAAKI,kBAAkB4B,GAAGG,UAAUC,SAAS,iBAC/CpC,KAAKQ,YAAcwB,GAIlBM,MAAMtC,KAAKD,QAAQS,eACtBR,KAAKQ,YAAcR,KAAKD,QAAQS,YAAcR,KAAKgB,kBAAoBhB,KAAKD,QAAQS,YAAcR,KAAKgB,kBAAoB,GAG7HhB,KAAKF,GAAGqC,UAAUI,IAAI,kBAClBvC,KAAKD,QAAQQ,aACfP,KAAKF,GAAGqC,UAAUI,IAAI,gBAIpBvC,KAAKD,QAAQU,gBAAmBT,KAAK+B,aACvC/B,KAAKwC,UAAUxC,KAAKQ,aAAa,GAGnC,IAAIiC,EAAazC,KAAK0C,WAAU,WAE3Bb,OAAOC,YAAcf,EAAMhB,QAAQO,YAAcS,EAAMhB,QAAQQ,aAChEQ,EAAMgB,aAAc,EAChBhB,EAAMhB,QAAQQ,aAChBQ,EAAMjB,GAAGqC,UAAUI,IAAI,gBAEzBxB,EAAMyB,UAAUzB,EAAMP,eAEtBO,EAAMgB,aAAc,EACpBhB,EAAMjB,GAAGqC,UAAUQ,OAAO,gBACtB5B,EAAMhB,QAAQU,gBAChBM,EAAMyB,UAAUzB,EAAMP,aAI5B,GAAG,IAEHqB,OAAOK,iBAAiB,SAAUO,EAEpC,EAEA5C,EAAciB,UAAUM,YAAc,SAAUwB,GAE9CA,EAAEC,iBAEF,IAAIC,EAAiB9C,KAAK+C,YAAYH,EAAEI,OAAQ,oBAC5CC,EAAa,EAEK,MAAlBH,GACFA,EAAiB9C,KAAK+C,YAAYH,EAAEI,OAAQ,yBAC5CC,EAAajD,KAAK+C,YAAYD,EAAgB,kBAC9C9C,KAAK+B,aAAc,GAEnB/B,KAAK+B,aAAc,EAGrB,IAAImB,EAAgC,MAAlBN,EAAEI,OAAOf,MAAgBW,EAAEI,OAAOf,MAAQgB,EAAWhB,OAEnEiB,IAAgBlD,KAAKQ,aAAgBR,KAAK+B,cAI9C/B,KAAKwC,UAAUU,GAAa,EAC9B,EAEArD,EAAciB,UAAUS,cAAgB,SAAUqB,GAEhD,IAAIM,EAEJ,GAAIN,EAAEO,UAAYnD,KAAKwB,KAAKC,MAAQmB,EAAEO,UAAYnD,KAAKwB,KAAKE,MAAQkB,EAAEO,UAAYnD,KAAKwB,KAAKG,OAASiB,EAAEO,UAAYnD,KAAKwB,KAAKI,MAA7H,CAOA,GANEgB,EAAEC,iBAMAD,EAAEO,UAAYnD,KAAKwB,KAAKC,MAAQmB,EAAEI,OAAOf,MAAQ,IAAMjC,KAAK+B,YAC9DmB,EAAcN,EAAEI,OAAOf,MAAQ,OAE5B,GAAIW,EAAEO,UAAYnD,KAAKwB,KAAKE,MAAQkB,EAAEI,OAAOf,MAAQjC,KAAKgB,kBAAoB,IAAMhB,KAAK+B,YAC5FmB,EAAcN,EAAEI,OAAOf,MAAQ,MAE5B,IAAIW,EAAEO,UAAYnD,KAAKwB,KAAKG,OAASiB,EAAEO,UAAYnD,KAAKwB,KAAKI,MAIhE,OAHAsB,EAAcN,EAAEI,OAAOf,KAIzB,CAEAjC,KAAKwC,UAAUU,GAAa,EAf5B,CAgBF,EAEArD,EAAciB,UAAUsC,MAAQ,SAAUnB,EAAOoB,GAE/CrD,KAAKG,UAAU8B,GAAOqB,gBAAgB,YAEtCtD,KAAKC,YAAYgC,GAAOqB,gBAAgB,YACxCtD,KAAKC,YAAYgC,GAAOE,UAAUI,IAAI,eACtCvC,KAAKC,YAAYgC,GAAOsB,aAAa,iBAAiB,GAEtDvD,KAAKI,kBAAkB6B,GAAOsB,aAAa,iBAAiB,GAE5D,IAAIC,EAAexD,KAAKG,UAAU8B,GAAO/B,uBAAuB,WAAW,GAC3EsD,EAAaD,aAAa,eAAe,GACzCC,EAAarB,UAAUQ,OAAO,aAC9Ba,EAAarB,UAAUI,IAAI,WAE3BvC,KAAKG,UAAU8B,GAAOE,UAAUQ,OAAO,aACvC3C,KAAKG,UAAU8B,GAAOE,UAAUI,IAAI,WAEhCc,GACFrD,KAAKC,YAAYgC,GAAOwB,OAE5B,EAEA5D,EAAciB,UAAUuB,MAAQ,SAAUJ,GAExCjC,KAAKC,YAAYgC,GAAOE,UAAUQ,OAAO,eACzC3C,KAAKC,YAAYgC,GAAOsB,aAAa,iBAAiB,GACtDvD,KAAKC,YAAYgC,GAAOsB,aAAa,YAAa,GAElDvD,KAAKI,kBAAkB6B,GAAOsB,aAAa,iBAAiB,GAE5D,IAAIC,EAAexD,KAAKG,UAAU8B,GAAO/B,uBAAuB,WAAW,GAC3EsD,EAAaD,aAAa,eAAe,GACzCC,EAAarB,UAAUQ,OAAO,WAC9Ba,EAAarB,UAAUI,IAAI,aAE3BvC,KAAKG,UAAU8B,GAAOE,UAAUQ,OAAO,WACvC3C,KAAKG,UAAU8B,GAAOE,UAAUI,IAAI,aACpCvC,KAAKG,UAAU8B,GAAOsB,aAAa,YAAa,EAClD,EAEA1D,EAAciB,UAAU0B,UAAY,SAAUP,EAAOoB,GAEnD,GAAc,OAAVpB,EAAgB,CAClB,GAAGjC,KAAK+B,YACN,OAEAE,EAAQ,CAEZ,CAEA,IAAIjC,KAAKG,UAAU8B,GAAOE,UAAUC,SAAS,cAAgBiB,EAW3D,OATIpB,IAAUjC,KAAKQ,YACjBR,KAAKQ,YAAc,MAEnBR,KAAKQ,YAAc,KACnBR,KAAKkB,gBAAkBe,QAGzBjC,KAAKqC,MAAMJ,GAKb,GAAIjC,KAAK+B,YAEP/B,KAAKkB,gBAAkBlB,KAAKQ,YAC5BR,KAAKQ,YAAcyB,MAEd,CACL,GAA6B,OAAzBjC,KAAKkB,iBAA6BlB,KAAK+B,YAQzC/B,KAAKqC,MAAMrC,KAAKQ,kBAPhB,IAAK,IAAIwB,EAAI,EAAGA,EAAIhC,KAAKgB,kBAAmBgB,IACtCA,IAAMC,GACRjC,KAAKqC,MAAML,GAQjBhC,KAAKkB,gBAAkBlB,KAAKQ,YAC5BR,KAAKQ,YAAcyB,CACrB,CAEAjC,KAAKoD,MAAMpD,KAAKQ,YAAa6C,EAE/B,EAEAxD,EAAciB,UAAU4C,QAAU,WAEhC,IAAK,IAAI1B,EAAI,EAAGA,EAAIhC,KAAKgB,kBAAmBgB,IAC1ChC,KAAKC,YAAY+B,GAAGG,UAAUQ,OAAO,eACrC3C,KAAKC,YAAY+B,GAAGsB,gBAAgB,iBACpCtD,KAAKC,YAAY+B,GAAGsB,gBAAgB,YAEpCtD,KAAKG,UAAU6B,GAAGG,UAAUQ,OAAO,aACnC3C,KAAKG,UAAU6B,GAAGsB,gBAAgB,eAClCtD,KAAKG,UAAU6B,GAAGsB,gBAAgB,YAElCtD,KAAKC,YAAY+B,GAAG2B,oBAAoB,QAAS3D,KAAKmB,eAAe,GACrEnB,KAAKC,YAAY+B,GAAG2B,oBAAoB,UAAW3D,KAAKsB,iBAAiB,UAElEtB,KAAKC,YAAY+B,GAAGC,MAG7BjC,KAAKF,GAAGqC,UAAUQ,OAAO,iBAC3B,EASA9C,EAAciB,UAAUiC,YAAc,SAAWa,EAAMC,GAmBrD,IAhBKC,QAAQhD,UAAUiD,UACnBD,QAAQhD,UAAUiD,QACdD,QAAQhD,UAAUkD,iBAClBF,QAAQhD,UAAUmD,oBAClBH,QAAQhD,UAAUoD,mBAClBJ,QAAQhD,UAAUqD,kBAClBL,QAAQhD,UAAUsD,uBAClB,SAASC,GAGL,IAFA,IAAIN,GAAW/D,KAAKsE,UAAYtE,KAAKuE,eAAeC,iBAAiBH,GACjErC,EAAI+B,EAAQnD,SACPoB,GAAK,GAAK+B,EAAQU,KAAKzC,KAAOhC,OACvC,OAAOgC,GAAK,CAChB,GAIA4B,GAAQA,IAASU,SAAUV,EAAOA,EAAKc,WAC3C,GAAKd,EAAKG,QAASF,GAAa,OAAOD,EAG3C,OAAO,IAET,EAIA/D,EAAciB,UAAUT,QAAU,WAG9B,IAAIsE,EAAW,CAAC,EACZC,GAAO,EACP5C,EAAI,EACJpB,EAASiE,UAAUjE,OAGiC,qBAAnDkE,OAAOhE,UAAUiE,SAASC,KAAMH,UAAU,MAC3CD,EAAOC,UAAU,GACjB7C,KAkBJ,IAdA,IAAIiD,EAAQ,SAAUC,GAClB,IAAM,IAAIC,KAAQD,EACTJ,OAAOhE,UAAUsE,eAAeJ,KAAME,EAAKC,KAEvCP,GAAsD,oBAA9CE,OAAOhE,UAAUiE,SAASC,KAAKE,EAAIC,IAC5CR,EAASQ,GAAQE,QAAQ,EAAMV,EAASQ,GAAOD,EAAIC,IAEnDR,EAASQ,GAAQD,EAAIC,GAIrC,EAGQnD,EAAIpB,EAAQoB,IAEhBiD,EADUJ,UAAU7C,IAIxB,OAAO2C,CAEX,EAMA9E,EAAciB,UAAU4B,UAAY,SAAU4C,EAAMC,EAAMC,GACxD,IAAIC,EACJ,OAAO,WACL,IAAIC,EAAU1F,KAAM2F,EAAOd,UAKvBe,EAAUJ,IAAcC,EAC5BI,aAAaJ,GACbA,EAAUK,YANE,WACVL,EAAU,KACLD,GAAaF,EAAKS,MAAML,EAASC,EACxC,GAG4BJ,GACxBK,GAAWN,EAAKS,MAAML,EAASC,EACrC,CACF,EAEA,IAAIK,EAAQC,MAAMnF,UAAUkF,MAY5B,SAASE,KACJ,WANIF,EAAMhB,KAAaV,SAAUE,iBAMjC,cAAY2B,SAAQ,SAAUC,GAC/B,IAAIvG,EAAcuG,EACpB,GACF,CAGwB,oBAAbC,WAEmB,YAAxB/B,SAASgC,WACXJ,IAIA5B,SAASpC,iBAAiB,mBAAoBgE,IAK9B,oBAATK,OACTA,KAAK1G,cAAgBA,GAIW2G,EAAOC,UACvCD,EAAOC,QAAU5G,EAKpB,CA1aD,E,UCNA2G,EAAOC,QAGP,SAAc5C,EAAU6C,GAEtB,OADAA,IAAWA,EAASpC,UACboC,EAAOC,cAAc9C,EAC9B,EALA2C,EAAOC,QAAQG,IAOf,SAAc/C,EAAU6C,GACtBA,IAAWA,EAASpC,UACpB,IAAIuC,EAAYH,EAAOlC,iBAAiBX,GACxC,OAAQoC,MAAMnF,UAAUkF,MAAMhB,KAAK6B,EACrC,C,GCXIC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaR,QAGrB,IAAID,EAASM,EAAyBE,GAAY,CAGjDP,QAAS,CAAC,GAOX,OAHAU,EAAoBH,GAAUR,EAAQA,EAAOC,QAASM,GAG/CP,EAAOC,OACf,CCrBAM,EAAoBK,EAAKZ,IACxB,IAAIa,EAASb,GAAUA,EAAOc,WAC7B,IAAOd,EAAiB,QACxB,IAAM,EAEP,OADAO,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdN,EAAoBQ,EAAI,CAACd,EAASgB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAElB,EAASiB,IAC5E5C,OAAO8C,eAAenB,EAASiB,EAAK,CAAEG,YAAY,EAAMC,IAAKL,EAAWC,IAE1E,ECNDX,EAAoBY,EAAI,CAACzC,EAAKC,IAAUL,OAAOhE,UAAUsE,eAAeJ,KAAKE,EAAKC,G,wCCE3E,MAYP,EAZ0BrF,IAEtB,IAAID,IAAJ,CAAkBC,EAOd,ECVFiI,EAAWC,GAAU/B,MAAM8B,QAAQC,GAEnCC,EAAWC,GAAUH,EAAQG,GAASA,EAAQ,CAACA,GA+C/CC,EAAiB,iBACjBC,EAAe,YAEfC,EAAmB,CACvBC,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,WAAW,GAEPC,EAAkB,CACtBC,YAAY,EACZC,OAAQ,CACNC,WAAW,EACXC,eAAgB,IAChBC,UAAW,CACTC,OAAQ,CAAC,EAAG,EAAG,GAAGC,KAAK7B,IACd,CAAE8B,QAAS9B,MAEpBrH,QAAS,CACPoJ,WAAYC,IACZC,OAAQ,kBACRC,KAAM,cAIZC,WAAY,IACZC,YAAa,IACbC,YAAa,KACbC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,UAAW,IACXC,gBAAiB,IACjBC,MAAO,IACPC,WAAY,IACZC,aAAa,EACbC,QAAS,GACTC,kBAAkB,EAClBC,aAAc,OAEdC,YAAa,OAEbC,WAAY,OAEZC,UAAW,OAEXC,cAAe,QAGXC,EAAkB,IAAItC,iFAEtBuC,EAAiB5K,GAAOwE,SAASoG,cAAc5K,GAE/C6K,EAAkBC,GAAYtG,SAASqG,eAAeC,GAEtDC,EAAmB,CAACC,EAAQC,EAAK,MACrC,IAAIC,EAAaN,EAAc,SAC/BM,EAAWD,GAAKA,EAChBC,EAAWC,YAAYN,EAAeG,IACtCxG,SAAS4G,KAAKD,YAAYD,EAAW,EAGjCG,EAAkBC,IACjBrD,EAAQqD,KACXA,EAAW,CAACA,EAAW,EAAGA,EAAW,IAEhCA,GAGHC,EAAgB,CAACnD,EAAOoD,IACrBC,KAAKC,IACVD,KAAKE,UAAYvD,EAAQoD,GAASpD,EAAQoD,KAAWpD,EAAQoD,IAIjE,IAAIA,EAASI,GAAQA,EAAM,EAU3B,MAAMC,EAAWD,GAAQzF,MAAM2F,KAAKF,GAEpC,IAAIG,EAAmBC,IACrB,IAAIA,EAAQC,YAAY5F,SAAS6F,IAC/B,GAAIA,EAAMC,UAKR,MAJA,IAAID,EAAMC,WAAW9F,SAAS+F,IAC5BF,EAAMtH,WAAWyH,aAAaxB,EAAeuB,GAAIF,EAAM,SAEzDA,EAAMrJ,SAGRkJ,EAAgBG,EAAM,IAEjBF,GAGT,MAAMM,EAAiBxB,IACrB,IAAIyB,EAAM/H,SAASgI,eAAeC,qBAElC,OADAF,EAAIG,KAAKC,UAAY7B,EACdiB,EAAgBQ,EAAIG,KAAK,EAGlC,SAASE,EAAiBZ,EAASa,GAAgB,EAAOC,GAAsB,GAC9E,IAcIC,EAdAjE,EAASkD,EAAQnF,cAAc,IAAIyB,KACnC0E,EAASxI,SAASyI,iBAAiBjB,EAASkB,WAAWC,SAAU,CACnEC,WAAaC,IACX,GAAIvE,GAAUgE,EAAqB,CACjC,GAAIO,EAAKhL,WAAWC,SAASgG,GAC3B,OAAO4E,WAAWI,cAEpB,GAAIxE,EAAOxG,SAAS+K,GAClB,OAAOH,WAAWK,aAEtB,CACA,OAAOF,EAAKhL,WAAWC,SAASgG,GAAgB4E,WAAWK,cAAgBL,WAAWI,aAAa,IAInGE,EAAQ,GACZ,KAAOT,EAAWC,EAAOD,YAClBA,EAASU,iBACZV,EAASU,eAAiBV,EAASnI,YAErC4I,EAAME,KAAKX,GAEb,OAAOF,EAAgBW,EAAMG,UAAYH,CAC3C,CAQA,MAAMI,EAAYxF,GAAUyF,OAAOC,UAAU1F,GAEvC2F,EAAuB,EAC3BC,aACAjK,WACAkK,iBACAC,SAEA,GAAIN,EAAS7J,GACX,OAAmB,EAAZA,EAET,IAAIoK,EAAgB,IAAIC,OApJd,MAoJ0B,KAAKC,KAAKH,GAC1CI,EAAgBvK,EAAW,IAAIiK,GAAYL,UAAUY,WAAU,EAAGC,WACpE,IAAIC,EAAgBD,EAAKC,cACrBC,EAAgBD,EAAcxK,QAAQF,GAC1C,SAAIoK,IAAiBO,IAGdA,GAAiBD,EAAcE,WAAWC,WAAWJ,EAAK,KAC7D,EAKN,OAJIF,EAAgB,IAClBA,EAAgBH,EAAgB,EAAIH,EAAWlN,OAAS,GAGnDwN,EAAgBL,GADVE,EAAgB,EAAI,EACa,EAQ1CU,EAAY,CAACzG,EAAO0G,IAAU,IAAI3I,MAAM2I,GAAOtF,KAAKpB,GAE1D,IAAI2G,EAAeC,GACV,IAAIC,SAASC,IAClBC,uBAAsBC,UACpBF,QAAcF,IAAK,GACnB,IAIFK,EAA2BrD,GACtBA,GAASsD,gBAAgBC,MAAMtG,GAC7BA,EAAUgC,KAAOe,EAAQwD,QAAQC,gBAIxCC,EAAqB,EACvB5G,SACAI,SACAjJ,cAEA,IAAIgJ,EAAYH,EAAO6G,QAAQzG,EAAQjJ,GAQvC,OAPAgJ,EAAU2G,QACV3G,EAAUgC,GAAKnC,EAAO0G,QAAQC,cAC9BV,GAAY,KACVA,GAAY,KACV9F,EAAU4G,MAAM,GAChB,IAEG5G,CAAS,EA4Bd6G,EAAWC,GAAcA,EAAUvK,MAAMN,KAAK,MAmDlD,MAiBM8K,EAAWhQ,GACR,UAAWA,EAGpB,IASIiQ,EAAuBC,GACH,mBAARA,EAAqBA,IAAQA,EAGzC,EAAS,CAACnM,EAAUiI,EAAUxH,SAAUsC,GAAM,IACzCkF,EAAQ,iBAAgBlF,EAAM,MAAQ,KAAM/C,GAsBrD,MAEMoB,EAAQ,CAACgL,EAAaC,IAAWpL,OAAOqL,OAAO,CAAC,EAAGF,EAAaC,GAgDtE,IAAIE,EAAmB,CACrB,cAAe,GACf,cAAe,GACf,YAAa,GACb,aAAc,GACd,cAAe,GACfC,MAAO,GACPC,UAAW,uBAuCb,MAAMC,EACJzE,QACA0E,SACAzC,eACA0C,wBACAC,SAAW,CACTpI,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,WAAW,GAEbkI,KACA5F,GACA6F,MACAhI,OACAiI,SAAW,OAEX,WAAAC,CAAYhF,EAAS/L,EAAU,CAAC,GAnElC,IAA2BiI,EAoEvBhI,KAAK2Q,KAAO1L,EAAMyD,EAAiB3I,GACnCC,KAAK8L,QApEiB,iBADC9D,EAqEU8D,GApEA,EAAO9D,GAASA,EAqEjDhI,KAAKwQ,SAAW,GAChBxQ,KAAK+N,eAAiB,EACtB/N,KAAK6Q,SAAW,OAEhB7Q,KAAKyQ,wBAA0B,KAC/BzQ,KAAK0Q,SAAWzL,EAAM,CAAC,EAAGoD,GAC1BrI,KAAK+K,GApKkBQ,KAAKE,SAAS1G,WAAWgM,UAAU,EAAG,GAqK7D/Q,KAAK4Q,MAxfG,SAASI,GACnB,IAAIzO,EAAM,SAAS0O,GAIjB,OAHAhJ,EAAQgJ,GAAO9K,SAAS+K,GACfC,EAAGC,IAAIC,OAAOH,EAAK5C,MAAMgD,WAAYC,EAAe,IAAKL,OAE3DlR,IACT,EAMIuR,EAAkB1B,IACpBA,EAAU2B,kBAAoB,WAC5B,OAAOC,QAAQzR,KAAK0R,UAAY1R,KAAK2R,YAAc3R,KAAK4R,UAC1D,EACO/B,GAULgC,EAAY,IAAM5L,MAAM2F,KAAKuF,EAAGW,UAIhCX,EAAqB,IAAIY,IAE7B,OADAxP,EAAIyO,GACG,CACLzO,MACA6O,IA1BQ,SAASnP,EAAOwC,GACxB,IAAIjD,EAAO,IAAI2P,EAAG3P,QAClB2P,EAAGC,IAAI5P,EAAKS,GAAQsP,EAAe9M,GACrC,EAwBEuN,KAdS,WACTb,EAAqB,IAAIY,IACzBxP,EAAIyO,EACN,EAYEiB,KAPS,CAACvK,EAAKwK,GAAgB,IAAUA,EAAgBf,EAAGgB,OAAOzK,GAAOyJ,EAAGrJ,IAAIJ,GAAKuK,MAAO,EAQ7FG,MAnBU,WACVjB,EAAGhL,SAAS1B,UAAgBA,EAAKwN,MACnC,EAkBEvO,QAXagE,GAAQyJ,EAAGgB,OAAOzK,GAY/B2K,SAXa,CAACzL,GAAM,IAAUA,EAAMiL,IAAcA,IAAYS,QAAQtQ,IAAOA,EAAEiQ,OAY/EM,SAfa,IAAMpB,EAgBnBqB,YAlCgB,IAAMX,IAAYS,QAAQpK,GAAUA,EAAMwJ,WAoC9D,CA6ciBe,CAAM,CAAC,CAAEC,MAAO1S,KAAK2Q,KAAK3G,cACvChK,MAAK,EAAcD,GACnBC,KAAK4I,OAAS5I,MAAK,IACnBA,KAAK8L,QAAQwD,QAAQqD,SAAW3S,KAAK+K,GACrCF,EAAiBJ,GACbzK,KAAK2Q,KAAKzG,QAAQtJ,QACpBZ,MAAK,GAET,CAIA,EAAA4S,GACE,OAAI5S,KAAK0Q,SAASpI,QACTtI,MAETA,MAAK,IACAA,KAAK2Q,KAAKxG,kBArMM2B,EAyML9L,KAAK8L,QAzMSxG,EAyMAtF,MAAK,EAAMqB,KAAKrB,MAxMjC,IAAI6S,sBACjB,CAACC,EAASC,KACRD,EAAQ3M,SAAS6M,IACXA,EAAMC,iBACR3N,IACAyN,EAAUG,UAAUpH,GACtB,GACA,GAEJ,CAAEqH,UAAW,IAENC,QAAQtH,GA8LR9L,OAJLA,MAAK,IACEA,OAvMW,IAAC8L,EAASxG,CA2MhC,CACA,OAAA5B,CAAQ2P,GAAqB,GAC3BrT,KAAKwQ,UAA2BxQ,KAAKwQ,SA7T9BrK,QAAQN,cACV,IA6TLkK,EAAoBsD,IAAuBrT,KAAK4I,QAAU5I,MAAK,EAAYA,KAAK4I,QAChF5I,KAAK0Q,SAASjI,WAAY,CAC5B,CACA,KAAA2J,CAAMkB,IACHtT,KAAKuT,GAAG,cAAgBvT,KAAK0D,UAC1B4P,GACFtT,KAAK4Q,MAAMoB,OACXsB,EAAQtT,OAERA,KAAK4Q,MAAMwB,QAEbpS,KAAK+N,eAAiB,EACtB,IAAK,IAAIyF,KAAYxT,KAAK0Q,SACxB1Q,KAAK0Q,SAAS8C,IAAY,EAG5B,OADAxT,KAAK8L,QAAQ9L,MAAK,IAAoB,QAAU,aAAe,GACxDA,IACT,CACAuT,GAAK,SAAS7L,GACZ,OAAO1H,KAAK0Q,SAAShJ,EACvB,EACA,IAAA+L,CAAKC,EAAQC,EAAa,CAAC,GACzBD,EAAS3D,EAAoB2D,GAC7B,IAAI,QAAEE,GAAYD,EACdE,EAAoB7T,MAAK,EAAmC2T,GAE5DG,EAxXR,SAAgCC,EAAKC,GAAS,GAC5C,OAAOA,EAHAtH,EAAiBN,EAGU2H,IAAOpI,EAAQoI,GAAK9K,IAAI0B,EAC5D,CAqXgBsJ,CAAuBP,EAAQ1T,KAAK2Q,KAAKjH,MACvBT,KAAKqF,IACjC,MAAO,CACLhJ,KAAM,IAAMtF,MAAK,EAAMsO,GACvBA,OACAoE,MAAOkB,IAnLW9T,EAmLiBwO,EAnLV,sBAAsBH,KAAKrO,EAAGoU,YAmLZ,EAAIlU,MAAK,IACpD0R,SAAUpD,EAAK6F,WAAaC,KAAKC,WApLhB,IAACvU,CAqLnB,IAECwU,EAAe,CACjBT,EAAkB,GAClB,CAAEvO,KAAM4J,eAAkBlP,KAAK2Q,KAAKvG,aAAasJ,EAAQ1T,UACtD8T,EACH,CAAExO,KAAM4J,eAAkBlP,KAAK2Q,KAAKtG,YAAYqJ,EAAQ1T,OACxD6T,EAAkB,IAEpB,OAAO7T,MAAK,EAAgBsU,EAAcX,EAC5C,CACA,MAAMA,EAAa,CAAC,GAClB,OAAO3T,MAAK,EACV,CACEsF,KAAM,IAAMtF,MAAK,EAAM0K,EAAc,OACrCgH,UAAU,GAEZiC,EAEJ,CACA,IAAAY,CAAKC,EAAab,EAAa,CAAC,GAC9Ba,EAAczE,EAAoByE,GAClC,IAAIX,EAAoB7T,MAAK,EAAmC2T,IAC5D,QAAEC,EAAO,GAAE5F,GAAO2F,EAClBc,EAAgB5G,EAAqB,CACvCC,WAAY9N,KAAK4Q,MAAM4B,cACvB3O,SAA0B,OAAhB2Q,EAAuB,GAAKA,EACtCxG,KACAD,eAAgB/N,MAAK,IAEnB0U,EAAkBD,EAAgB,GAAK,EAAI,EAE/C,OADAzU,KAAKyQ,wBAA0BzQ,MAAK,EAAyByU,EACtDzU,MAAK,EACV,CACE6T,EAAkB,MACflF,EACD,CACErJ,KAAM,IAAMtF,MAAK,EAAM0U,GACvBhC,MAAOkB,EAAU,EAAI5T,MAAK,IAC1B2R,YAAY,GAEdpG,KAAKC,IAAIiJ,IAEXZ,EAAkB,IAEpBF,EAEJ,CACA,IAAAgB,CAAKrP,EAAMqO,EAAa,CAAC,GACvB,IAAIE,EAAoB7T,MAAK,EAAmC2T,GAChE,OAAO3T,MAAK,EACV,CAAC6T,EAAkB,GAAI,CAAEvO,KAAM,IAAMA,EAAKtF,OAAS6T,EAAkB,IACrEF,EAEJ,CACA,OAAA5T,CAAQ4Q,EAAMgD,EAAa,CAAC,GAG1B,OAFAhD,EAAOZ,EAAoBY,GAC3B3Q,MAAK,EAAe2Q,GACb3Q,MAAK,EAAgB,CAAC,EAAG2T,EAClC,CACA,KAAAjE,CAAMkF,EAAcjB,EAAa,CAAC,GAChC,OAAO3T,MAAK,EACV,CAAE0S,MAAO3C,EAAoB6E,IAC7BjB,EAEJ,CACA,OAAOkB,EAAgB,KAAMlB,EAAa,CAAC,GACzCkB,EAAgB9E,EAAoB8E,GACpC,IAAIhB,EAAoB7T,MAAK,EAAmC2T,GAC5DmB,EAAMD,GACN,QAAEjB,EAAO,GAAE5F,GAAO2F,EAClBoB,EAAqB/U,KAAK4Q,MAAM4B,cAChCwC,EAAS,KACC,OAARF,EACKC,EAAmBnU,OAExB8M,EAASoH,GACJA,EAEFjH,EAAqB,CAC1BC,WAAYiH,EACZlR,SAAUiR,EACV/G,eAAgB/N,MAAK,EACrBgO,OAXS,GAcb,OAAOhO,MAAK,EACV,CACE6T,EAAkB,MACflF,EACD,CACErJ,KAAMtF,MAAK,EAAQqB,KAAKrB,MACxB0S,MAAOkB,EAAU,EAAI5T,MAAK,EAAS,GACnC4R,WAAW,GAEboD,GAEFnB,EAAkB,IAEpBF,EAEJ,CACA,MAAAsB,GACEjV,KAAK0Q,SAASlI,QAAS,CACzB,CAUA,KAAA0M,CAAMpG,EAAK,UAIT,OAFA9O,MAAK,IACLA,MAAK,GAAM,GAAOmV,KAAKrG,GAChB9O,IACT,CACA,QAAAuS,GACE,OAAOvS,KAAK4Q,KACd,CACA,UAAAwE,GACE,OAAOpV,KAAK2Q,IACd,CACA,aAAA0E,CAActV,GACZ,OAAOC,MAAK,EAAeD,EAC7B,CACA,UAAAuV,GACE,OAAOtV,KAAK8L,OACd,CACA,KAAAyJ,CAAM5B,EAAa,CAAC,GAClB,OAAO3T,MAAK,EAAgB,CAAEsF,KAAMtF,MAAK,EAAOqB,KAAKrB,OAAS2T,EAChE,CACA,OAAM,GACA3T,MAAK,IACPA,KAAK8L,QAAQ5D,MAAQ,GAGvBlI,MAAK,EAAUmG,QAAQnG,MAAK,EAAYqB,KAAKrB,MAE/C,CAOA,OAAM,CAAMwV,GAAW,GACrBxV,KAAK0Q,SAASpI,SAAU,EACxB,IAAImN,EAAWC,IACb1V,KAAK4Q,MAAMqB,KAAKyD,GAAOF,EAAS,EAElC,IACE,IAAI1H,EAAa,IAAI9N,KAAK4Q,MAAM2B,YAChC,IAAK,IAAItQ,EAAQ,EAAGA,EAAQ6L,EAAWlN,OAAQqB,IAAS,CACtD,IAAK0T,EAAU9F,GAAa/B,EAAW7L,GACvC,IAAI4N,EAAUoC,KAAd,CAEA,IAAKpC,EAAU+B,WAAa/B,EAAU+B,WAAa5R,MAAK,EAAUY,OAAQ,CACxE,IAAIgV,QAAiB5V,MAAK,EAAqBiC,EAAO6L,GACtD7H,MAAM2P,EAAW3T,GAAOqH,KAAKrH,EAAQ,GAAGgH,KAAI,CAAC4M,EAAGC,IAAMD,EAAIC,IAAG3P,SAASnE,IACpE,IAAK0F,GAAOoG,EAAW9L,GACvByT,EAAQ/N,EAAI,IAEdzF,EAAQ2T,CACV,CACAH,EAAQE,EATE,CAUZ,CACA,IAAKH,EACH,OAAOxV,KAIT,GAFAA,KAAK0Q,SAASnI,WAAY,QACpBvI,KAAK2Q,KAAKnG,cAAcxK,OACzBA,KAAK2Q,KAAK/G,KACb,KAAM,GAER,IAAI8I,EAAQ1S,KAAK2Q,KAAK9G,UACtB7J,MAAK,GAAMkP,gBACHlP,MAAK,EAAU0S,EAAM,IAC3B1S,MAAK,GAAO,GACX0S,EAAM,GACX,CAAE,MAAO9P,GACT,CACA,OAAO5C,IACT,CACA,OAAM,CAAMkR,GAjSa,IAACD,EAAOlD,EAAgBgI,EAkS/C/V,KAAK+N,gBAlSmBkD,EAmStBC,EAnS6BnD,EAoS7B/N,KAAK+N,eApSwCgI,EAqS7C/V,MAAK,EApSFuL,KAAKyK,IACVzK,KAAK0K,IAAIlI,EAAiBkD,EAAO,GACjC8E,EAAkBnV,SA3CG,EAACkL,EAASoK,EAAUC,KAC3C,IAAIC,EA8U6BpW,MAAK,EAAWA,KAAK+N,eA9UA,GAClDnF,EAAS,EAAO,IAAIR,IAAgB0D,IACxCA,EAAUsK,GAAoB1R,YAAcoH,GACpCK,aAAavD,EAAQwN,GAAsB,KAAK,EA2UtDC,CAAiBrW,KAAK8L,QACxB,CAKA,OAAM,CAAU4G,GACd,IAAI4D,EAAwBtW,MAAK,EACjCsW,SAA+BtW,MAAK,EAAM,CAAEkI,MAAOoO,IACnD,IAAIxI,EAAa9N,MAAK,EAAUiJ,KAAKiD,GAC5B,CACLmF,SACA,CACE/L,KAAMtF,MAAK,EAAQqB,KAAKrB,MACxB0S,MAAO1S,MAAK,EAAS,GACrB4R,WAAW,EACXJ,kBAAmB,KAAM,MAI/B,IAAK,IAAIvP,EAAQ,EAAGA,EAAQ6L,EAAWlN,OAAQqB,UACvCjC,MAAK,EAAqBiC,EAAO6L,GAEzC9N,KAAK4Q,MAAMwB,QACXpS,KAAK4Q,MAAMQ,IAAI,EAAG,CAAEsB,SACtB,CACA,GAAqBzQ,EAAO6L,GAC1B,MA5fWoB,QACbjN,QACA6L,aACAvI,OACAqD,SACA2N,oBAEA,IAAI1G,EAAY/B,EAAW7L,GAAO,GAC9BuU,EAAe,GACfC,EAAYxU,EACZyU,EAAa7G,EACb8G,EAAkB,IAAMD,IAAeA,EAAWhE,MAClDlB,EAAoB3B,EAAU2B,qBAAuB+E,EAAc1N,UACvE,KAAO8N,KACLH,EAAahJ,KAAKkJ,GAClBC,KAAqBF,IACrBC,EAAa5I,EAAW2I,GAAa3I,EAAW2I,GAAW,GAAK,KAElE,GAAID,EAAa5V,OAMf,aALMiO,GAAYK,UAChB,IAAK,IAAI0H,KAAKJ,QACN5G,EAAQgH,EAChB,IAEKH,EAAY,EAErB,IACI1W,EADAgJ,EAAYoG,EAAwBvG,GAqBxC,OAnBIG,IACFhJ,EAAU,IACLgJ,EAAU8N,OAAOC,oBACpBpE,MAAOlB,EAAoB+E,EAAczN,eAAiB,UAGxDvD,GAAK2J,UACLnG,GAAayI,GACfzI,EAAUgO,eAENlI,GAAY,KAChBe,EAAQC,EAAU,GAClB,GACDA,EAAU6C,YAnEc,GAC3B9J,SACA7I,UACAwW,oBAEA,IAAK3N,IAAW2N,EACd,OACF,IACIS,EADAjO,EAAYoG,EAAwBvG,GAEpCG,IACFhJ,EAAQ2S,MAAQ3J,EAAU8N,OAAOC,oBAAoBpE,MACrDsE,EAAiBjO,EAAUkO,YAC3BlO,EAAUgO,UAEZ,IAAIG,EAAe1H,EAAmB,CACpC5G,SACAI,OAAQuN,EAAcxN,UAAUC,OAChCjJ,YAKF,OAHIiX,IACFE,EAAaD,YAAcD,GAEtBE,CAAY,EA8CbC,CAAuB,CAC3BvO,SACA7I,UACAwW,kBAEKtU,CAAK,EA6cHmV,CAAS,CACdnV,QACA6L,aACAvI,KAAMvF,MAAK,EAAMqB,KAAKrB,MACtB4I,OAAQ5I,KAAK4I,OACb2N,cAAevW,KAAK2Q,KAAK/H,QAE7B,CACA,OAAM,CAAMyO,EAAU3E,EAAO4E,GAAS,GAChCtX,KAAK0Q,SAASlI,cACV,IAAIuG,SAASC,IACjBhP,KAAK6Q,SAAW,KACd7Q,KAAK0Q,SAASlI,QAAS,EACvBwG,GAAS,CACV,IAGLsI,SAAgBtX,KAAK2Q,KAAKrG,WAAWtK,WA5U9B,EAACqX,EAAU3E,EAAOlC,IACpB,IAAIzB,SAASC,IAKlBwB,EAAShD,KAAK1H,YAJLoJ,gBACDmI,IACNrI,GAAS,GAEkB0D,GAAS,GAAG,IAuUnCnN,CAAK8R,EAAU3E,EAAO1S,KAAKwQ,UACjC8G,SAAgBtX,KAAK2Q,KAAKpG,UAAUvK,KACtC,CAIA,OAAM,GAEJ,IADCA,MAAK,KAAqBA,KAAK4I,QAAU5I,KAAK8L,QAAQb,YAAYjL,KAAK4I,QACpE5I,MAAK,EAAqB,CAhXZ,EAAC+K,EAAIe,KACzB,IACIyL,EAAiB,IADEpP,MAAmB4C,QACD3C,IACrCoP,EAAiBC,iBAAiB3L,GAClC4L,EAAmB5S,OAAOgO,QAAQ1C,GAAkBuH,QACtD,CAACC,GAAcnT,EAAMyD,KACZ,GAAG0P,KAAenT,sBAAyBA,MAASyD,GAASsP,EAAe/S,QAErF,IAEFoG,EACE,GAAG0M,wCAAqDG,MACxD3M,EACD,EAoWG8M,CAAgB7X,KAAK+K,GAAI/K,KAAK8L,SAC9B9L,KAAK4I,OAAO0G,QAAQC,cAAgBvP,KAAK+K,GACzC,IAAI,UAAEhC,GAAc/I,KAAK2Q,KAAK/H,QAC1B,OAAEI,EAAM,QAAEjJ,GAAYgJ,EAC1ByG,EAAmB,CACjBxG,SACAJ,OAAQ5I,KAAK4I,OACb7I,QAAS,CACP+X,SAAU9X,KAAK2Q,KAAKnH,eACjBzJ,IAGT,CACF,CACA,KACE,OAAO+P,EAAQ9P,KAAK8L,QACtB,CACA,GAAgBmF,EAAON,GAGrB,OAFA3Q,KAAK4Q,MAAMrO,IAAI0O,GACfjR,MAAK,EAAkB2Q,GAChB3Q,IACT,CACA,GAAkB2Q,EAAO,CAAC,GACxB,IAAI+B,EAAQ/B,EAAK+B,MACjBA,GAAS1S,KAAK4Q,MAAMrO,IAAI,CAAEmQ,SAC5B,CACA,GAAmCqF,EAAa,CAAC,GAC/C,MAAO,CACL,CAAEzS,KAAM,IAAMtF,MAAK,EAAe+X,IAClC,CAAEzS,KAAM,IAAMtF,MAAK,EAAeA,KAAK2Q,OAE3C,CACA,OAAM,CAAeA,GACnB3Q,KAAK2Q,KAAO1L,EAAMjF,KAAK2Q,KAAMA,EAC/B,CAKA,KACE,IAAIzG,EAAUlK,KAAK2Q,KAAKzG,QAAQoI,QAAQoB,KAAaA,IACrDxJ,EAAQ/D,SAAQ,CAACuN,EAAQzR,KAEvB,GADAjC,KAAKyT,KAAKC,GACNzR,EAAQ,IAAMiI,EAAQtJ,OACxB,OAEF,IAAIoX,EAAahY,KAAK2Q,KAAKhI,WAAa,CAAC,CAAErD,KAAM,IAAMtF,MAAK,EAAM0K,EAAc,OAAQgH,UAAU,IAAU/C,EAC1G,CACErJ,KAAMtF,MAAK,EAAQqB,KAAKrB,MACxB0S,MAAO1S,MAAK,EAAS,IAEvBA,KAAK4Q,MAAM4B,cAAc5R,QAE3BZ,MAAK,EAAegY,EAAW,GAEnC,CACA,GAAiBjY,IACfA,EAAQ6I,OAjee,CAAC2N,IAC1B,GAA6B,iBAAlBA,EAA4B,CACrC,IAAIwB,EAAa,CAAC,GACZ/O,OAAQiP,EAAelY,QAASmY,GAAmBxP,EAAgBE,OAAOG,UAShF,OARAgP,EAAWhP,UAAYwN,EAAcxN,WAAa,CAAC,EACnDgP,EAAWhP,UAAUC,OAASuN,EAAcxN,WAAWC,QAAUiP,EACjEF,EAAWhP,UAAUhJ,QAAUkF,EAC7BiT,EACA3B,EAAcxN,WAAWhJ,SAAW,CAAC,GAEvCgY,EAAWlP,UAAY0N,EAAc1N,WAAaH,EAAgBE,OAAOC,UACzEkP,EAAWjP,eAAiByN,EAAczN,gBAAkBJ,EAAgBE,OAAOE,eAC5EiP,CACT,CACA,OAAsB,IAAlBxB,EACK7N,EAAgBE,OAElB2N,CAAa,EAgdD4B,CACfpY,EAAQ6I,QAAUF,EAAgBE,QAEpC5I,KAAK2Q,KAAKzG,QAAUlK,MAAK,EACvBiI,EAAQjI,KAAK2Q,KAAKzG,UAEpBlK,KAAK2Q,KAAO1L,EAAMjF,KAAK2Q,KAAM,CAC3BjH,MAAO1J,MAAK,GAAYA,KAAK2Q,KAAKjH,KAClCI,gBAAiBqB,EAAenL,KAAK2Q,KAAK7G,iBAC1CD,UAAWsB,EAAenL,KAAK2Q,KAAK9G,YACpC,EAEJ,GAAyBK,GACvB,IAAIkO,EAAiBpY,KAAK8L,QAAQW,UAClC,OAAK2L,GAGLpY,KAAK8L,QAAQW,UAAY,GACrBzM,KAAK2Q,KAAK1G,aACZjK,KAAK8L,QAAQW,UAAY2L,EACzBvM,EAAgB7L,KAAK8L,SACrB9L,MAAK,EACH2O,EACE,CACErJ,KAAMtF,MAAK,EAAQqB,KAAKrB,MACxB0S,MAAO1S,MAAK,EAAS,GACrB4R,WAAW,GAEb5R,MAAK,EAAUY,SAGZsJ,IAzbS6J,EA2bEqE,EA1bfrE,EAAIsE,QAAQ,gBAAiB,IAAIC,OAAOC,MAAM,wBA0bfC,OAAOtO,IAlBlCA,EAzab,IAAsB6J,CA4bpB,CAKA,KACE,GAAI/T,MAAK,EACP,OAAO,KAET,IAAI4I,EAAS8B,EAAc,QAE3B,OADA9B,EAAO6P,UAAYrQ,EACdpI,MAAK,GAIV4I,EAAO6D,UAAYL,EAAcpM,KAAK2Q,KAAKpH,YAAYkD,UAChD7D,IAJLA,EAAO8P,MAAMC,WAAa,SACnB/P,EAIX,CACA,GAAegQ,GACb,IAAIlG,EAAQ1S,KAAK2Q,KAAK7G,gBACtB9J,KAAK4Q,MAAMrO,IAAI,CAAC,CAAEmQ,MAAOA,EAAM,OAASkG,EAAO,CAAElG,MAAOA,EAAM,KAChE,CACA,GAAMpE,GA9iBgB,EAACuK,EAAgBC,KACvC,GAAIhJ,EAAQ+I,GAEV,YADAA,EAAe3Q,MAAQ,GAAG2Q,EAAe3Q,QAAQ4Q,EAAUC,eAG7DD,EAAUrM,UAAY,GACtB,IAAIzJ,GARemK,EAQQ2L,EAAUvL,eART,QAAQY,KAAKhB,GAAM6L,SAQQH,EAGrDC,EAAUvL,gBAAkBsL,GAXZ,IAAC1L,EAanBnK,EAAOmJ,aACL2M,EACA,EAAO,IAAM1Q,EAAcpF,IAAW,KACvC,EAiiBCiW,CAAkBjZ,KAAK8L,QAASwC,EAClC,CACA,KACOtO,MAAK,EAAUY,SAEhBZ,MAAK,EACPA,KAAK8L,QAAQ5D,MAAQlI,KAAK8L,QAAQ5D,MAAMlC,MAAM,GAAI,GAElDhG,MAAK,EAAYA,MAAK,EAAUA,KAAK+N,iBAEzC,CACA,GAAYZ,GAjhBK,EAACA,EAAM+L,KACxB,IAAK/L,EACH,OACF,IAAIgM,EAAahM,EAAKzI,YACHyU,EAAWpN,WAAWnL,OAAS,GAAKuY,EAAWzK,WAAWwK,GAAe,EAGxF,GAKSvW,QAAQ,EAsgBnByW,CAAWjM,EAAMnN,KAAK8L,QACxB,CACA,GAAS7J,EAAQ,GACf,OAjzBJ,SAAuBlC,GACrB,IAAI,MAAEgK,EAAK,YAAEN,EAAW,SAAEE,GAAa5J,EAEvC,OADA0J,EAA8B,OAAhBA,EAAuBA,EAAcM,EAAQ,EACpDJ,EAAW,CAChB0B,EAActB,EAAOuB,EAAMvB,IAC3BsB,EAAc5B,EAAa6B,EAAM7B,KAC/B,CAACM,EAAON,EACd,CA0yBW4P,CAAcrZ,KAAK2Q,MAAM1O,EAClC,CACA,KAAI,GACF,OAAOjC,KAAKyQ,yBAA2BzQ,KAAK+N,cAC9C,CACA,KAAI,GACF,OAAO+B,EAAQ9P,KAAK8L,QACtB,CACA,KAAI,GACF,QAAS9L,KAAK2Q,KAAK/H,SAAW5I,MAAK,CACrC,CACA,KAAI,GACF,OA7lBe8L,EA6lBI9L,KAAK8L,QA5lBtBgE,EAAQhE,GACHH,EAAQG,EAAQ5D,OAElBwE,EAAiBZ,GAAS,GAAMwG,QACpCpG,KAAQA,EAAEH,WAAWnL,OAAS,KALjB,IAACkL,CA8lBjB,ECv7BK,MAqDP,EArD6BhM,IAC3B,MAAMwZ,EAAK,CACTxZ,MAQJ,IAAIyQ,EAAO,iBAAkB,CAC3BxG,MAAO,GACPC,WAAY,IACZQ,cAAe,WACb8O,EAAGxZ,GAAGqC,UAAUI,IAAI,2BACtB,IAECmN,MAAM,KACNyC,OAAO,GACPsB,KAAK,aACL/D,MAAM,KACN6E,MAAM,EAAG,CAAE7B,MAAO,MAClBe,KAAK,IAAK,CAAEf,MAAO,MACnBhD,MAAM,KACN6E,KAAK,EAAG,CAAE7B,MAAO,MACjBP,OAAO,IACPsB,KAAK,cACL/D,MAAM,KACNyC,OAAO,IACPsB,KAAK,aACL/D,MAAM,KACNyC,OAAO,IACPzC,MAAM,KACNyC,OAAO,IACPsB,KAAK,eACL/D,MAAM,MACNyC,OAAO,IACPsB,KAAK,aACL/D,MAAM,KACNyC,OAAO,GACPzC,MAAM,MACN+D,KAAK,aACL/D,MAAM,KACNkD,IAOK,E,sBCrDD,MAuDP,EAvD6B9S,IAC3B,MAAMwZ,EAAK,CACTxZ,KACA0M,KAAM+M,IAAO,QACbC,UAAWD,IAAO,cAClBE,UAAWF,IAAO,eAClBG,QAASH,IAAAA,IAAW,YAAajV,WASVqV,MACvB,IAAIC,EAAgB,EAEpB/X,OAAOK,iBAAiB,UAAU,WAChC,IAAI2X,EAAKhY,OAAOiY,aAAexV,SAASyV,gBAAgBC,UACpDH,EAAKD,EAEHC,EAAK,MACPP,EAAGE,UAAUrX,UAAUI,IAAI,iBAC3B+W,EAAGE,UAAUrX,UAAUQ,OAAO,eAdpC2W,EAAGI,QAAQvT,SAAS8T,IAClBA,EAAO3W,gBAAgB,gBAAgB,MAkBrCgW,EAAGE,UAAUrX,UAAUI,IAAI,eAC3B+W,EAAGE,UAAUrX,UAAUQ,OAAO,iBAEnB,IAAPkX,IACFP,EAAGE,UAAUrX,UAAUQ,OAAO,iBAC9B2W,EAAGE,UAAUrX,UAAUQ,OAAO,iBAIlCiX,EAAgBC,GAAM,EAAI,EAAIA,CAChC,IACA,EACC,EAIDF,EAOI,EClBR,EAlC2B7Z,IACzB,MAAMwZ,EAAK,CACTxZ,KACAoa,IAAKX,IAAO,iBAAkBjV,UAC9BkI,KAAM+M,IAAO,OAAQjV,WAkBrBgV,EAAGxZ,GAAGoC,iBAAiB,SAAS,KAbbiY,MACnBb,EAAGxZ,GAAGqC,UAAU8X,OAAO,aACvBX,EAAG9M,KAAKrK,UAAU8X,OAAO,cAEzB,IACEX,EAAGY,IAAI/X,UAAU8X,OAAO,aACxBX,EAAG9M,KAAKrK,UAAU8X,OAAO,WAC3B,CAAE,MACAG,QAAQC,IAAI,0BACd,GAKEF,EAAc,GAQZ,ECsBR,EAlDwBra,IACtB,MAAMwZ,EAAK,CACTxZ,KACA0M,KAAM+M,IAAO,OAAQjV,UACrBgW,KAAMf,IAAO,QAASjV,UACtBoV,QAASH,IAAAA,IAAW,kBAAmBjV,WAGnCiW,EAAkBA,KACtBjB,EAAGI,QAAQvT,SAAS8T,IAClBA,EAAO3W,gBAAgB,iBACvBgW,EAAG9M,KAAKrK,UAAUQ,OAAO,cAAc,GACvC,EASc6X,MAChBlB,EAAGxZ,GAAGoC,iBAAiB,SAAS,KACVoX,EAAGxZ,GAAGY,aAAa,iBAErC6Z,KAEAA,IAXJjB,EAAG9M,KAAKrK,UAAUQ,OAAO,eACzB2W,EAAGxZ,GAAGyD,aAAa,gBAAiB,QACpC+V,EAAG9M,KAAKrK,UAAUI,IAAI,eAWpB,IAGF,IACE+W,EAAGgB,KAAKpY,iBAAiB,SAAS,KAChCqY,GAAiB,GAErB,CACA,MACEH,QAAQC,IAAI,kBACd,GAKAG,EAGI,ECjBR,EA9B0B1a,IACxB,MAAMwZ,EAAK,CACTxZ,KACA2a,IAAKlB,IAAAA,IAAW,MAAOzZ,GACvB4a,OAAQnB,IAAAA,IAAW,SAAUzZ,IAI/Bsa,QAAQC,IAAI,oBAEcM,MACxB,MAAMC,EAAYtB,EAAGxZ,GAAGY,aAAa,qBAErC4Y,EAAGmB,IAAItU,SAAS0U,IACdA,EAAGnC,MAAMoC,gBAAkBF,CAAS,IAGtCtB,EAAGoB,OAAOvU,SAAS4U,IACjBA,EAAM5Y,UAAUI,IAAI,kBACpBwY,EAAMrC,MAAMsC,YAAcJ,CAAS,GACnC,EAIFD,EAGI,ECvBR,EAPmB,CAACM,EAAQpX,KAC1B,QAAWA,EAAUS,UAClB6B,SAASrG,IACRmb,EAAOnb,EAAG,GACV,ECAN,EANwBA,IAChB+B,OAAOqZ,sBAA0B5W,SAAS6W,cAC9Crb,EAAGqC,UAAUI,IAAI,OACnB,ECHe,EAACuM,EAAK,YASrBxK,SAASpC,iBAAiB,oBAAoB,KAP5C4M,IAWKjN,OAAOuZ,iBAWK,IAAIC,kBATHC,IAChB,IAAK,IAAItZ,EAAI,EAAGuZ,EAAMD,EAAc1a,OAAQoB,EAAIuZ,EAAKvZ,IACnD,GAA8B,cAA1BsZ,EAActZ,GAAGyR,KAAsB,CAX/C3E,IAaM,KACF,CACF,IAMOsE,QAAQ9O,SAASkX,eAAe,kBAF1B,CAAEC,WAAW,EAAMC,SAAS,GAEwB,IAClE,EAAM,ECcX,EAdmB,KACjB,EAAW,EAAW,mBACtB,EAAW,EAAc,kBACzB,EAAW,EAAgB,QAC3B,EAAW,EAAY,gBACvB,EAAW,EAAS,mBACpB,EAAW,EAAc,kBACzB,EAAW,EAAW,cAAc,G","sources":["webpack:///../node_modules/a11y-accordion-tabs/a11y-accordion-tabs.js","webpack:///../node_modules/dom-select/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./stories/components/accordion-tabs/accordion-tabs.init.js","webpack:///../node_modules/typeit/dist/index.es.js","webpack:///./stories/blocks/animated-type/animated-type.init.js","webpack:///./stories/components/global-header/global-header.init.js","webpack:///./stories/blocks/menu-toggle/menu-toggle.init.js","webpack:///./stories/blocks/nav-item/nav-item.init.js","webpack:///./stories/layouts/work-study/work-study.init.js","webpack:///./js/lib/initModule.js","webpack:///./js/lib/detectIE11.js","webpack:///./js/lib/domReady.js","webpack:///./js/browser.js"],"sourcesContent":["/*\n* Accessible AccordionTabs, by Matthias Ott (@m_ott)\n*\n* Based on the work of @stowball (https://codepen.io/stowball/pen/xVWwWe)\n*\n*/\n(function () {\n\n 'use strict';\n\n function AccordionTabs (el, options) {\n\n if (!el) {\n return;\n }\n\n this.el = el;\n this.tabTriggers = this.el.getElementsByClassName('js-tabs-trigger');\n this.tabPanels = this.el.getElementsByClassName('js-tabs-panel');\n this.accordionTriggers = this.el.getElementsByClassName('js-accordion-trigger');\n\n this.options = this._extend({\n breakpoint: 640,\n tabsAllowed: true,\n selectedTab: 0,\n startCollapsed: false\n }, options);\n\n if(el.getAttribute('data-tabs-allowed') == \"true\"){\n this.options.tabsAllowed = true;\n } else if (el.getAttribute('data-tabs-allowed') == \"false\") {\n this.options.tabsAllowed = false;\n }\n\n if(el.getAttribute('data-breakpoint')){\n this.options.breakpoint = parseInt(el.getAttribute('data-breakpoint'));\n }\n\n if(el.getAttribute('data-selected-tab')){\n this.options.selectedTab = parseInt(el.getAttribute('data-selected-tab'));\n }\n\n if(el.getAttribute('data-start-collapsed') == \"true\"){\n this.options.startCollapsed = true;\n } else if (el.getAttribute('data-start-collapsed') == \"false\") {\n this.options.startCollapsed = false;\n }\n\n if (this.tabTriggers.length === 0 || this.tabTriggers.length !== this.tabPanels.length) {\n return;\n }\n\n this._init();\n }\n\n AccordionTabs.prototype._init = function () {\n\n var _this = this;\n\n this.tabTriggersLength = this.tabTriggers.length;\n this.accordionTriggersLength = this.accordionTriggers.length;\n this.selectedTab = 0;\n this.prevSelectedTab = null;\n this.clickListener = this._clickEvent.bind(this);\n this.keydownListener = this._keydownEvent.bind(this);\n this.keys = {\n prev: 37,\n next: 39,\n space: 32,\n enter: 13\n };\n\n if(window.innerWidth >= this.options.breakpoint && this.options.tabsAllowed) {\n this.isAccordion = false;\n } else {\n this.isAccordion = true;\n }\n\n for (var i = 0; i < this.tabTriggersLength; i++) {\n this.tabTriggers[i].index = i;\n this.tabTriggers[i].addEventListener('click', this.clickListener, false);\n this.tabTriggers[i].addEventListener('keydown', this.keydownListener, false);\n\n if (this.tabTriggers[i].classList.contains('is-selected')) {\n this.selectedTab = i;\n }\n\n this._hide(i);\n }\n\n for (var i = 0; i < this.accordionTriggersLength; i++) {\n this.accordionTriggers[i].index = i;\n this.accordionTriggers[i].addEventListener('click', this.clickListener, false);\n this.accordionTriggers[i].addEventListener('keydown', this.keydownListener, false);\n\n if (this.accordionTriggers[i].classList.contains('is-selected')) {\n this.selectedTab = i;\n }\n }\n\n if (!isNaN(this.options.selectedTab)) {\n this.selectedTab = this.options.selectedTab < this.tabTriggersLength ? this.options.selectedTab : this.tabTriggersLength - 1;\n }\n\n this.el.classList.add('is-initialized');\n if (this.options.tabsAllowed) {\n this.el.classList.add('tabs-allowed');\n }\n\n // If the accordion should not start collapsed, open the first element\n if(!this.options.startCollapsed || !this.isAccordion){\n this.selectTab(this.selectedTab, false);\n }\n\n var resizeTabs = this._debounce(function() {\n // This gets delayed for performance reasons\n if(window.innerWidth >= _this.options.breakpoint && _this.options.tabsAllowed) {\n _this.isAccordion = false;\n if (_this.options.tabsAllowed) {\n _this.el.classList.add('tabs-allowed');\n }\n _this.selectTab(_this.selectedTab);\n } else {\n _this.isAccordion = true;\n _this.el.classList.remove('tabs-allowed');\n if(!_this.options.startCollapsed){\n _this.selectTab(_this.selectedTab);\n }\n }\n\n }, 50);\n\n window.addEventListener('resize', resizeTabs);\n\n };\n\n AccordionTabs.prototype._clickEvent = function (e) {\n\n e.preventDefault();\n\n var closestTrigger = this._getClosest(e.target, '.js-tabs-trigger');\n var closestTab = 0;\n\n if (closestTrigger == null) {\n closestTrigger = this._getClosest(e.target, '.js-accordion-trigger');\n closestTab = this._getClosest(closestTrigger, '.js-tabs-panel');\n this.isAccordion = true;\n } else {\n this.isAccordion = false;\n }\n\n var targetIndex = e.target.index != null ? e.target.index : closestTab.index;\n\n if (targetIndex === this.selectedTab && !this.isAccordion) {\n return;\n }\n\n this.selectTab(targetIndex, true);\n };\n\n AccordionTabs.prototype._keydownEvent = function (e) {\n\n var targetIndex;\n\n if (e.keyCode === this.keys.prev || e.keyCode === this.keys.next || e.keyCode === this.keys.space || e.keyCode === this.keys.enter) {\n e.preventDefault();\n }\n else {\n return;\n }\n\n if (e.keyCode === this.keys.prev && e.target.index > 0 && !this.isAccordion) {\n targetIndex = e.target.index - 1;\n }\n else if (e.keyCode === this.keys.next && e.target.index < this.tabTriggersLength - 1 && !this.isAccordion) {\n targetIndex = e.target.index + 1;\n }\n else if (e.keyCode === this.keys.space || e.keyCode === this.keys.enter) {\n targetIndex = e.target.index;\n }\n else {\n return;\n }\n\n this.selectTab(targetIndex, true);\n };\n\n AccordionTabs.prototype._show = function (index, userInvoked) {\n\n this.tabPanels[index].removeAttribute('tabindex');\n\n this.tabTriggers[index].removeAttribute('tabindex');\n this.tabTriggers[index].classList.add('is-selected');\n this.tabTriggers[index].setAttribute('aria-selected', true);\n\n this.accordionTriggers[index].setAttribute('aria-expanded', true);\n\n var panelContent = this.tabPanels[index].getElementsByClassName(\"content\")[0];\n panelContent.setAttribute('aria-hidden', false);\n panelContent.classList.remove('is-hidden');\n panelContent.classList.add('is-open');\n\n this.tabPanels[index].classList.remove('is-hidden');\n this.tabPanels[index].classList.add('is-open');\n\n if (userInvoked) {\n this.tabTriggers[index].focus();\n }\n };\n\n AccordionTabs.prototype._hide = function (index) {\n\n this.tabTriggers[index].classList.remove('is-selected');\n this.tabTriggers[index].setAttribute('aria-selected', false);\n this.tabTriggers[index].setAttribute('tabindex', -1);\n\n this.accordionTriggers[index].setAttribute('aria-expanded', false);\n\n var panelContent = this.tabPanels[index].getElementsByClassName(\"content\")[0];\n panelContent.setAttribute('aria-hidden', true);\n panelContent.classList.remove('is-open');\n panelContent.classList.add('is-hidden');\n\n this.tabPanels[index].classList.remove('is-open');\n this.tabPanels[index].classList.add('is-hidden');\n this.tabPanels[index].setAttribute('tabindex', -1);\n };\n\n AccordionTabs.prototype.selectTab = function (index, userInvoked) {\n\n if (index === null) {\n if(this.isAccordion) {\n return;\n } else {\n index = 0;\n }\n }\n\n if(!this.tabPanels[index].classList.contains('is-hidden') && userInvoked) {\n\n if (index === this.selectedTab) {\n this.selectedTab = null;\n } else {\n this.selectedTab = null;\n this.prevSelectedTab = index;\n }\n\n this._hide(index);\n\n return;\n }\n\n if (this.isAccordion) {\n\n this.prevSelectedTab = this.selectedTab;\n this.selectedTab = index;\n\n } else {\n if (this.prevSelectedTab === null || !this.isAccordion) {\n for (var i = 0; i < this.tabTriggersLength; i++) {\n if (i !== index) {\n this._hide(i);\n }\n }\n }\n else {\n this._hide(this.selectedTab);\n }\n\n this.prevSelectedTab = this.selectedTab;\n this.selectedTab = index;\n }\n\n this._show(this.selectedTab, userInvoked);\n\n };\n\n AccordionTabs.prototype.destroy = function () {\n\n for (var i = 0; i < this.tabTriggersLength; i++) {\n this.tabTriggers[i].classList.remove('is-selected');\n this.tabTriggers[i].removeAttribute('aria-selected');\n this.tabTriggers[i].removeAttribute('tabindex');\n\n this.tabPanels[i].classList.remove('is-hidden');\n this.tabPanels[i].removeAttribute('aria-hidden');\n this.tabPanels[i].removeAttribute('tabindex');\n\n this.tabTriggers[i].removeEventListener('click', this.clickListener, false);\n this.tabTriggers[i].removeEventListener('keydown', this.keydownListener, false);\n\n delete this.tabTriggers[i].index;\n }\n\n this.el.classList.remove('is-initialized');\n };\n\n /**\n * Get the closest matching element up the DOM tree.\n * @private\n * @param {Element} elem Starting element\n * @param {String} selector Selector to match against\n * @return {Boolean|Element} Returns null if not match found\n */\n AccordionTabs.prototype._getClosest = function ( elem, selector ) {\n\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n // Get closest match\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\n if ( elem.matches( selector ) ) return elem;\n }\n\n return null;\n\n };\n\n // Pass in the objects to merge as arguments.\n // For a deep extend, set the first argument to `true`.\n AccordionTabs.prototype._extend = function () {\n\n // Variables\n var extended = {};\n var deep = false;\n var i = 0;\n var length = arguments.length;\n\n // Check if a deep merge\n if ( Object.prototype.toString.call( arguments[0] ) === '[object Boolean]' ) {\n deep = arguments[0];\n i++;\n }\n\n // Merge the object into the extended object\n var merge = function (obj) {\n for ( var prop in obj ) {\n if ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {\n // If deep merge and property is an object, merge properties\n if ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' ) {\n extended[prop] = extend( true, extended[prop], obj[prop] );\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for ( ; i < length; i++ ) {\n var obj = arguments[i];\n merge(obj);\n }\n\n return extended;\n\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n AccordionTabs.prototype._debounce = function (func, wait, immediate) {\n var timeout;\n return function() {\n var context = this, args = arguments;\n var later = function() {\n timeout = null;\n if (!immediate) { func.apply(context, args); };\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) { func.apply(context, args) };\n };\n };\n\n var slice = Array.prototype.slice;\n\n function $(expr, con) {\n return typeof expr === \"string\" ? (con || document).querySelector(expr) : expr || null;\n }\n\n function $$(expr, con) {\n return slice.call((con || document).querySelectorAll(expr));\n }\n\n // Initialization\n\n function init() {\n $$(\".js-tabs\").forEach(function (input) {\n new AccordionTabs(input);\n });\n }\n\n // Are we in a browser? Check for Document constructor\n if (typeof Document !== \"undefined\") {\n // DOM already loaded?\n if (document.readyState !== \"loading\") {\n init();\n }\n else {\n // Wait for it\n document.addEventListener(\"DOMContentLoaded\", init);\n }\n }\n\n // Export on self when in a browser\n if (typeof self !== \"undefined\") {\n self.AccordionTabs = AccordionTabs;\n }\n\n // Expose as a CJS module\n if (typeof module === \"object\" && module.exports) {\n module.exports = AccordionTabs;\n }\n\n return AccordionTabs;\n\n})();\n","module.exports = one;\nmodule.exports.all = all;\n\nfunction one (selector, parent) {\n parent || (parent = document);\n return parent.querySelector(selector);\n}\n\nfunction all (selector, parent) {\n parent || (parent = document);\n var selection = parent.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import AccordionTabs from 'a11y-accordion-tabs';\n\nexport const Accordion = (el) => {\n const addEvents = () => {\n new AccordionTabs(el);\n }\n\n const init = () => {\n addEvents();\n };\n\n init();\n};\n\nexport default Accordion;\n","// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions)\n return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n target.insertBefore(\n character,\n select(\".\" + CURSOR_CLASS, target) || null\n );\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node)\n return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(//g, \"\").trim().split(//);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n };\n opts;\n id;\n queue;\n cursor;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = () => {\n }) {\n this.#attachCursor();\n this.#fire(false).then(cb);\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done)\n continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n Array(newIndex - index).fill(index + 1).map((x, y) => x + y).forEach((i) => {\n let [key] = queueItems[i];\n cleanUp(key);\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n return this;\n }\n this.statuses.completed = true;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n options.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length)\n return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","// DOM-specific JS should be done here\n// see /boilerplate/src/js/browser.js for the import pattern\n\nimport TypeIt from 'typeit';\n\nexport const AnimatedType = (el) => {\n const ui = {\n el,\n };\n\n // console.log(typeit);\n\n const startTyping = () => {\n \n\nnew TypeIt(\".animated-type\", {\n speed: 70,\n startDelay: 200,\n afterComplete: function(){\n ui.el.classList.add('animated-type--completed');\n },\n})\n .pause(500)\n .delete(6)\n .type(\"healtcare\")\n .pause(400)\n .move(-4, { delay: 100 })\n .type(\"h\", { delay: 400 })\n .pause(1000)\n .move(4, { delay: 100 })\n .delete(10)\n .type(\"government\")\n .pause(1000)\n .delete(10)\n .type(\"nonprofit\")\n .pause(1000)\n .delete(10)\n .pause(1000)\n .delete(10)\n .type(\"educational\")\n .pause(1200)\n .delete(11)\n .type(\"impactful\")\n .pause(1000)\n .delete(9)\n .pause(1500)\n .type(\"brilliant\")\n .pause(500)\n .go();\n };\n\n const init = () => {\n startTyping();\n };\n\n init();\n};\n\nexport default AnimatedType;\n","import select from 'dom-select';\n\nexport const GlobalHeader = (el) => {\n const ui = {\n el,\n body: select('body'),\n pageshell: select('.pageshell'),\n globalNav: select('.global-nav'),\n toggles: select.all('.nav-item', document),\n };\n\n const closeAllToggles = () => {\n ui.toggles.forEach((toggle) => {\n toggle.removeAttribute('aria-expanded');\n });\n }\n\n const handleBodyScroll = () => {\n let lastScrollTop = 0;\n\n window.addEventListener(\"scroll\", function(){ \n let st = window.pageYOffset || document.documentElement.scrollTop; \n if (st > lastScrollTop){\n // down scroll code\n if (st > 100) {\n ui.pageshell.classList.add('scrolled-down');\n ui.pageshell.classList.remove('scrolled-up');\n closeAllToggles();\n }\n } else {\n // up scroll code\n ui.pageshell.classList.add('scrolled-up');\n ui.pageshell.classList.remove('scrolled-down');\n\n if (st === 0) {\n ui.pageshell.classList.remove('scrolled-down');\n ui.pageshell.classList.remove('scrolled-up');\n }\n }\n // For Mobile or negative scrolling\n lastScrollTop = st <= 0 ? 0 : st;\n }, \n false\n );\n }\n\n const addEvents = () => {\n handleBodyScroll();\n };\n\n const init = () => {\n addEvents();\n };\n\n init();\n};\n\nexport default GlobalHeader;\n","import select from 'dom-select';\n\nexport const MenuToggle = (el) => {\n const ui = {\n el,\n nav: select('.js-navigation', document),\n body: select('body', document),\n };\n\n // console.log(ui);\n\n const handleToggle = () => {\n ui.el.classList.toggle('is-active');\n ui.body.classList.toggle('nav-active');\n\n try {\n ui.nav.classList.toggle('is-active');\n ui.body.classList.toggle('nav-open');\n } catch {\n console.log('global-header not found');\n }\n };\n\n const addEvents = () => {\n ui.el.addEventListener('click', () => {\n handleToggle();\n });\n }\n\n const init = () => {\n addEvents();\n };\n\n init();\n};\n\nexport default MenuToggle;\n","// DOM-specific JS should be done here\n// see /boilerplate/src/js/browser.js for the import pattern\n\nimport select from 'dom-select';\n\nexport const NavItem = (el) => {\n const ui = {\n el,\n body: select('body', document),\n main: select('#main', document),\n toggles: select.all('button.nav-item', document),\n };\n\n const closeAllSubnavs = () => {\n ui.toggles.forEach((toggle) => {\n toggle.removeAttribute('aria-expanded');\n ui.body.classList.remove('subnav-open');\n });\n }\n\n const openSubNav = () => {\n ui.body.classList.remove('subnav-open');\n ui.el.setAttribute('aria-expanded', 'true');\n ui.body.classList.add('subnav-open');\n }\n\n const addEvents = () => {\n ui.el.addEventListener('click', () => {\n let checkExpanded = ui.el.getAttribute(\"aria-expanded\");\n if (checkExpanded) {\n closeAllSubnavs();\n } else {\n closeAllSubnavs();\n openSubNav();\n }\n });\n\n try {\n ui.main.addEventListener('click', () => {\n closeAllSubnavs();\n });\n } \n catch {\n console.log('$main not found');\n }\n\n }\n\n const init = () => {\n addEvents();\n };\n\n init();\n};\n\nexport default NavItem;\n","// DOM-specific JS should be done here\n// see /boilerplate/src/js/browser.js for the import pattern\n\nimport select from 'dom-select';\n\nexport const WorkStudy = (el) => {\n const ui = {\n el,\n hrs: select.all('.hr', el),\n images: select.all('.image', el),\n };\n\n // console.log(ui);\n console.log('work study fired');\n\n const handleClientColor = () => {\n const dataColor = ui.el.getAttribute('data-client-color');\n\n ui.hrs.forEach((hr) => {\n hr.style.backgroundColor = dataColor;\n });\n\n ui.images.forEach((image) => {\n image.classList.add('client-branded');\n image.style.borderColor = dataColor;\n });\n };\n\n const init = () => {\n handleClientColor();\n };\n\n init();\n};\n\nexport default WorkStudy;\n","import select from 'dom-select';\n\nconst initModule = (method, selector) => {\n select.all(selector, document)\n .forEach((el) => {\n method(el);\n });\n};\n\nexport default initModule;\n","const addIeBodyClass = (el) => {\n if (!!window.MSInputMethodContext && !!document.documentMode) {\n el.classList.add('ie11');\n }\n};\n\nexport default addIeBodyClass;\n","const domReady = (cb = () => {}) => {\n function runOnInit() {\n cb();\n }\n\n function runOnPageChange() {\n cb();\n }\n\n document.addEventListener('DOMContentLoaded', () => {\n runOnInit();\n\n // we only need to run callback() when in Storybook\n if (!window.isTurnStorybook) return;\n\n const callback = (mutationsList) => {\n for (let i = 0, len = mutationsList.length; i < len; i++) {\n if (mutationsList[i].type === 'childList') {\n runOnPageChange();\n break;\n }\n }\n };\n\n const observer = new MutationObserver(callback);\n const config = { childList: true, subtree: false };\n\n observer.observe(document.getElementById('storybook-root'), config);\n }, false);\n};\n\nexport default domReady;\n","import Accordion from '../stories/components/accordion-tabs/accordion-tabs.init';\nimport AnimatedType from '../stories/blocks/animated-type/animated-type.init';\nimport GlobalHeader from '../stories/components/global-header/global-header.init';\nimport menuToggle from '../stories/blocks/menu-toggle/menu-toggle.init';\nimport NavItem from '../stories/blocks/nav-item/nav-item.init';\nimport WorkStudy from '../stories/layouts/work-study/work-study.init';\n// import Pageshell from '../stories/layouts/pageshell/pageshell.init';\n\nimport domReady from './lib/domReady';\nimport initModule from './lib/initModule';\nimport addIeBodyClass from './lib/detectIE11';\n\n// Intialize scripts here requiring DOM access.\n//\n// Any modules imported here should export a function\n// that takes a node as its only parameter.\n// Import the module then initialize it below inside\n// domScripts(), calling initModule() and passing in\n// the function and a selector that aligns with the element\n// you want to pass into the module.\n// initModule() calls the method on each instance\n// of the selector passed, so your script can assume\n// it is working on a unique DOM node.\n//\n// example:\n// import coolThing from '../ui/blocks/CoolThing/cool-thing.init';\n// initModule(coolThing, '.cool-thing');\n\nconst domScripts = () => {\n initModule(Accordion, '.accordion-tabs');\n initModule(AnimatedType, '.animated-type');\n initModule(addIeBodyClass, 'body');\n initModule(menuToggle, '.menu-toggle');\n initModule(NavItem, 'button.nav-item');\n initModule(GlobalHeader, '.global-header');\n initModule(WorkStudy, '.work-study');\n};\n\n// domReady ensures our scripts fire inside Storybook\n// even when navigating component to component,\n// calling the passed function on DOMContentLoaded\n// and each time the page changes, using MutationObserver\ndomReady(domScripts);\n"],"names":["AccordionTabs","el","options","this","tabTriggers","getElementsByClassName","tabPanels","accordionTriggers","_extend","breakpoint","tabsAllowed","selectedTab","startCollapsed","getAttribute","parseInt","length","_init","prototype","_this","tabTriggersLength","accordionTriggersLength","prevSelectedTab","clickListener","_clickEvent","bind","keydownListener","_keydownEvent","keys","prev","next","space","enter","window","innerWidth","isAccordion","i","index","addEventListener","classList","contains","_hide","isNaN","add","selectTab","resizeTabs","_debounce","remove","e","preventDefault","closestTrigger","_getClosest","target","closestTab","targetIndex","keyCode","_show","userInvoked","removeAttribute","setAttribute","panelContent","focus","destroy","removeEventListener","elem","selector","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","s","document","ownerDocument","querySelectorAll","item","parentNode","extended","deep","arguments","Object","toString","call","merge","obj","prop","hasOwnProperty","extend","func","wait","immediate","timeout","context","args","callNow","clearTimeout","setTimeout","apply","slice","Array","init","forEach","input","Document","readyState","self","module","exports","parent","querySelector","all","selection","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","isArray","thing","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","opacity","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","child","nodeValue","c","insertBefore","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","isNumber","Number","isInteger","countStepsToSelector","queueItems","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","parentElement","parentMatches","firstChild","isSameNode","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","animate","pause","play","execute","queueItem","isInput","handleFunctionalArg","arg","originalObj","newObj","assign","cursorFontStyles","color","transform","TypeIt","timeouts","predictedCursorPosition","statuses","opts","queue","unfreeze","constructor","substring","initialItems","steps","step","_q","set","Symbol","innerText","buildQueueItem","shouldPauseCursor","Boolean","typeable","cursorable","deletable","rawValues","values","Map","wipe","done","shouldDestroy","delete","reset","getItems","filter","getQueue","getTypeable","Queue","delay","typeitId","go","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","shouldRemoveCursor","rebuild","is","property","type","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","str","asHtml","maybeChunkStringAsHtml","outerHTML","nodeType","Node","TEXT_NODE","itemsToQueue","move","movementArg","numberOfSteps","directionalStep","exec","milliseconds","numCharacters","num","typeableQueueItems","rounds","freeze","flush","then","getOptions","updateOptions","getElement","empty","remember","cleanUp","qKey","queueKey","newIndex","x","y","printedCharacters","min","max","allChars","newCursorPosition","nodeToInsertBefore","repositionCursor","derivedCursorPosition","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","rebuildCursorAnimation","fireItem","callback","silent","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","setCursorStyles","duration","newOptions","splitItems","defaultFrames","defaultOptions","processCursorOptions","existingMarkup","replace","trim","split","concat","className","style","visibility","items","originalTarget","character","textContent","tagName","insertIntoElement","rootElement","nodeParent","removeNode","calculatePace","ui","select","pageshell","globalNav","toggles","handleBodyScroll","lastScrollTop","st","pageYOffset","documentElement","scrollTop","toggle","nav","handleToggle","console","log","main","closeAllSubnavs","addEvents","hrs","images","handleClientColor","dataColor","hr","backgroundColor","image","borderColor","method","MSInputMethodContext","documentMode","isTurnStorybook","MutationObserver","mutationsList","len","getElementById","childList","subtree"],"sourceRoot":""}