{"version":3,"file":"main.js","mappings":";uBAAIA,ECAAC,EACAC,sFCDJ,iBACA,aACA,aACA,aACA,aACA,aACA,aAA6E,mDAU5E,MARD,YACE,EAAAC,EAAAA,YACA,EAAAC,EAAAA,YACA,EAAAC,EAAAA,YACA,EAAAC,EAAAA,YACA,EAAAC,EAAAA,YACA,EAAAC,EAAAA,YACA,EAAAC,EAAAA,UACF,EAEmB,gNCVnB,SAAkCC,GAIhC,IAHA,IACMC,EASR,SAA0BC,GACxB,IAAMC,EAAkB,SAACC,GAAM,OAAMA,EAAOC,OAAS,EAAID,EAASA,EAAO,EAAE,EACrEE,EAAeC,MAAMC,KAAKN,EAASO,QAEzC,OAAOC,OAAOC,YACZL,EAAaM,KAAI,SAACC,GAAG,MAAK,CAACA,EAAKV,EAAgBD,EAASY,OAAOD,IAAM,IAE1E,CAhByBE,CADZ,IAAIC,SAAShB,IAEpBiB,EAAqB,GACzB,MAA2BP,OAAOQ,QAAQjB,GAAe,eAAE,CAAtD,k2BAAOY,EAAG,KAAEM,EAAK,KACZ,WAARN,GACEI,EAAmBG,KAAK,GAAD,OAAIP,EAAG,aAAKN,MAAMc,QAAQF,GAASA,EAAMG,KAAK,MAAQH,GACjF,SACA,OAAOF,EAAmBK,KAAK,MACjC,oBAjBA,SAAyBC,QACS,IAArBC,OAAOC,WAChBD,OAAOC,UAAUL,KAAKG,EAE1B,iBCJA,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,2BAEvBG,EAAOC,QAAU,CAEfC,QAAO,SAACC,GACN,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BH,EAAGI,MAAMC,QAAU,EACnB,SAAUC,KACHN,EAAGI,MAAMC,SAAW,IAAO,GAC9BL,EAAGI,MAAMG,QAAU,OACnBL,GAAQ,IAERM,sBAAsBF,EAEzB,CAPD,EAQF,GACF,EAGAG,OAAM,SAACT,EAAIO,GACT,OAAO,IAAIN,SAAQ,SAACC,EAASC,GAC3BH,EAAGI,MAAMC,QAAU,EACnBL,EAAGI,MAAMG,QAAUA,GAAW,QAE9B,SAAUD,IACR,IAAII,EAAMC,WAAWX,EAAGI,MAAMC,UACvBK,GAAO,IAAO,EAInBR,GAAQ,IAHRF,EAAGI,MAAMC,QAAUK,EACnBF,sBAAsBF,GAIzB,CARD,EASF,GACF,EAGAM,QAAO,SAACZ,GACN,OAAO,IAAIC,SAAQ,SAACC,EAASC,IAC3B,SAAUU,IACR,IAAIC,EAASd,EAAGe,cACTD,GAAU,IAAM,GAIrBd,EAAGI,MAAMU,OAAS,IAClBd,EAAGI,MAAMG,QAAU,OACnBL,GAAQ,KALRF,EAAGI,MAAMU,OAASA,EAAS,KAC3BN,sBAAsBK,GAMzB,CAVD,EAWF,GACF,EAGAG,SAAQ,SAAChB,EAAIiB,EAAUC,GACrB,IAAMC,EAAeF,EAASG,WAC9B,EAAAC,EAAAA,SAAErB,GAAIsB,QAAQ,CAAEC,UAAWJ,GAAgBD,EAAgB,QAC7D,mBCzDF,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,yxBAEvB,EAAAG,EAAAA,UAAE,WACA,IAIIG,EACAC,EALAC,GAAS,EAAAL,EAAAA,SAAE,wBACXM,GAAQ,EAAAN,EAAAA,SAAE,SACVO,GAAQ,EAAAP,EAAAA,SAAE,SACVQ,EAAY,IAIhBF,EAAMG,GAAG,SAAS,WAChBH,EAAMI,KAAK,YAAY,GAEvBN,EAAkBC,EAAOM,aAAeH,EAGtCL,EADEC,GAGaI,EAGjBH,EAAOJ,QACL,CACEU,WAAY,KAAOR,EAAe,MAEpC,KAGFS,YAAW,WACTN,EAAMI,KAAK,YAAY,EACzB,GAAG,IACL,IAEAH,EAAME,GAAG,SAAS,WAChBF,EAAMG,KAAK,YAAY,GAEvBN,EAAkBC,EAAOM,aAAeH,EAGtCL,EADEC,EACaI,EAAYJ,EAEZI,EAGjBH,EAAOJ,QACL,CACEU,WAAY,KAAOR,EAAe,MAEpC,KAGFS,YAAW,WACTL,EAAMG,KAAK,YAAY,EACzB,GAAG,IACL,IAEA,IAEIG,EAFEC,EAAS,EAAIC,SAASC,iBAAiB,yBAU7CH,EAAW,IAAII,sBAAqB,SAACjD,GACnCA,EAAQkD,SAAQ,SAACC,GACXA,EAAMC,gBAAkBD,EAAME,mBAAqB,KACrDT,YAAW,WACTO,EAAMG,OAAOC,UAAUC,IAAI,+BAC7B,GAAG,KACHX,EAASY,UAAUN,EAAMG,QAE7B,GACF,GAfc,CACZI,KAAM,KACNC,WAAY,MACZC,UAAW,KAcbd,EAAOI,SAAQ,SAACW,GACdhB,EAASiB,QAAQD,EACnB,IAEA,IAGIE,EAHAC,GAAW,EAAAhC,EAAAA,SAAE,0BAA0BiC,IAAI,mCAC3CC,GAAW,EAAAlC,EAAAA,SAAE,0BACbmC,EAAmBD,EAAS/E,OAAS,EAGzC,SAASiF,IACPL,EAAeG,EAASG,aACxBL,EAASM,IAAI,QAASH,EAAmBJ,EAC3C,CA2BA,SAASQ,IACP,IAAMC,EA1BR,WACE,IAAMC,EAAWpF,MAAMC,KAAKyD,SAASC,iBAAiB,2BAClDwB,EAAY,EAEhB,OAAIC,EAAStF,QAAU,EACd,GAGT,UAAIsF,GAAUvB,SAAQ,SAACwB,GACrB,IAAIC,EAAUD,EAAQE,cAAc,MAEpC,GAAID,EAAS,CACXA,EAAQ5D,MAAM8D,UAAY,OAE1B,IAAIC,EAAgBH,EAAQI,aAExBD,EAAgBN,IAClBA,EAAYM,EAEhB,CACF,IAEON,EACT,CAGoBQ,GACdjC,SAASC,iBAAiB,0BAA0B7D,QACtD,EAAI4D,SAASC,iBAAiB,2BAA2BE,SAAQ,SAACwB,GAChE,IAAMC,EAAUD,EAAQE,cAAc,MAElCD,IACFA,EAAQ5D,MAAM8D,UAAY,GAAH,OAAML,EAAS,MAE1C,GAEJ,CAcA,SAASS,IACP,IAZMC,EAYAzD,GAZAyD,EAAenC,SAASC,iBAC5B,sFACA,IAGOkC,EAAaH,aAGf,EAKHhC,SAASC,iBAAiB,qCAAqC7D,QACjE,EAAI4D,SAASC,iBAAiB,sCAAsCE,SAAQ,SAACiC,GAC3EA,EAAYpE,MAAM8D,UAAY,GAAH,OAAMpD,EAAM,KACzC,GAEJ,CAEA2C,IACAG,IACAU,KAEA,EAAAjD,EAAAA,SAAE1B,QAAQmC,GAAG,UAAU,WACrB2B,IACAG,IACAU,GACF,GACF,sFC/JA,iBACA,aAA6C,6NAExBG,EAAoB,WACvC,cAH2C,4FAG7B,QAAC,CAH4B,UA4C1C,OA5C0C,EAG3B,EAH2B,EAG3B,mBAEhB,WACE,IAAMC,EAAOC,MACb,EAAAtD,EAAAA,SAAE,uBAAuBS,GAAG,SAAS,WAC/BnC,OAAOiF,oBACTjF,OAAOkF,mBAGL,EAAAxD,EAAAA,SAAE,yBAAyByD,GAAG,YAChCC,EAAAA,QAAaC,iBAAiB,2BAG5B,EAAA3D,EAAAA,SAAEsD,MAAMG,GAAG,WACbJ,EAAKO,0BAELP,EAAKQ,wBAET,GACF,GAAC,oCAED,WACEjD,YAAW,YACT,EAAAZ,EAAAA,SAAE,uBAAuB8D,MAAK,YAC5B,EAAA9D,EAAAA,SAAEsD,MAAMS,KAAK,qBAAqBC,SAAS,WAC3C,EAAAhE,EAAAA,SAAEsD,MAAMU,SAAS,SACnB,GACF,GAAG,KAEHN,EAAAA,QAAaO,gBAAgB,0BAC/B,GAAC,qCAED,WACErD,YAAW,YACT,EAAAZ,EAAAA,SAAE,uBAAuB8D,MAAK,YAC5B,EAAA9D,EAAAA,SAAEsD,MAAMS,KAAK,qBAAqBG,YAAY,WAC9C,EAAAlE,EAAAA,SAAEsD,MAAMY,YAAY,SACtB,GACF,GAAG,KAEHR,EAAAA,QAAaC,iBAAiB,0BAChC,KA5C2C,EAG3B,OAH2B,8EA4C1C,EA1CsC,GA0CtC,8FC7CH,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,qMACFD,EAAY,yBADV,4FACU,SADV,UAcpB,OAdoB,EACU,EADV,EACU,8BAC/B,SAAuBS,GACrB,IAAMC,EAAQrD,SAASC,iBAAiB,gBAAD,OAAiBmD,EAAS,QAEjE,EAAAnE,EAAAA,SAAE,QAAQgE,SAAS,eACnB,EAAAhE,EAAAA,SAAEoE,GAAOhF,OAAO,QAAQ4E,SAAS,SACnC,GAAC,8BAED,SAAwBG,GACtB,IAAMC,EAAQrD,SAASC,iBAAiB,gBAAD,OAAiBmD,EAAS,QAEjE,EAAAnE,EAAAA,SAAE,QAAQkE,YAAY,eACtB,EAAAlE,EAAAA,SAAEoE,GAAO1F,QAAQ,QAAQwF,YAAY,SACvC,KAdqB,EACU,OADV,8EAcpB,EAb8B,GAa9B,8FCdH,iBACA,aACA,aAA6D,6NAExCG,EAAmB,WACtC,cAH2D,4FAG7C,QAAC,CAH4C,UAiC1D,OAjC0D,EAG3C,EAH2C,EAG3C,mBAEhB,WACE,IAAMhB,EAAOC,MACb,EAAAtD,EAAAA,SAAE,2CAA2CS,GAAG,SAAS,WACnDnC,OAAOiF,oBACTjF,OAAOkF,mBAGL,EAAAxD,EAAAA,SAAE,0BAA0ByD,GAAG,aACjCC,EAAAA,QAAaC,iBAAiB,2BAC9BP,EAAAA,QAAqBQ,4BAGnB,EAAA5D,EAAAA,SAAEsD,MAAMG,GAAG,YACbJ,EAAKiB,eACL,EAAAtE,EAAAA,SAAE,2CAA2CkE,YAAY,YAEzDb,EAAKkB,cACL,EAAAvE,EAAAA,SAAE,2CAA2CgE,SAAS,UAE1D,GACF,GAAC,wBAED,WACEN,EAAAA,QAAaO,gBAAgB,yBAC/B,GAAC,yBAED,WACEP,EAAAA,QAAaC,iBAAiB,yBAChC,KAjC2D,EAG3C,OAH2C,8EAiC1D,EA/BqC,GA+BrC,4BCnCH,IAAMa,EAAQC,EAAQ,KAElBC,GAAS,EAkBbpG,OAAOqG,iBAAiB,QAAQ,WAC9B,IAAMC,EAAiB7D,SAAS8D,eAAe,sBAE/C,GAAKD,EAAL,CAGA,IAAME,EAAa/D,SAAS6B,cAAc,uBACpCmC,EAAkBhE,SAAS6B,cAAc,qBAC/CkC,EAAWE,UAAYD,EAAgBE,QAAQC,UAG/C,IAAMC,EAASpE,SAAS8D,eAAe,eACjCO,EAAarE,SAASC,iBAAiB,qBAC7CoE,EAAWlE,SAAQ,SAAAW,GACjB,IAAMwD,EAAMtE,SAASuE,cAAc,UACnCD,EAAIpH,MAAQ4D,EAAM0D,GAClBF,EAAIG,KAAO3D,EAAMoD,QAAQC,UACzBC,EAAO3D,IAAI6D,EAAK,KAClB,IAEAT,EAAeD,iBAAiB,SAAS,kBAAiB,IAAXD,EApCjD,SAAsBU,GACpBV,GAAS,EACK3D,SAASC,iBAAiB,yBAElCE,SAAQ,SAAAuE,GACZA,EAAKd,iBAAiB,SAAS,SAAAe,GAC7B,IAAMH,EAAKI,SAASD,EAAEpE,OAAOiE,GAAGK,QAAQ,SAAU,KAAO,EACnDC,EAAkBT,EAAWG,GAE/BM,GACFrB,EAAM7E,SAASoB,SAAS+E,kBAAoB/E,SAASgF,gBAAiBF,EAAiB,IAE3F,GACF,GACF,CAsBoEG,CAAaZ,GAC7E,IAAI,GAlBqB,CAmB7B,oBC1CA,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,2BACvBX,EAAQ,OAEW,EAAAzE,EAAAA,SAAE,kBAERiG,YAAY,CACvBC,YAAY,EACZC,WAAY,IACZC,UAAU,EACVC,MAAM,EACNC,YAAY,EACZC,MAAM,EACNC,MAAO,EACP5J,YAAY,EACZ6J,UAAW,SAAUC,GACnB,IACMC,GADY,EAAA3G,EAAAA,SAAE0G,EAAMpF,QACKyC,KAAK,iBAAiB6C,GAAGF,EAAMjB,KAAKoB,MAAQ,GAC3E,GAAIF,EAAc,CAChB,IAAMG,EAAeH,EAAaI,KAAK,SACvCD,EAAaE,KAAKF,EAAaE,OAAOpB,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAC1E,CACF,6wBCrBF,WACM,EAAI7E,SAASC,iBAAiB,kBAAkB7D,OAC7B,GAAH,SACb4D,SAASC,iBAAiB,0CAAwC,EAClED,SAASC,iBAAiB,4CAElBE,SAAQ,SAAC+F,GACpBA,EAAKtC,iBAAiB,SAAS,SAAC+B,GAC9B,IAAMQ,EACJnG,SACG6B,cAAc,gDACduE,aAAa,kBAAoB,KACf,OAAnBD,GACFE,EAAaF,EAEjB,GACF,IAGsBnG,SAASC,iBAAiB,mBAClCE,SAAQ,SAACuE,GACrBA,EAAKd,iBAAiB,SAAS,WAE7ByC,EAD6B3B,EAAK0B,aAAa,iBAEjD,GACF,IAIE,EAAIpG,SAASC,iBAAiB,0BAA0B7D,QACpC,EACjB4D,SAASC,iBAAiB,6CAEjBE,SAAQ,SAACmG,GACrBA,EAAS1C,iBAAiB,SAAS,SAAC+B,GAClC,IACMY,EADiBZ,EAAMpF,OAAOiG,QAAQ,sBACVJ,aAAa,oBAChC,UAAfG,GAA0BF,EAAaE,EACzC,GACF,IAGF,SAASF,EAAaC,GACpBtG,SAASyG,OAAS,qBAAH,OAAwBH,EAAQ,oCACjD,CACD,CA7CD,mBCAA,eACA,aACA,aACA,aAAyC,izBAEzC,SAAWrH,GAIT,IAAIyH,EAAM1G,SAASuE,cAAc,UACjCmC,EAAIC,IAAM,+BACV,IAAIC,EAAiB5G,SAAS6G,qBAAqB,UAAU,GAC7DD,EAAeE,WAAWC,aAAaL,EAAKE,GAG5C,IAsmDQ7G,EAGFiH,EAzmDFC,EAAahI,EAAE,QAAQiI,KAAK,cAoXhC,SAASC,EAAeC,GACtB,IAAIC,EAAU9J,OAAO+J,SAASC,SAAW,KAAOhK,OAAO+J,SAASE,SAAWJ,EAC3E7J,OAAOkK,KAAKJ,EAAS,SAAU,WACjC,CAwHA,SAASK,IACPP,EAAelI,EAAEsD,MAAM5C,KAAK,YAC9B,CA+RA,SAASgI,EAAUC,GACjB,IAGIC,EAHEC,EAAOF,EAAQ,IAOrB,OANiBG,mBAAmB/H,SAASyG,QACvBuB,MAAM,MAEvB7H,SAAQ,SAAC7B,GACc,IAAtBA,EAAI2J,QAAQH,KAAaD,EAAMvJ,EAAI4J,UAAUJ,EAAK1L,QACxD,IACOyL,CACT,CAEA,SAASM,IACP5K,OAAOqB,SAAS,EAAG,GACnBK,EAAE,kCAAkCgE,SAAS,UAC7ChE,EAAE,QAAQgE,SAAS,cACnBhE,EAAE,QAAQgE,SAAS,aACrB,CAEA,SAASmF,IACPnJ,EAAE,kCAAkCkE,YAAY,UAChDlE,EAAE,QAAQkE,YAAY,cACtBlE,EAAE,QAAQkE,YAAY,aACxB,CApyBAlE,GAAE,WA4VF,IAEIoJ,EAZAC,EAwBEC,EA1QAC,EA/FJnG,EAAAA,QAAqBoG,OACrBnF,EAAAA,QAAoBmF,OAkoBAxJ,EAAE,mBAER8D,MAAK,WACjB,IAAI2F,EAAiBzJ,EAAEsD,MACrBoG,EAAUD,EAAe1F,KAAK,mBAG5B4F,GAAoB,EACL,SAAf3B,IACF2B,GAAoB,GAIlBF,EAAe1F,KAAK,kBAAkB5G,OAAS,EACjDuM,EAAQzD,YAAY,CAClBO,MAAO,EACPH,KAAMsD,EACNC,WAAY,UACZxD,SAAUuD,EACVE,gBAAiB,IACjBC,UAAWH,EACXpD,MAAM,EACNwD,SAAU,gBACVC,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,EACbC,cAAe,SAAU3E,GACvB+D,EACG1F,KAAK,oBACLA,KAAK,wBACLuG,QAAQ,SAAS,WAChBb,EAAe1F,KAAK,UAAUrD,KAAK,MAAO,IAE1C,IAAI6J,EACF,sGACFd,EAAexB,KAAK,KAAMsC,EAC5B,GACJ,EACAC,aAAc,SAAU9E,GACtB,IACIiB,EADY3G,EAAE0F,EAAEpE,QACSyC,KAAK,iBAAiB6C,GAAGlB,EAAED,KAAKoB,MAAQ,GACrE,GAAIF,EAAc,CAChB,IAAI8D,EAAc9D,EAAaI,KAAK,SAAS,GAC7C/G,EAAEyK,GAAazD,KAAKhH,EAAEyK,GAAazD,OAAOpB,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAC9E,CACAhF,YAAW,WACT6I,EAAe1F,KAAK,yCAAyCuG,QAAQ,QACvE,GAAG,IACL,IAGFb,EAAe1F,KAAK,gCAAgCG,YAAY,eAEpE,IAhGiBlE,EAAE,0BAER8D,MAAK,WACd,IAAI4G,EAAY1K,EAAEsD,MAChBqH,EAAYD,EAAU3G,KAAK,uBAC3B6G,EAAYF,EAAU3G,KAAK,eAC3B8G,EAAYH,EAAU3G,KAAK,eACjB2G,EAAU3G,KAAK,oBAEnBtD,GAAG,SAAS,SAAUiF,GAC5BA,EAAEoF,iBACF,IAAIC,EAAM/K,EAAEsD,MACV0H,EAAcD,EAAIhH,KAAK,cACvBkH,EAAcF,EAAIhH,KAAK,cACrB4G,EAAUxN,SACZ0N,EAAUK,YAAY,QAAQ,WACxBL,EAAUpH,GAAG,aACfsH,EAAI/G,SAAS,gBACbgH,EAAYG,OACZF,EAAYG,SAEZL,EAAI7G,YAAY,gBAChB8G,EAAYI,OACZH,EAAYE,OAEZnL,EAAE,cAAcC,QACd,CACEC,UAAWwK,EAAUW,SAASC,KAEhC,KAGN,IACAV,EAAUM,YAAY,QAE1B,GACF,IAlEelL,EAAE,6BAER8D,MAAK,WACZ,IAAIyH,EAAQvL,EAAEsD,MACZkI,EAAaD,EAAMxH,KAAK,0BACxB0H,EAAgBD,EAAWzH,KAAK,gCAC1ByH,EAAWzH,KAAK,YAEpBtD,GAAG,SAAS,SAAUiF,GACxBA,EAAEoF,iBACFU,EACGE,YAAY,kBACZC,UACAC,KACChL,YAAW,WACT6K,EAAcP,YAAY,OAC5B,GAAG,MAGPlL,EAAE,cAAcC,QACd,CACEC,UAAWqL,EAAMF,SAASC,KAE5B,IAEJ,GACF,IApEuBtL,EAAE,4BAER8D,MAAK,WACpB,IAAI+H,EAAY7L,EAAEsD,MAChBwI,EAAYD,EAAU9H,KAAK,kBACpB+H,EAAU/H,KAAK,iBAEf5G,QAEP2O,EAAUrL,GAAG,4BAA4B,SAAUiG,GACjD,IAAIqF,EAAQrF,EAAMjB,KAAKuG,MACvBH,EAAU9H,KAAK,uCAAuCyB,KAAKuG,EAC7D,IAGAD,EAAU7F,YAAY,CACpBO,MAAO,EACPH,MAAM,EACND,UAAU,EACV0D,WAAW,EACXmC,KAAK,EACL1F,MAAM,EACNwD,SAAU,eACVC,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,KAGf0B,EAAU5H,YAAY,gBAIxB4H,EAAUrL,GAAG,wBAAwB,SAAUiG,GAC7C,IAAIwF,EAAcxF,EAAMjB,KAAKoB,MAC7BgF,EAAU9H,KAAK,yCAAyCyB,KAAK0G,EAAc,EAC7E,GACF,IAvEAlM,EAAEe,UAAUoL,SAAS,CACnBC,SAAU,YACVC,QAAQ,EACRC,QAAQ,EACRC,oBAAqB,EACrBC,yBAAyB,EACzBC,oBAAoB,EACpBC,cAAe,IACfC,cAAe,KACfC,WAAY,WAAa,EACzBC,UAAW,WACT7M,EAAE,QAAQgE,SAAS,iBAEnB,IAAM8I,EAAgB/L,SAAS8D,eAAe,kBAE9CiI,EAAcnI,iBAAiB,SAAS,SAACe,GACvC9E,YAAW,WACTZ,EAAE,QAAQkE,YAAY,gBACxB,GAAG,IACL,IAEA4I,EAAcnI,iBAAiB,YAAY,SAACe,GAC1C9E,YAAW,WACTZ,EAAE,QAAQkE,YAAY,gBACxB,GAAG,IACL,GACF,EACA6I,WAAY,KACZC,WAAW,KAhLX5D,EADUpJ,EAAE,6BACI+D,KAAK,iBAEX5G,QACViM,EAAQ6D,YAAY,CAClBC,OAAO,EACPC,SAAU,YAjBZ9D,EADSrJ,EAAE,+BACQ+D,KAAK,kBAEV5G,QACdkM,EAAY4D,YAAY,CACtBC,OAAO,EACPC,SAAU,YAmBV7D,EAAWtJ,EAAE,sCACJ7C,QACX6C,EAAEsJ,GAAUxF,MAAK,WACf9D,EAAEsD,MAAM8J,MACV,IAxDUpN,EAAE,gCAER8D,MAAK,WACT,IACEuJ,EADUrN,EAAEsD,MACOS,KAAK,sBACjBsJ,EAAWtJ,KAAK,qBAChB5G,OACPkQ,EAAWpH,YAAY,CACrBO,MAAO,EACPH,MAAM,EACNyD,WAAW,EACX1D,UAAU,EACVG,MAAM,EACNwD,SAAU,WACVC,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,IAGfiD,EAAWnJ,YAAY,eAE3B,IAnJkBlE,EAAE,0CAER8D,MAAK,WACf,IAAIwJ,EAAUtN,EAAEsD,MACd+J,EAAaC,EAAQvJ,KAAK,0CAC1BwJ,EAAcF,EAAWtJ,KAAK,yCAC9ByJ,EAAgBF,EAAQvJ,KAAK,wCAE3BwJ,EAAYpQ,QACdkQ,EAAWpH,YAAY,CACrBO,MAAO,EACPH,MAAM,EACND,UAAU,EACV0D,WAAW,EACX2D,aAAcD,EACdvB,KAAK,EACLyB,QAAS,GACTnH,MAAM,EACNyD,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,EACbuD,UAAU,EACVC,OAAQ,GACRC,aAAc,EACdC,WAAY,CACV,EAAG,CACDF,OAAQ,IAEV,IAAK,CACHpH,MAAO,GAET,IAAK,CACHA,MAAO,EACPoH,OAAQ,IAGV,IAAK,CACHpH,MAAO,GAET,KAAM,CACJA,MAAO,KAKjB,IApGkBxG,EAAE,sCAER8D,MAAK,WACf,IAAIwJ,EAAUtN,EAAEsD,MACd+J,EAAaC,EAAQvJ,KAAK,sCAC1BwJ,EAAcF,EAAWtJ,KAAK,qCAC9ByJ,EAAgBF,EAAQvJ,KAAK,gDAE3BwJ,EAAYpQ,QACdkQ,EAAWpH,YAAY,CACrBO,MAAO,EACPH,MAAM,EACND,UAAU,EACV0D,WAAW,EACX2D,aAAcD,EACdvB,KAAK,EACLyB,QAAS,GACTnH,MAAM,EACNyD,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,EACbuD,UAAU,EACVC,OAAQ,GACRC,aAAc,EACdC,WAAY,CACV,EAAG,CACDF,OAAQ,IAEV,IAAK,CACHpH,MAAO,GAET,IAAK,CACHA,MAAO,EACPoH,OAAQ,IAGV,IAAK,CACHpH,MAAO,EACPoH,OAAQ,IAEV,KAAM,CACJpH,MAAO,EACPoH,OAAQ,MAKlB,IAgHqB5N,EAAE,8BAER8D,MAAK,WAClB,IAAIiK,EAAQ/N,EAAEsD,MACIyK,EAAMhK,KAAK,oBAEfiK,UAAU,CACtBC,QAAQF,EAAMG,SAAS,WAAa,GACpCC,aAAa,EACbnE,YAAY,EACZoE,YAAa,WAEjB,IArEkBpO,EAAE,4BAER8D,MAAK,WACf,IAAIwJ,EAAUtN,EAAEsD,MACd+J,EAAaC,EAAQvJ,KAAK,kBAC1BwJ,EAAcF,EAAWtJ,KAAK,iBAC9ByJ,EAAgBF,EAAQvJ,KAAK,mBAE3BwJ,EAAYpQ,QACdkQ,EAAWpH,YAAY,CACrBO,MAAO,EACPH,MAAM,EACND,UAAU,EAEVqH,aAAcD,EACdvB,KAAK,EACLyB,QAAS,GACTnH,MAAM,EACNyD,YAAY,EACZC,gBAAiB,aACjBC,OAAO,EACPC,YAAY,EACZC,aAAa,EACbwD,OAAQ,GACRC,aAAc,GACdC,WAAY,CACV,EAAG,CACDtH,MAAO,EACPqH,aAAc,GACdD,OAAQ,EACRvH,MAAM,GAER,IAAK,CACHG,MAAO,EACPqH,aAAc,IACdD,OAAQ,GACRvH,MAAM,GAER,IAAK,CACHG,MAAO,EACPqH,aAAc,IACdD,OAAQ,GACRvH,MAAM,GAER,IAAK,CACHG,MAAO,EACPqH,aAAc,EACdD,OAAQ,GACRvH,MAAM,KAKhB,IA8ZArG,GAAE,WACAA,EAAE,4BAA4BqO,WAAW,CACvCC,QAAS,CACP,qBAAsB,uBACtB,uBAAwB,wBAE1B9F,KAAM,SAAU9B,EAAO6H,GAErB,GAA+B,qBAA3B7H,EAAM8H,cAAcjJ,GAA2B,CACjD,IAAMkJ,EAAoB/H,EAAM8H,cAAcE,YAC9C1O,EAAE,mBAAmBqC,WAAWoM,EAClC,CACF,IAEFzO,EAAE,8BAA8BqO,WAAW,CACzCC,QAAS,CACP,qBAAsB,yBACtB,uBAAwB,4BAG5BtO,EAAE,2BAA2BqO,WAAW,CACtCC,QAAS,CACP,qBAAsB,sBACtB,uBAAwB,yBAI5BtO,EAAE,sBAAsBS,GAAG,oBAAoB,SAAUiG,EAAO6H,GAC1DvO,EAAEsD,MAAMiE,QAAQ,SAClBvH,EAAEsD,MAAMiE,QAAQ,QAAQoH,OAE5B,GACF,IAIA3O,GAAE,WACAA,EAAE,2BAA2B4O,SAC/B,IA1nBsB5O,EAAE,oCAER8D,MAAK,SAAU4B,GAC7B,IAAImJ,EAAO7O,EAAEsD,MACXmC,EAAOoJ,EAAK9K,KAAK,iBACA8K,EAAK9K,KAAK,mBAI1BkJ,cACAtB,UACAC,MAAK,WACJnG,EAAKwH,aACP,IAEFxH,EAAKhF,GAAG,cAAc,WACpBoO,EAAK7K,SAAS,YAChB,IACAyB,EAAKhF,GAAG,cAAc,WACpBoO,EAAK3K,YAAY,YACnB,GACF,KAjCIqF,EAAcvJ,EAAE,4BAA4B+D,KAAK,sBAErC5G,OAAS,GACvBoM,EAAY0D,cAZVjN,EAAE,iCAAiC7C,OAAS,GAC9C6C,EAAE,wBAAwB8D,MAAK,WAC7B9D,EAAEsD,MAAMS,KAAK,qCAAqCC,SAAS,OAC3DhE,EAAEsD,MAAMS,KAAK,sCAAsCC,SAAS,OAC9D,IA+TJ,WACEhE,EAAE,0CAA0CS,GAAG,SAAS,SAAUiF,GAChEA,EAAEoF,iBACF3B,EAAWnJ,EAAEsD,MAAM2E,KAAK,WAC1B,IACA,IAAI6G,EAdN,SAAiDjG,GAC/C,IAAIiG,EAVN,SAAuBjG,GACrB,IAAIiG,EAAa/N,SAAS8D,eAAe,YACrCiK,GACFA,EAAWvN,UAAUC,IAAIqH,GAG3B,OAAOiG,CACT,CAGmBC,CAAclG,GAC3BiG,GACFA,EAAWnK,iBAAiB,QAAS8D,GAGvC,OAAOqG,CACT,CAOmBE,CAAwC,kBA0CzD,SAAS9F,EAAU3D,EAAIsD,GACrB7I,EAAE,QAAQgE,SAAS,cACnBhE,EAAEuF,GAAIvB,SAAS,UACfhE,EAAEuF,GAAIrB,YAAY,QAElBlE,EAAE,mBAAmB8D,MAAK,WACxB9D,EAAEsD,MAAM0D,KACNhH,EAAEsD,MACC0D,OACApB,QAAQ,mBAAoB,6BAA+BiD,EAAO,WAEzE,GACF,CAEA,SAASM,EAAW5D,GAClBvF,EAAE,QAAQkE,YAAY,cACtBlE,EAAE,IAAMuF,GAAIvB,SAAS,QAErBpD,YAAW,WACTZ,EAAE,IAAMuF,GAAIrB,YAAY,UAExBlE,EAAE,mBAAmB8D,MAAK,WACxB9D,EAAEsD,MAAMS,KAAK,gBAAgBkL,YAAY,gBAC3C,GACF,GAAG,IACL,CAjEAjP,EAAEe,UAAUN,GAAG,QAAS,sBAAsB,SAAUiF,GACtDA,EAAEoF,iBAEF,IAAI3C,EAAMnI,EAAEsD,MAAM5C,KAAK,YACnBgC,EAAU1C,EAAEsD,MAAM5C,KAAK,aACvBwO,EAAQlP,EAAEsD,MAAM5C,KAAK,8BAEiC,SAAtDV,EAAEsD,MAAM5C,KAAK,uBAAuByO,eACtCnP,EAAE,0BAA0BU,KAAK,oBAAqByH,GAlD5D,SAA0CiH,GAAyC,IAA9B1M,EAAU,UAAH,6CAAG,KAAMwM,EAAQ,UAAH,6CAAG,KACrEG,EAAkBtO,SAAS8D,eAAeuK,GAC5CE,EAAqB,EAAIvO,SAASwO,uBAAuB,kBACzDC,EAAuB,EAAIzO,SAASwO,uBAAuB,oBAE3DF,GAAmBH,IACrBG,EAAgBpR,MAAQiR,EACxBI,EAAmBpO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQiR,CAAK,KAGrDG,GAAmB3M,GAAWwM,IAChCG,EAAgBpR,MAAQiR,EAAQ,IAAMxM,EACtC4M,EAAmBpO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQiR,CAAK,IACvDM,EAAqBtO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQyE,CAAO,IAE/D,CAoCMgN,CAAiC,oCAAqChN,EAASwM,GAE3EJ,GACFA,EAAWa,aAAa,WAAYxH,GAGtCe,EAAU,yBAA0BlJ,EAAEsD,MAAM2E,KAAK,SAEjDjI,EAAE,+BAA+BS,GAAG,UAAU,WACxCT,EAAEsD,MAAMqL,SACNxG,GACFD,EAAeC,EAGrB,KAEIA,GACFD,EAAeC,EAGrB,IAEAnI,EAAE,kBAAkBS,GAAG,SAAS,WAC1BT,EAAE,eAAiBA,EAAEsD,MAAM2E,KAAK,SAASiG,SAAS,aACpDlO,EAAE,eAAekE,YAAY,cAE7BlE,EAAE,eAAekE,YAAY,aAC7BlE,EAAE,eAAiBA,EAAEsD,MAAM2E,KAAK,SAASyD,YAAY,aAEzD,GA4BF,CA9cEkE,GAidsB7O,SAAS8D,eAAe,uBAG5CgL,EAAAA,QAAWC,UAAU9P,EAAEe,UAAW,mBA6TtC,WACE,SAASyI,IACHxJ,EAAE,kCAAkC7C,SAAW4S,KACjDC,GAEJ,CAEA,SAASA,IACHtH,EAAU,yBACZQ,IAtEN,WACE,IAAM+G,EAAc,IAAIC,YAAY,gBAAiB,CACnDC,SAAS,EACTC,OAAQ,CACNC,YAAa3H,EAAU,yBACvB4H,YAAa,WACX,OAAOL,EAAYG,OAAOC,cAAgB3H,EAAU,2BAE/CuH,EAAYG,OAAOC,YAAc3H,EAAU,yBAClD,EACA6H,kBAAmB,WACjBC,aAAY,WACNP,EAAYG,OAAOE,eACrBL,EAAYG,OAAOK,SAAU,EAC7BR,EAAY3O,OAAOoP,cAAcT,IAEjCA,EAAYG,OAAOK,SAAU,CAEjC,GAAG,IACL,EACAA,SAAS,KAIb1P,SAAS4D,iBAAiB,iBAAiB,SAACe,GAC1CA,EAAE0K,OAAOG,qBACgB,IAArB7K,EAAE0K,OAAOK,SAAoB/H,EAAU,0BACzCQ,GAEJ,IACA,IAAMyH,EAAwB,SAACjL,GAC7BA,EAAEpE,OAAOoP,cAAcT,EACzB,EAEA3R,OAAOqG,iBAAiB,OAAQgM,EAClC,CAqCMC,EAEJ,CAEA,SAASb,IACP,QACEhP,SAASyG,OAAOuB,MAAM,KAAK8H,QAAO,SAAUpL,GAC1C,OAAOA,EAAKuD,QAAQ,yBAA2B,CACjD,IAAG7L,MAMP,CAaA,SAAS2T,EAAqB7I,GAG5B,EAFclH,SAAS6G,qBAAqB,SAEjC1G,SAAQ,SAAU6P,GAG3B,EAFmBA,EAAK/P,iBAAiB,+BAEzBE,SAAQ,SAAUuO,GAChC,IAAMuB,EAAUvB,EAAMtI,aAAa,MAEpB,MAAX6J,GAA+B,KAAZA,GACrB/I,EAAK/G,SAAQ,SAAUjD,GACjBA,EAAMgT,UAAUC,eAAiBF,EAAQE,gBAC3CzB,EAAMxR,MAAQA,EAAMkT,WAExB,GAEJ,GACF,GACF,CAEA,SAASC,EAAqBvI,GAC5B,IAAIwI,EAAkB,SAAU7J,GAE9B,OADkBA,EAAOuB,MAAM,KACZ,GAAGuI,MACxB,EAEIC,EAAiB,SAAU/J,GAE7B,OADkBA,EAAOuB,MAAM,KACZ,GAAGuI,MACxB,EAEIE,EAAUzQ,SAASyG,OAAOuB,MAAM,KAChCsH,EAAcmB,EAAQ9T,IAAI2T,GAAiBG,EAAQ9T,IAAI6T,GAAgBvI,QAAQH,IAEnF,YAAuB4I,IAAhBpB,EAA4B,KAAOqB,KAAKC,MAAMtB,EACvD,CAEA,SAASuB,IACP,OACE7Q,SAASyG,OAAOuB,MAAM,KAAK8H,QAAO,SAAUpL,GAC1C,OAAoD,GAA7CA,EAAK6L,OAAOtI,QAAQ,qBAC7B,IAAG7L,OAAS,CAEhB,CAEA,SAAS0U,IACP,IAEIrM,EAAMvH,EAAO6T,EAAQ3J,EAAK4J,EAF1BC,EAAiBhS,EAAE,uBAAuBX,MAC1C4S,EAAU,GAGdA,EAAQ/T,KAAK,mDAEb8B,EAAE,8BAA8B8D,MAAK,WACnC0B,EAAOxF,EAAEsD,MAAMkC,OACfvH,EAAQ+B,EAAEsD,MAAMjE,MAChByS,EAAS9R,EAAEsD,MAAM5C,KAAK,eACtByH,EAAMnI,EAAEsD,MAAM5C,KAAK,oBACnBqR,EAAU/R,EAAEsD,MAAM5C,KAAK,oBAEnBsR,GAAkBhS,EAAEsD,MAAM5C,KAAK,iBACjCuR,EAAQ/T,KACN,wBACE4T,EACA,uBACA3J,EACA,uBACA4J,EACA,YACA9T,EACA,KACAuH,EACA,aAEJzE,SAASyG,OAAS,oCAAH,OAAuCzG,SAASmR,OAAM,2CAEzE,IAEAlS,EAAE,wBAAwBmS,QAAQC,OAAOH,GAAS5D,WAAW,WAC7DrO,EAAE,wBAAwBqO,WAAW,UACrCrO,EAAE,wBAAwBqO,WAAW,OACvC,CAEA,SAASgE,IACPC,IACAC,GACF,CAEA,SAASD,IACPvR,SAASyG,OAAS,oCAAH,OAAuCzG,SAASmR,OAAM,0CACvE,CAEA,SAASK,IACP,IAAIC,EAAqBxS,EAAE,wCAAwCU,KAAK,oBAEpE+R,EAAS,aACDD,EAAmBE,MAAMD,IAGnCzS,EAAEqI,UAAU3H,KAAK,OAAQ8R,EAE7B,EA/GA,WACE,IAAMG,EAAa,oBAEnB,GAAIf,IAAwB,CAC1B,IAAMgB,EAAWxB,EAAqBuB,GACtB,MAAZC,QAAiCnB,IAAbmB,GACtB9B,EAAqB8B,EAEzB,CACD,EATD,GAiHI7R,SAAS6B,cAAc,wBACzB5C,EAAE,uBAAuBqO,WAAW,CAClCC,QAAS,CACP,qBAAsB,uBACtB,uBAAwB,wBAE1BuE,OAAQ,SAAUnM,EAAO6H,GACvBsD,GACF,IAIA9Q,SAAS6B,cAAc,yBACzB5C,EAAE,wBAAwBqO,WAAW,CACnCC,QAAS,CACP,qBAAsB,uBACtB,uBAAwB,wBAE1BuE,OAAQ,SAAUnM,EAAO6H,GACvBpF,IACAkJ,GACF,EACAS,UAAU,IAId9S,EAAE,oBAAoBS,GAAG,SAAS,SAAUiF,GAC1CA,EAAEoF,iBACF3B,GACF,IAEAK,GACF,CA37BEuJ,GA0/BF,WAyKE,SAASC,IACP,IAAIC,EACAC,EAAqB,IACrBC,EAAenT,EAAE,sDAYrB,SAASoT,IACPC,GACF,CAZAF,EAAa1S,GAAG,SAAS,WACvB6S,aAAaL,GACbA,EAAcrS,WAAWwS,EAAYF,EACvC,IAGAC,EAAa1S,GAAG,WAAW,WACzB6S,aAAaL,EACf,GAKF,CAEA,SAASM,IACP,IAAIN,EACAC,EAAqB,IACrBC,EAAenT,EAAE,6DAYrB,SAASoT,IACPC,GACF,CAZAF,EAAa1S,GAAG,SAAS,WACvB6S,aAAaL,GACbA,EAAcrS,WAAWwS,EAAYF,EACvC,IAGAC,EAAa1S,GAAG,WAAW,WACzB6S,aAAaL,EACf,GAKF,CAMA,SAASI,IACP,IAAIG,EAAOxT,EAAE,QAAQU,KAAK,QACtB+S,EAASzT,EAAE,uBAAuBiI,KAAK,eASrCyL,EANQ,MAAVD,EACI,gBAAkBD,EAAO,kBAEzB,gBAAkBA,EAAO,IAAMC,EAAS,yBAQ5CzW,GAHQgD,EAAE,kCAAkCiI,KAAK,WACxClH,SAASC,iBAAiB,qBAExBhB,EAAE,sCAAsC2T,kBAEvD3T,EAAE4T,KAAK,CACLC,KAAM,OACN1L,IAAKuL,EACLzL,KAAMjL,EACN8W,QAAS,SAAU7L,GACjB8L,EAAsB9L,EAAK+L,QAC3BC,EAAwBhM,EAAKiM,aAC7BlU,EAAE,kCAAkCU,KAAK,aAAcuH,EAAKiM,aAAa/I,MAC3E,GAEJ,CAEA,SAAS8I,EAAwBhM,GAC/B,IAAIkM,EAAYnU,EAAE,8CACdoU,EAAWC,KAAKC,WAAWC,aAAe,KAAOtM,EAAO,IAC5DkM,EAAUzT,KAAK,QAAS0T,GACxBD,EAAUzT,KAAK,gBAAiB0T,EAClC,CAEA,SAASL,EAAsB9L,GAG7B,IAFA,IAAIuM,EAAYvM,EAEPwM,EAAI,EAAGC,EAAIF,EAAUrX,OAAQsX,EAAIC,EAAGD,IAAK,CAChD,IAAIE,EAAMH,EAAUC,GAChBG,EAAQD,EAAQ,GAChBE,EAAgBF,EAAW,MAE/B3U,EAAE,0DAA0D8D,MAAK,WAC3D9D,EAAEsD,MAAM5C,KAAK,OAASkU,GACxBE,EAAe9U,EAAEsD,MAAOuR,EAAe7U,EAAEsD,MAAMS,KAAK,aAAayB,OAErE,GACF,CACF,CAGA,SAASsP,EAAeC,EAAS9C,GAAO,IAAE+C,EAAgB,UAAH,kDAAGvD,EAAS,mBACjE,IAAItM,EAAS4P,EAITE,GAHAhD,EAAUA,EAGIjS,EAAEmF,GAAQpB,KAAK,iBAGjC/D,EAAEmF,GAAQpB,KAAK,UAAUmR,SACzBlV,EAAEmF,GAAQiN,OAAO6C,GAGjBjV,EAAE8D,KAAKmO,GAAS,SAAUpL,EAAO5I,GAC/B,GAAc,KAAVA,EAAc,CAChB,IAAIkX,EAAa,kBAAoBlX,EAAQ,KAAOA,EAAQ,YACxD+W,IAAkB/W,IACpBkX,EAAa,kBAAoBlX,EAAQ,cAAgBA,EAAQ,aAGnE+B,EAAEmF,GAAQiN,OAAO+C,EACnB,CACF,IAGAnV,EAAEmF,GAAQkJ,WAAW,UACvB,CAzBmE,CAyBlE,GAID,SAAS+G,EAA2BnN,EAAMmK,GACxC,IAAIiD,EAAS3D,KAAKC,MAAM2D,eAAeC,QAAQ,mBAAqB,GAChEC,EAAyBzU,SAAS8D,eAAe,iCAErD,IAAe,IAAXuN,EACFoD,EAAuBxQ,UAAY,GACnCqQ,EAASpN,OAET,IAAK,IAAIwM,EAAI,EAAGA,EAAIxM,EAAK9K,OAAQsX,IAAKY,EAAOnX,KAAK+J,EAAKwM,IAEzDa,eAAeG,QAAQ,gBAAiB/D,KAAKgE,UAAUL,IAEvD,IAAIM,EAAuB1N,EAEvBuN,GACFxV,EAAE8D,KAAK6R,GAAsB,SAAUlB,EAAGhP,GACxC,IAAImQ,EAAQnQ,EAAKoQ,MACbhN,EAAOpD,EAAKqQ,KACZ3N,EAAM1C,EAAKsQ,IACXC,EAAWvQ,EAAKwQ,aAChBC,EAAezQ,EAAK0Q,aACpBjH,EAAQzJ,EAAK2Q,MACbC,EAAQ5Q,EAAK6Q,MACbC,EAAO9Q,EAAK+Q,iBAGZC,EAFWhR,EAAKiR,SAGhBC,EAAoBtC,KAAKC,WAAW4B,aACpCU,EAAavC,KAAKC,WAAWpF,MAC7B2H,EAAaxC,KAAKC,WAAW+B,MAC7BS,EAAYzC,KAAKC,WAAWiC,KAC5BQ,EAAmB1C,KAAKC,WAAW0C,YAEvCxB,EAAuBxQ,WACrB,kOAMAgR,EANA,gBASAA,EACA,UACAnN,EAXA,+KAsBAA,EAtBA,8MAgCA4N,EACA,+CACAb,EACA,KACAA,EApCA,kMAqDAe,EArDA,YAwDAT,EAxDA,uDA+DAU,EA/DA,YAkEA1H,EAlEA,uDAyEA2H,EAzEA,YA4EAR,EA5EA,uDAmFAS,EAnFA,YAsFAP,EAtFA,oEA+FApO,EA/FA,mCAkGA4O,EAlGA,mEA8GJ,IAGF,IAAIhL,EAAQ/L,EAAE,kCAAkCU,KAAK,cACvCV,EAAE,iCAAiC7C,OAEnC4O,EACZ/L,EAAE,kCAAkCoL,OAEpCpL,EAAE,kCAAkCmL,OAGtCnL,EAAE,wBAAwBoL,OAC1BkK,eAAeG,QAAQ,sBAAuB1J,EAChD,CAEA,SAASkL,IACP,GAAIjX,EAAE,kCAAkC7C,OAAS,EAAG,CAClD,IAAI+Z,EAAUlX,EAAE,uBAAuB,GACvCA,EAAE,cAAcC,QACd,CACEC,UAAW,KAAOgX,EAAQC,wBAAwBC,GAEpD,IACA,QAEJ,CACF,CAGA,SAASC,IACP,IAAIpP,EAAO,GACPqP,EAAStX,EAAE,kCAAkC7C,OAAS,EACtDoa,EAAsBjC,eAAeC,QAAQ,sBAAwB,KACrEiC,EAAa,GACbC,EAASnC,eAAeC,QAAQ,mBAChCxJ,EAAQuJ,eAAeC,QAAQ,uBAOnC,GAL4B,OAAxBgC,GAAgCA,GAAuBjZ,OAAO+J,SAASqP,WACzEF,EAAa9F,KAAKC,MAAM2D,eAAeC,QAAQ,yBAA2B,GAC1EtN,EAAOyJ,KAAKC,MAAM2D,eAAeC,QAAQ,mBAAqB,IAG5D+B,GAAUrP,EAAK9K,OAAS,EAAG,CA0B7B,GAxBIqa,GAAcA,EAAWra,OAAS,GACpCyD,YAAW,WACT,IAAK,IAAI+W,EAAI,EAAGA,EAAIH,EAAWra,OAAQwa,IAAK,CAC1C,IAAIlI,EAAQzP,EAAE,UAAYwX,EAAWG,GAAG9O,KAAO,MAG/C,GAFA4G,EAAMpQ,IAAImY,EAAWG,GAAG1Z,OAAOyC,KAAK,mBAAoB8W,EAAWG,GAAGC,YAElEnI,EAAMhM,GAAG,UAAW,CACtB,IAAIwO,EAAUuF,EAAWG,GAAG1F,QAC5B,GAAeR,MAAXQ,GAAwBA,EAAQ9U,OAAS,EAAG,CAC9C,IAAI6X,OAAgBvD,EAEQ,KAAxB+F,EAAWG,GAAG1Z,QAChB+W,EAAgBwC,EAAWG,GAAG1Z,OAEhC6W,EAAerF,EAAOwC,EAAS+C,EACjC,CACF,CAEIvF,EAAMhM,GAAG,cACXgM,EAAM/O,KAAK,UAAW8W,EAAWG,GAAG1Z,MAExC,CACF,GAAG,KAES,MAAVwZ,EAAgB,CAClB,IAAII,EAAQJ,EAAO1O,MAAM,KACrB+O,EAAMD,EAAM,GACZE,EAAMF,EAAM,GAChBjX,YAAW,WACTZ,EAAE,oBAAoBX,IAAIoY,GAAQpJ,WAAW,UAC/C,GAAG,IACL,CACArO,EAAE,kCACCU,KAAK,gBAAiBoX,GACtBpX,KAAK,gBAAiBqX,GACtBrX,KAAK,aAAcqL,GACtBqJ,EAA2BnN,GAC3BgM,EAAwBlI,GACxBkL,GACF,MAAWK,GACTjE,GAEJ,CAEA,SAAS2E,IACP,IAAIP,EAAS,YACC,MAAVA,GACF7W,YAAW,WACTZ,EAAE,oBAAoBX,IAAIoY,GAAQpJ,WAAW,UAC/C,GAAG,IAEP,CAthBArO,EAAE,oDAAoDS,GACpD,oBACA,SAAUiG,EAAO6H,GACf,GAAIvO,EAAEsD,MAAMG,GAAG,UAAW,CACxB,IAAIwU,EAAmBjY,EAAEsD,MACrB4U,EAAc3J,EAAG9I,KAAY,MAEd,IAAfyS,EACFD,EAAiBvX,KAAK,oBAAoB,GAE1CuX,EAAiBvX,KAAK,oBAAoB,GAG/B2S,IAETrT,EAAEsD,MAAMG,GAAG,uBACM,IAAfyU,EACFlY,EAAE,kCACCU,KAAK,gBAAiB,SACtBA,KAAK,gBAAiB,OAGzBV,EAAE,kCACCU,KAAK,gBAAiB,gBACtBA,KAAK,gBAAiB,QAG/B,CACF,IAGFV,EAAE,2DAA2DS,GAAG,UAAU,SAAUiG,EAAO6H,GAGzF,QAAyBkD,IAFFzR,EAAEsD,MAGV+P,GAEjB,IAEArT,EAAE,sCAAsCS,GAAG,UAAU,SAAUiG,GAC7DA,EAAMoE,iBACN,IAAIqN,EAAoB7U,KAIxB,SAAS8U,EAAeC,GAGtB,GAFAF,EAAkBvV,cAAc,sBAAsBkQ,UAAW,EAE7DuF,EAGF,OAFAF,EAAkBvV,cAAc,sBAAsB3E,MAAQ,cAC9Dka,EAAkBvV,cAAc,sBAAsB0V,gBAAgB,iBAIxEH,EAAkBvV,cAAc,sBAAsB3E,MAAQka,EAC3DvV,cAAc,sBACduE,aAAa,gBAClB,CAdAgR,EAAkBvV,cAAc,sBAAsBkQ,UAAW,EAgBjE,IAAIU,EAAOxT,EAAE,QAAQU,KAAK,QACtBgT,EAC8B,IAAhC1T,EAAE,qBAAqBX,MACnB,gBAAkBmU,EAAlB,oBACA,gBAAkBA,EAAO,UAC3BxW,EAAWgD,EAAE,sCAAsC2T,iBACnD4E,EAAe,GACnBC,OAAO1U,KAAK9G,GAAU,SAAUyX,EAAGhF,GACjC,IAAImI,GAAa,EACba,EAAc,GAElB,IAA2C,IAAvChJ,EAAM5G,KAAKG,QAAQ,eAAuB,CAC5C,IAAI0P,EAAW1Y,EAAE,gBAAkByP,EAAM5G,KAAO,MAMhD,GAJgB4I,MAAZiH,GAAqC,MAAZA,IAC3Bd,EAAa5X,EAAE,gBAAkByP,EAAM5G,KAAO,MAAMnI,KAAK,qBAGvDkX,EAAY,CACDY,OAAO1U,KAClB9D,EAAE,gBAAkByP,EAAM5G,KAAO,cACjC,SAAU4L,EAAGkE,GACXF,EAAYva,KAAKya,EAAO1a,MAC1B,IAEFwR,EAAMwC,QAAUwG,CAClB,CACF,CAEAF,EAAara,KAAK,CAChB0Z,WAA0BnG,MAAdmG,EAA0BA,EAAa,QACnD/O,KAAM4G,EAAM5G,KACZ5K,MAAOwR,EAAMxR,MACbgU,QAASwG,GAEb,IAEAnD,eAAeG,QAAQ,sBAAuB/D,KAAKgE,UAAU6C,IAC7DjD,eAAeG,QAAQ,oBAAqBnX,OAAO+J,SAASqP,UAC5DM,IAEAhY,EAAE4T,KAAK,CACLC,KAAM,OACN1L,IAAKuL,EACLzL,KAAMjL,EACN8W,QAAS,SAAU7L,GACjBmN,EAA2BnN,GAC3BgP,IACAmB,GACF,EACAC,MAAO,WACLD,EAAe,QACjB,GAEJ,IAGApY,EAAE,oBAAoBS,GAAG,oBAAoB,SAAUiF,GACrDA,EAAEoF,iBACFwK,eAAeG,QAAQ,kBAAmBzV,EAAEsD,MAAMjE,OAClD,IAAIwY,EAAQ7X,EAAEsD,MAAMjE,MAAM0J,MAAM,KAC5B6P,EAAQ5Y,EAAE,kCAAkCiI,KAAK,WACjDuL,EAAOxT,EAAE,QAAQU,KAAK,QACtBoX,EAAMD,EAAM,GACZE,EAAMF,EAAM,GAChB7X,EAAE,kCAAkCU,KAAK,gBAAiBoX,GAAKpX,KAAK,gBAAiBqX,GAErF,IAAIrE,EACF,gBAAkBF,EAAlB,aAAgDoF,EAAQ,IAAMd,EAAM,IAAMC,EAC5E/X,EAAE4T,KAAK,CACLC,KAAM,MACN1L,IAAKuL,EACLI,QAAS,SAAU7L,GACbA,EAAK9K,OAAS,GAChBiY,EAA2BnN,EAE/B,GAEJ,IAGAjI,EAAE,kCAAkCS,GAAG,SAAS,SAAUiF,GACxDA,EAAEoF,iBACF,IAAI8N,EAAQ5Y,EAAEsD,MAAM5C,KAAK,gBAKrBgT,EACF,gBALS1T,EAAE,QAAQU,KAAK,QAKC,WAJfV,EAAE,iCAAiC7C,OAIC,IAAMyb,EAAQ,IAHpD5Y,EAAEsD,MAAM5C,KAAK,iBAGmD,IAFhEV,EAAEsD,MAAM5C,KAAK,iBAGvBV,EAAE,kCAAkCU,KAAK,YAAY,GACrDV,EAAE,kCAAkCwF,KAAK,cAEzCxF,EAAE4T,KAAK,CACLC,KAAM,MACN1L,IAAKuL,EACLI,QAAS,SAAU7L,GACbA,EAAK9K,OAAS,GAChBiY,EAA2BnN,GAAM,GAEnCjI,EAAE,kCAAkCU,KAAK,YAAY,GACrDV,EAAE,kCAAkCwF,KAClCxF,EAAE,kCAAkCU,KAAK,SAE7C,GAEJ,IA0CAsS,IACAO,IAyUAvT,EAAE,kCAAkCmL,OACpCnL,EAAE,wBAAwBmL,OAE1BkM,IAEA/Y,OAAOua,eAAiB,SAAUC,GAChC,OAAI9Y,EAAE8Y,GAAKvR,QAAQ,oBAAoBpK,OAAS,CAKlD,EAEAmB,OAAOiF,iBAAmB,WACxB,QAAIvD,EAAE,QAAQyD,GAAG,aAInB,EAEAzD,EAAE,uBAAuBS,GAAG,SAAS,WAC/BnC,OAAOiF,oBACTjF,OAAOkF,kBAGLxD,EAAEsD,MAAMG,GAAG,WACbnF,OAAOsF,0BAEPtF,OAAOuF,wBAEX,IAEAvF,OAAOuF,uBAAyB,WAC9BjD,YAAW,WACTZ,EAAE,uBAAuB8D,MAAK,WAC5B9D,EAAEsD,MAAMS,KAAK,qBAAqBC,SAAS,UAC3ChE,EAAEsD,MAAMU,SAAS,SACnB,GACF,GAAG,KAEHhE,EAAE,0BAA0BZ,OAAO,OACrC,EAEAd,OAAOsF,wBAA0B,WAC/BhD,YAAW,WACTZ,EAAE,uBAAuB8D,MAAK,WAC5B9D,EAAEsD,MAAMS,KAAK,qBAAqBG,YAAY,UAC9ClE,EAAEsD,MAAMY,YAAY,SACtB,GACF,GAAG,KAEHlE,EAAE,0BAA0BtB,QAAQ,OACtC,CACF,CAzkDEyZ,GAEAnY,EAAE,gBAAgB+Y,WAAW,CAC3BC,QAAS,EACTC,WAAY,aAGdjZ,EAAE,gDAAgDS,GAAG,UAAU,WACzDT,EAAEsD,MAAMqL,UACV3O,EAAEsD,MAAMS,KAAK/D,EAAE,yBAAyBkZ,KAAK,YAAY,GACzDlZ,EAAEsD,MAAMS,KAAK/D,EAAE,yBAAyBX,IAAI,eAEhD,GACF,IAEAW,EAAE1B,QAAQmC,GAAG,UAAU,WACCT,EAAE,mCACR8D,MAAK,WAEjB9D,EAAEsD,MAAM+H,SAASC,KAAOtL,EAAE1B,QAAQ4B,YAAmC,IAArBF,EAAE1B,QAAQmB,UAC1DO,EAAEsD,MAAMS,KAAK,oBAAoBmK,SAAS,cAE1ClO,EAAEsD,MACCS,KAAK,0CACLG,YAAY,aACZF,SAAS,YAEhB,GACF,IAEA,WACE,IAAMmV,EAAcpY,SAASC,iBAAiB,eACxCoY,EAAkBrY,SAASC,iBAAiB,mBAclD,SAASqY,EAAaP,EAAK7a,GACzB,GAWO,MAAMqb,KAXKrb,GAAQ,CACxB,IAAMsb,EAKV,SAA4Btb,GAC1B,OAAOA,EAAM2H,QAAQ,KAAM,GAC7B,CAP2B4T,CAAmBvb,GAC1C6a,EAAI7a,MAAQsb,CACd,CACF,CAjBA,EAAIJ,GAAajY,SAAQ,SAAUuY,GACjCA,EAAM9U,iBAAiB,SAAS,SAAUe,GACxC2T,EAAa3T,EAAEpE,OAAQoE,EAAEpE,OAAOrD,MAClC,GACF,IAEA,EAAImb,GAAiBlY,SAAQ,SAAUuY,GACrCA,EAAM9U,iBAAiB,SAAS,SAAUe,GACxC2T,EAAa3T,EAAEpE,OAAQoE,EAAEpE,OAAOrD,MAClC,GACF,GAgBD,CA9BD,GA85BA+B,EAAE0Z,UAAUC,YAAY,CACtBC,OAAQ,gDAGV5Z,EAAE0Z,UAAUG,UACV,kBACA,SAAU5b,EAAO8W,GAEf,OAAQ,eAAeuE,KAAKrb,EAC9B,GACA,mCAGF+B,EAAE0Z,UAAUG,UACV,cACA,SAAU5b,EAAO8W,GAEf,MAAgC,SADHA,EAAQ9P,QAAQ6U,kBAE/C,GACA,2BAGF9Z,EAAE,+BAA+BS,GAAG,QAEpC,WACE,IAAMsU,EAAU/U,EAAEsD,MAIlB,GAHqB,IAAIyW,OAAOhF,EAAQrU,KAAK,2BACR4Y,KAAKvE,EAAQ1V,OAE7B,CACnB,IAAI4I,EAAO,CAAE+R,MAAOjF,EAAQ1V,OAG5Bf,OAAO2b,wBACJhS,EAA4B,sBAAI3J,OAAO2b,uBAE1ClF,EAAQrU,KAAK,4BAA6B,WAC1CV,EAAE4T,KAAK,CACLzL,IAAK,yBACL0L,KAAM,OACN5L,KAAMA,EACNiS,OAAO,EACPC,OAAO,EACP9B,MAAO,WACLtD,EAAQrU,KAAK,4BAA6B,QAC1CqU,EAAQpG,OACV,EACAmF,QAAS,SAAUsG,GACbA,EAAOC,SACTtF,EAAQrU,KAAK,4BAA6B,QAC1CqU,EAAQpG,UAERoG,EAAQrU,KAAK,WAAY0Z,EAAOE,cAChCvF,EAAQrU,KAAK,4BAA6B,SAC1CqU,EAAQpG,QAEZ,GAEJ,CACF,IAqlBQ7N,EAASC,SAASC,iBACtB,8EAEE+G,EAAW,GAEf,EAAIjH,GAAQI,SAAQ,SAAUW,GAC5BA,EAAM9C,MAAMwb,QAAU,gDAEtB,EADW1Y,EAAMb,iBAAiB,OAC1BE,SAAQ,SAAUyB,GACxBoF,EAAS7J,KAAKyE,EAAQ6X,YACxB,IAIA,EAFa3Y,EAAMb,iBAAiB,eAE1BE,SAAQ,SAAUuZ,GAG1B,EAFgBA,EAAIzZ,iBAAiB,OAExBE,SAAQ,SAAUwZ,EAAQ7T,GACrC6T,EAAO/K,aAAa,aAAc5H,EAASlB,GAC7C,GACF,IACAjG,YAAW,WACTiB,EAAMN,UAAUC,IAAI,UACtB,GAAG,IACL,IAGF,WACE,IAAMV,EAASC,SAASC,iBAAiB,2BAErCF,EAAO3D,OAAS,GAClB,EAAI2D,GAAQI,SAAQ,SAAUW,GAC5B,IAAM8Y,EAAW9Y,EAAMe,cAAc,YACnCgY,EAAW7Z,SAASuE,cAAc,MAClCuV,EAAOhZ,EAAMb,iBAAiB,cAEhC4Z,EAASrZ,UAAUC,IAAI,aACvBmZ,EAAS7S,aAAa8S,EAAUD,EAASG,SAAS,IAElD,EAAID,GAAM3Z,SAAQ,SAAUuZ,GAC1B,IAAMM,EAAcha,SAASuE,cAAc,MACzC0V,EAAUP,EAAIzZ,iBAAiB,MAEjC+Z,EAAYxZ,UAAUC,IAAI,aAC1BiZ,EAAI3S,aAAaiT,EAAaC,EAAQ,GACxC,GACF,GAEH,CArBD,EAsBD,CAjqDD,CAiqDGxC,QAEH,SAAWxY,GAQT,IAAMib,EAAY,yBAGZC,EAAiB,mBAuDvB,SAASC,EAAYhT,GACnB7J,OAAO+J,SAAS+S,KAAOjT,CACzB,CAtDAnI,GAAE,WACAA,EAAE,iBAAiBS,GAAG,SAAS,SAAUiF,GACvCA,EAAEoF,iBACF9K,EAAE,oBAAoBmL,MACxB,IAEA,IAAMkQ,EAAiBta,SAASC,iBAXX,uBAYfsa,EAAeva,SAASC,iBAXV,qBAapB,EAAIqa,GAAgBna,SAAQ,SAAU6J,GACpCA,EAAIpG,iBAAiB,SAAS,SAAUe,GACtCA,EAAEoF,iBAEF,IAAM7M,EAAQyH,EAAEpE,OAAO6F,aAAa+T,GAC1BxJ,KAAKC,MAAM1T,GAEbsd,OAyCZvb,EAAE,oBAAoBoL,MAtCpB,IAEAL,EAAIpG,iBAAiB,aAAa,SAAUe,GAC1C,IAAMzH,EAAQyH,EAAEpE,OAAO6F,aAAa+T,IAsC1C,SAA0B9W,GACpBA,EAAMmX,OACRvb,EAAE,iBAAiBgH,KAAK5C,EAAMmX,OAG5BnX,EAAMoX,SACRxb,EAAE,mBAAmBgH,KAAK5C,EAAMoX,SAG9BpX,EAAMqX,UACRzb,EAAE,iBAAiBU,KAAK,MAAO0D,EAAMqX,UAGnCrX,EAAMsX,UACR1b,EAAE,kBAAkBS,GAAG,SAAS,SAAUiF,GACxCA,EAAEoF,iBACFqQ,EAAY/W,EAAMsX,SACpB,IAGEtX,EAAMuX,mBACR3b,EAAE,eAAegH,KAAK5C,EAAMuX,oBAE5B3b,EAAE,eAAegH,KAAK,IAGxB,GAAI5C,EAAMwX,YAAa,CACrB,IAAIC,EAAKzX,EAAMwX,YAAY7S,MAAMkS,GACjCjb,EAAE,gBAAgBgH,KAAK6U,EAAG,IACtBA,EAAG1e,OAAS,GACd6C,EAAE,cAAcgH,KAAKiU,EAAYY,EAAG,IACpC7b,EAAE,cAAcoL,QAEhBpL,EAAE,cAAcmL,MAEpB,MACEnL,EAAE,gBAAgBgH,KAAK,GAE3B,CAzEM8U,CAFUpK,KAAKC,MAAM1T,GAGvB,GACF,IAEA,EAAIqd,GAAcpa,SAAQ,SAAU6J,GAClCA,EAAIpG,iBAAiB,SAAS,SAAUe,GACtCA,EAAEoF,iBAEFqQ,EADczV,EAAEpE,OAAO6F,aAlCL,qBAoCpB,GACF,IAEA,IAAI4U,EAAUvL,aAAY,WACxBxQ,EAAE,qCAAqC8D,MAAK,WAC1C,IAAIkD,EAAOhH,EAAEsD,MAAM0D,OACc,GAA7BhH,EAAEsD,MAAMwX,WAAW3d,QAAe6J,EAAKgC,QAAQ,gBAAkB,GACnEhJ,EAAEsD,MAAM0D,KAAKhH,EAAEsD,MAAM0D,OAAOpB,QAAQ,KAAM,uCAE9C,GACF,GAAG,KAGHhF,YAAW,WACTob,cAAcD,EAChB,GAAG,IACL,GAoDD,CApHD,CAoHGvD,wBC3xDH,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,4BAEvB,WA0EE,SAASyD,EAAWvW,IAClB,EAAA1F,EAAAA,SAAE0F,EAAEpE,QACDyF,KAAK,kBACLhD,KAAK,OACLrD,KAAK,QAAQ,SAAUmG,EAAOnG,GAC7B,MAAe,cAARA,EAAuB,cAAgB,YAChD,GACJ,EA/EA,EAAAV,EAAAA,SAAE,mBAAmBS,GAAG,SAAS,YAC/B,EAAAT,EAAAA,SAAEsD,MAAMoI,YAAY,WACpB,EAAA1L,EAAAA,SAAE,0BAA0B0L,YAAY,SAC1C,KAGA,EAAA1L,EAAAA,SAAE,sBAAsBS,GAAG,SAAS,SAAUiG,IAE5C,EAAA1G,EAAAA,SAAEsD,MAAMwX,SAAS,qBAAqB9W,SAAS,WAC/C,EAAAhE,EAAAA,SAAE,sBAAsBiC,IAAIqB,MAAMwX,SAAS,qBAAqB5W,YAAY,WAC5E,EAAAlE,EAAAA,SAAE,sBAAsBgE,SAAS,WACjC,EAAAhE,EAAAA,SAAE,qBAAqBiC,IAAIqB,MAAMY,YAAY,SAC/C,KAEA,EAAAlE,EAAAA,SAAE,iBAAiBS,GAAG,SAAS,SAAUiG,GACvCA,EAAMwV,mBACN,EAAAlc,EAAAA,SAAEsD,MAAM6Y,OAAO,qBAAqBjY,YAAY,WAChD,EAAAlE,EAAAA,SAAE,sBAAsBkE,YAAY,WACpC,EAAAlE,EAAAA,SAAEsD,MAAMiE,QAAQ,qBAAqBrD,YAAY,SACnD,KAGA,EAAAlE,EAAAA,SAAE,wCAAwCS,GAAG,SAAS,SAAUiG,GAC9DA,EAAMwV,mBACN,EAAAlc,EAAAA,SAAE,sBAAsBkE,YAAY,WACpC,EAAAlE,EAAAA,SAAEsD,MAAMiE,QAAQ,qBAAqBvD,SAAS,SAChD,KAGA,EAAAhE,EAAAA,SAAE,iCAAiCS,GAAG,SAAS,SAAUiG,GACvDA,EAAMwV,iBACR,KAGA,EAAAlc,EAAAA,SAAE,qBAAqB8D,MAAK,WACgD,SAAtE,EAAA9D,EAAAA,SAAEsD,MAAMwX,SAAS,4BAA4Bpa,KAAK,mBACpD,EAAAV,EAAAA,SAAEsD,MAAMU,SAAS,aAEjB,EAAAhE,EAAAA,SAAEsD,MAAMwX,SAAS,OAAO9W,SAAS,eACjC,EAAAhE,EAAAA,SAAEsD,MAAMwX,SAAS,OAAOA,SAAS,OAAOpa,KAAK,aAAc,kBAE3D,EAAAV,EAAAA,SAAEsD,MAAMwX,SAAS,OAAO9W,SAAS,cACjC,EAAAhE,EAAAA,SAAEsD,MAAMwX,SAAS,OAAOA,SAAS,OAAOpa,KAAK,aAAc,gBAG7D,EAAAV,EAAAA,SAAEsD,MAAM7C,GAAG,SAAS,YAClB,EAAAT,EAAAA,SAAE,qBAAqBiC,IAAIqB,MAAMY,YAAY,aAC7C,EAAAlE,EAAAA,SAAEsD,MAAMoI,YAAY,aAEpB,EAAA1L,EAAAA,SAAEsD,MAAMwX,SAAS,OAAOpP,YAAY,yBACpC,EAAA1L,EAAAA,SAAEsD,MACCwX,SAAS,OACTA,SAAS,OACTpa,KAAK,cAAc,SAAUmG,EAAOnG,GACnC,MAAe,cAARA,EAAuB,cAAgB,YAChD,KAEF,EAAAV,EAAAA,SAAE,qBACCiC,IAAIqB,MACJwX,SAAS,OACTA,SAAS,OACTpa,KAAK,aAAc,eACtB,EAAAV,EAAAA,SAAE,qBACCiC,IAAIqB,MACJY,YAAY,UACZH,KAAK,qBACLG,YAAY,SACjB,GACF,KAYA,EAAAlE,EAAAA,SAAE,kCAAkCS,GAAG,mBAAoBwb,IAC3D,EAAAjc,EAAAA,SAAE,kCAAkCS,GAAG,mBAAoBwb,EAC5D,CApFD,mBCHA,IAA2C,EAE3C,MAF2C,EAA3C,QAA2C,4BAEvCG,SACF,iCACA,4BACA,+BACA,08BCNF,eAEI,0GAAc,SAEd,IAAIC,EAA0Btb,SAASC,iBAAiB,yBAAyB,GACzEqb,IACA/Y,KAAKgZ,gBAAkB,EAAID,EAAwBrb,iBAAiB,mCACpEsC,KAAKiZ,oBAAsBF,EAAwBzZ,cAAc,0CACjEU,KAAKkZ,gBAAkB,EAAIH,EAAwBrb,iBAAiB,yCACpEsC,KAAKmZ,aAAe,EAAIJ,EAAwBrb,iBAAiB,sBACjEsC,KAAKoZ,iBAAmB3b,SAAS8D,eAAe,gCAChDvB,KAAKqZ,YAAc5b,SAAS8D,eAAe,4BAC3CvB,KAAKsZ,aAAe7b,SAAS8D,eAAe,4BAC5CvB,KAAKuZ,QAAU9b,SAAS8D,eAAe,wBACvCvB,KAAKwZ,UAAY/b,SAAS8D,eAAe,uBAAuB5G,MAChEqF,KAAKyZ,aAAe,YACpBzZ,KAAK0Z,kBAAoB,iBACzB1Z,KAAK+M,YAAc4M,EAAcC,4BAE7B5Z,KAAKgZ,iBAAmBhZ,KAAKmZ,cAAgBnZ,KAAKwZ,WAAWxZ,KAAKkG,OAEhF,WAmCC,SAjCD,IAoJC,wCAjJD,WACE,IAAMnK,EAAM0B,SAASyG,OAAOkL,MAAM,yCAClC,OAAOrT,EAAMA,EAAI,GAAGiS,OAAS,IAC/B,GAEA,kCAKA,SAA4B7L,GAC1B,OAAOA,EAAKR,QAAQkY,WAAWpU,MAAM,IACvC,GAEA,yCAKA,SAAmCtD,GACjC,OAAOA,EAAKR,QAAQmY,kBAAkBrU,MAAM,IAC9C,GAEA,mCAKA,SAA6BtD,GAC3B,OAAOA,EAAKR,QAAQqC,UACtB,OAjCA,6BAuCA,SAAe+V,GACbA,EAAI9b,UAAUC,IAAI8B,KAAKyZ,aACzB,GAEA,+BAIA,SAAkBM,GAChBA,EAAI9b,UAAU2T,OAAO5R,KAAKyZ,aAC5B,GAEA,mDAGA,WACE,KAAOzZ,KAAKoZ,iBAAiBY,YAAYha,KAAKoZ,iBAAiBa,YAAYja,KAAKoZ,iBAAiBY,WACnG,GAEA,6CAIA,SAAgCD,GAC9B/Z,KAAKoZ,iBAAiBc,YAAYH,EACpC,GAEA,sCAIA,SAAyB3X,GAAG,WACpB2B,EAAW4V,EAAcQ,sBAAsB/X,GAErDpC,KAAKgZ,gBAAgBpb,SAAQ,SAAAwc,GAAM,OAAI,EAAKC,kBAAkBD,EAAO,IACrEpa,KAAKsa,eAAelY,GAEpBpC,KAAKua,wCAELva,KAAKmZ,aAAavb,SAAQ,SAAAuE,GACxB,IAAMqY,EAAarY,EAAK7C,cAAc,IAAD,OAAK,EAAKoa,oBAK/C,GAHA,EAAKW,kBAAkBG,GACvB,EAAKH,kBAAkBlY,GAEnBwX,EAAcc,qBAAqBtY,GAAMuY,SAAS3W,GAAW,CAC/D,GAAI4V,EAAcgB,4BAA4BxY,GAAMuY,SAAS3W,GAAW,CACtE,EAAKuW,eAAeE,GAEpB,IAAMI,EAAczY,EAAK0Y,WAAU,GAKnC,OAJAD,EAAY3c,UAAUC,IAAI,aAE1B,EAAK4c,gCAAgCF,QACrC,EAAKN,eAAeM,EAEtB,CAEA,EAAKN,eAAenY,EACtB,CACF,IAEInC,KAAKoZ,iBAAiB2B,iBACxB/a,KAAKsa,eAAeta,KAAKsZ,cACzBtZ,KAAKsa,eAAeta,KAAKoZ,oBAEzBpZ,KAAKqa,kBAAkBra,KAAKsZ,cAC5BtZ,KAAKqa,kBAAkBra,KAAKoZ,mBAG1BpZ,KAAKqZ,YAAY2B,SAAShb,KAAKqZ,YAAY/Z,cAAc,kCAC3DU,KAAKsa,eAAeta,KAAKuZ,SACzBvZ,KAAKsa,eAAeta,KAAKqZ,eAEzBrZ,KAAKqa,kBAAkBra,KAAKuZ,SAC5BvZ,KAAKqa,kBAAkBra,KAAKqZ,aAGhC,GAEA,qCAGA,WAA0B,WAClB4B,EAAkBjb,KAAKgZ,gBAAgBvY,MAAK,SAAA2Z,GAAM,MAAI,WAAIT,EAAcQ,sBAAsBC,GAAO,OAAQ,EAAKrN,WAAW,MAAK,EAClImO,EAAgBlb,KAAKkZ,gBAAgBzY,MAAK,SAAAsD,GAAQ,MAAI,WAAI4V,EAAcQ,sBAAsBpW,GAAS,OAAQ,EAAKgJ,WAAW,MAAK,EAE1I,QAAQ,GACN,IAA0B,UAArB/M,KAAK+M,YACR/M,KAAKmb,yBAAyBnb,KAAKiZ,qBACnC,MACF,KAAyB,IAApBgC,EACHjb,KAAKmb,yBAAyBF,GAC9B,MACF,KAAuB,IAAlBC,EACHlb,KAAKmb,yBAAyBnb,KAAKiZ,qBACnC,MACF,QACEjZ,KAAKmb,yBAAyBnb,KAAKgZ,gBAAgB,IAEzD,GAEA,kBAGA,WAAO,WACLhZ,KAAKob,0BAELpb,KAAKgZ,gBAAgBpb,SAAQ,SAAAuE,GAAI,OAAIA,EAAKd,iBAAiB,SAAS,SAAAe,GAAC,OACnE,EAAK+Y,yBAAyB/Y,EAAEpE,OAAO,GAAC,GAC5C,oFAnHC,EAxDC,sFCAJ,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,k8BAEFqd,EAAU,WAC7B,WAAYhgB,IAHS,4FAGL,SACd2E,KAAK3E,GAAKA,EACV2E,KAAKkG,MACP,CANqB,UA4PpB,OA5PoB,EAMpB,EANoB,EAkBpB,8BAED,SAAuB6T,EAAKjR,IAC1B,EAAApM,EAAAA,SAAE,uCAAuCS,GAAG,SAAS,SAAUiF,GAC7DA,EAAEoF,iBACF6T,EAAWxV,YAAW,EAAAnJ,EAAAA,SAAEsD,MAAM2E,KAAK,WACrC,KAEA,EAAAjI,EAAAA,SAAEqd,GAAK5c,GAAG,QAAS2L,GAAU,SAAU1G,GACrCA,EAAEoF,iBAEF,IAAI3C,GAAM,EAAAnI,EAAAA,SAAEsD,MAAM5C,KAAK,YACnBgC,GAAU,EAAA1C,EAAAA,SAAEsD,MAAM5C,KAAK,aACvBwO,GAAQ,EAAAlP,EAAAA,SAAEsD,MAAM5C,KAAK,8BAEiC,UAAtD,EAAAV,EAAAA,SAAEsD,MAAM5C,KAAK,uBAAuByO,eACtCwP,EAAWjP,iCACT,iCACAhN,EACAwM,GAEFyP,EAAWzV,UACT,uBACA,EAAAlJ,EAAAA,SAAEsD,MAAM2E,KAAK,SACb,EAAAjI,EAAAA,SAAEsD,MAAM2E,KAAK,eAGXE,GACFwW,EAAWzW,eAAeC,EAGhC,KAEA,EAAAnI,EAAAA,SAAE,yEAAyES,GACzE,UACA,YACM,EAAAT,EAAAA,SAAEsD,MAAMG,GAAG,aACb,EAAAzD,EAAAA,SAAE,qCAAqCoL,QAEvC,EAAApL,EAAAA,SAAE,qCAAqCmL,MAE3C,KAGF,EAAAnL,EAAAA,SAAE,oFAAoFS,GACpF,SACA,YACE,EAAAT,EAAAA,SAAEsD,MAAM6Y,SAASnY,SAAS,SAC5B,KAGF,EAAAhE,EAAAA,SAAE,oFAAoFS,GACpF,QACA,YACE,EAAAT,EAAAA,SAAEsD,MAAM6Y,SAASjY,YAAY,SAC/B,KAGF,EAAAlE,EAAAA,SAAE,oFAAoFS,GACpF,SACA,SAAUiF,GACR,GAAa,OAATA,EAAE/H,IAAc,CAClBW,OAAOgV,aAAahV,OAAOsgB,qBAC3B,IAAI9F,GAAM,EAAA9Y,EAAAA,SAAEsD,MAEZhF,OAAOsgB,oBAAsBtgB,OAAOsC,YAAW,WACjB,QAAxB,EAAAZ,EAAAA,SAAE8Y,GAAKzZ,MAAMiS,QAA2C,MAAxB,EAAAtR,EAAAA,SAAE8Y,GAAKzZ,MAAMiS,QAAiC,MAAhB,EAAAtR,EAAAA,SAAE8Y,GAAKzZ,OACnEsf,EAAWE,aAAa/F,IAC1B,EAAA9Y,EAAAA,SAAE8Y,GAAKqD,SAASpY,KAAK,oBAAoBC,SAAS,WAAWoH,QAK/D,EAAApL,EAAAA,SAAE8Y,GAAKqD,SAASpY,KAAK,oBAAoBG,YAAY,WAAWiH,MAEpE,GAAG,IACL,CACF,GAEJ,GAAC,uBAED,SAAiBkS,EAAKjR,GACpBuS,EAAWG,gBAAgBzB,EAAKjR,GAE3B9I,KAAKyb,mBACRzb,KAAKyb,kBAAmB,IAGI,IAA1Bzb,KAAKyb,mBACPzgB,OAAOsgB,yBAAsBnN,EAC7BkN,EAAWK,cAAc3B,EAAKjR,GAC9B9I,KAAKyb,kBAAmB,EAE5B,GAAC,uBAED,SAAiBxZ,EAAIsD,EAAM+M,IACzB,EAAA5V,EAAAA,SAAE,QAAQgE,SAAS,eACnB,EAAAhE,EAAAA,SAAEuF,GAAIvB,SAAS,UAAUE,YAAY,QACrCya,EAAWM,cAAcpW,EAAM+M,EACjC,GAAC,wBAED,SAAkBrQ,IAChB,EAAAvF,EAAAA,SAAE,QAAQkE,YAAY,eACtB,EAAAlE,EAAAA,SAAE,IAAMuF,GAAIvB,SAAS,QAErBpD,YAAW,YACT,EAAAZ,EAAAA,SAAE,IAAMuF,GAAIrB,YAAY,SAC1B,GAAG,IACL,GAAC,8CAED,SAAwCkL,GAAyC,IAA9B1M,EAAU,UAAH,6CAAG,KAAMwM,EAAQ,UAAH,6CAAG,KACnEG,EAAkBtO,SAAS8D,eAAeuK,GAC5CE,EAAqB,EAAIvO,SAASwO,uBAAuB,kBACzDC,EAAuB,EAAIzO,SAASwO,uBAAuB,oBAE3DF,GAAmBH,IACrBG,EAAgBpR,MAAQiR,EACxBI,EAAmBpO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQiR,CAAK,KAGrDG,GAAmB3M,GAAWwM,IAChCG,EAAgBpR,MAAQiR,EAAQ,IAAMxM,EACtC4M,EAAmBpO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQiR,CAAK,IACvDM,EAAqBtO,SAAQ,SAAAuO,GAAK,OAAIA,EAAMxR,MAAQyE,CAAO,IAE/D,GAAC,4BAED,SAAsByF,GACpB,IAAIC,EAAU9J,OAAO+J,SAASC,SAAW,KAAOhK,OAAO+J,SAASE,SAAWJ,EAC3E7J,OAAOkK,KAAKJ,EAAS,SAAU,WACjC,GAAC,2BAED,SAAqBiV,EAAKjR,GACxBuS,EAAWO,gBACXP,EAAWQ,qBACXR,EAAWS,qBACXT,EAAWU,8BACXV,EAAWW,4BACb,GAAC,2BAED,YACE,EAAAtf,EAAAA,SAAE,uDACCkE,YAAY,qBACZF,SAAS,sBACd,GAAC,gCAED,YACE,EAAAhE,EAAAA,SAAE,2DAA2Duf,QAC3D,EAAAvf,EAAAA,SAAE,MAAQ2e,EAAWtK,KAAKmL,MAAQ,UAEpC,EAAAxf,EAAAA,SAAE,sDAAsDyf,OACtD,EAAAzf,EAAAA,SAAE,mCAAqC2e,EAAWtK,KAAKqL,YAAc,gBAEvE,EAAA1f,EAAAA,SAAE,sDAAsDyf,OACtD,EAAAzf,EAAAA,SACE,qCACE2e,EAAWtK,KAAKsL,UAChB,oCACAhB,EAAWtK,KAAKuL,SAChB,gBAGN,EAAA5f,EAAAA,SAAE,uCAAuCmc,SAAS/J,OAAO,uBAC3D,GAAC,2BAED,SAAqByN,EAAajK,GAC5BiK,KACF,EAAA7f,EAAAA,SAAE,uCAAuCgH,KAAK6Y,GAC1CjK,GAASkK,OAAOlK,EAAMhQ,QAAQ,aAAc,KAAO,IACrD,EAAA5F,EAAAA,SAAE,6BAA6BgH,KAAK2X,EAAWtK,KAAK0L,SAAW,IAAMnK,IACrE,EAAA5V,EAAAA,SAAE,6BAA6BsC,IAAI,UAAW,WAE9C,EAAAtC,EAAAA,SAAE,6BAA6BsC,IAAI,UAAW,QAGpD,GAAC,gCAED,WACE,IAAImX,GAAQ,EAAAzZ,EAAAA,SAAE,yCACVyZ,GACFA,EAAM/Y,KAAK,OAAQ,QAEvB,GAAC,yCAED,YAuBE,EAAAV,EAAAA,SAAE,4CAA4CggB,OAAOjZ,OAAOqL,OAD5D6N,k+BAEF,GAAC,wCAED,YAIE,EAAAjgB,EAAAA,SAAE,oFAAoF8D,MACpF,YACE,EAAA9D,EAAAA,SAAEsD,MAAM6Y,SAAS/J,OAJnB,+ZAKA,GAEJ,GAAC,uBAED,SAAiB8N,EAAO7gB,GACtB,QAAI6gB,KACanG,OAAOmG,GACN5G,KAAKja,EAGzB,GAAC,0BAED,SAAoByZ,GAClB,QAAI,EAAA9Y,EAAAA,SAAE8Y,GAAKpY,KAAK,2BACPie,EAAWwB,WAAU,EAAAngB,EAAAA,SAAE8Y,GAAKpY,KAAK,2BAA2B,EAAAV,EAAAA,SAAE8Y,GAAKzZ,MAG9E,KA5PqB,EAMpB,mBAED,WAKMgV,KAAK+L,WACPzB,EAAWtK,KAAOA,KAAK+L,WAEvBxf,YAPF,WACE+d,EAAWtK,KAAOA,KAAK+L,UACzB,GAKuB,IAEzB,MAlBqB,8EA4PpB,EA1P4B,GA0P5B,4BC5PH,IAAuB,EAAvB,GAAuB,EAAvB,UAAuB,4BAEvB,EAAApgB,EAAAA,UAAE,WACA,IAIIG,EACAC,EALAC,GAAS,EAAAL,EAAAA,SAAE,gBACXM,GAAQ,EAAAN,EAAAA,SAAE,SACVO,GAAQ,EAAAP,EAAAA,SAAE,SACVQ,EAAY,IAIhBF,EAAMG,GAAG,SAAS,WAChBH,EAAMI,KAAK,YAAY,GAEvBN,EAAkBC,EAAOM,aAAeH,EAGtCL,EADEC,GAGaI,EAGjBH,EAAOJ,QACL,CACEU,WAAY,KAAOR,EAAe,MAEpC,KAGFS,YAAW,WACTN,EAAMI,KAAK,YAAY,EACzB,GAAG,IACL,IAEAH,EAAME,GAAG,SAAS,WAChBF,EAAMG,KAAK,YAAY,GAEvBN,EAAkBC,EAAOM,aAAeH,EAGtCL,EADEC,EACaI,EAAYJ,EAEZI,EAGjBH,EAAOJ,QACL,CACEU,WAAY,KAAOR,EAAe,MAEpC,KAGFS,YAAW,WACTL,EAAMG,KAAK,YAAY,EACzB,GAAG,IACL,IAEA,IAEIG,EAFEC,EAASC,SAASC,iBAAiB,gBAUzCH,EAAW,IAAII,sBAAqB,SAACjD,GACnCA,EAAQkD,SAAQ,SAACC,GACXA,EAAMC,gBAAkBD,EAAME,mBAAqB,KACrDT,YAAW,WACTO,EAAMG,OAAOC,UAAUC,IAAI,uBAC7B,GAAG,KACHX,EAASY,UAAUN,EAAMG,QAE7B,GACF,GAfc,CACZI,KAAM,KACNC,WAAY,MACZC,UAAW,KAcbd,EAAOI,SAAQ,SAACW,GACdhB,EAASiB,QAAQD,EACnB,GACF,oBChFA,IACqB,EADrB,GACqB,EADrB,UACqB,2BAArB,SAEA,EAAA7B,EAAAA,UAAE,WA0BA,IAjBA,EAAAA,EAAAA,SAAE,2BACCiC,IAAI,cACJA,IAAI,eACJxB,GAAG,SAAS,SAAUiG,GACrB,IAAIpF,GAAS,EAAAtB,EAAAA,SAAEsD,KAAK+c,OACpB/e,EAASA,EAAOnE,OAASmE,GAAS,EAAAtB,EAAAA,SAAE,SAAWsD,KAAK+c,KAAKC,MAAM,GAAK,MACzDnjB,SACTuJ,EAAMoE,kBACN,EAAA9K,EAAAA,SAAE,cAAcC,QACd,CACEC,UAAWoB,EAAO+J,SAASC,MAjB/B,EAAAtL,EAAAA,SAAE1B,QAAQiiB,SAAW,KAChB,EAAAvgB,EAAAA,SAAE,cAAcwgB,QAAQC,cAExB,KAgBH,KAGN,KAEE,EAAAzgB,EAAAA,SAAE,WAAW7C,OAAQ,CACvB,IAAIujB,EAAa,IAAIC,YAAYC,WAEjChgB,YAAW,YACT,EAAAZ,EAAAA,SAAE,UAAU8D,MAAK,SAAU2Q,GACzB,IAAI5N,EAAQ4N,EAAI,EACZoM,GAAgB,EAAA7gB,EAAAA,SAAEsD,MAAMmd,cAEhB,IAAIE,YAAYG,MAAM,CAAEC,eAAgBzd,KAAM0d,SAAUH,IACjEI,eAAe,QAAUpa,EAAO,UAEhCqa,MAAMR,EACX,GACF,GAAG,IACL,CACF,oBC5CA,IAAuB,gwBAEvB,IAFuB,EAAvB,UAAuB,4BAEvB1gB,UAAE,WACA,IAEIa,EAFEC,EAAS,EAAIC,SAASC,iBAAiB,yBAU7CH,EAAW,IAAII,sBAAqB,SAACjD,GACnCA,EAAQkD,SAAQ,SAACC,GACXA,EAAMC,gBAAkBD,EAAME,mBAAqB,KACrDT,YAAW,WACTO,EAAMG,OAAOC,UAAUC,IAAI,+BAC7B,GAAG,KACHX,EAASY,UAAUN,EAAMG,QAE7B,GACF,GAfc,CACZI,KAAM,KACNC,WAAY,MACZC,UAAW,KAcbd,EAAOI,SAAQ,SAACW,GACdhB,EAASiB,QAAQD,EACnB,GACF,y/BC3BqBua,EAAY,WAC/B,WAAY+E,EAAS3a,EAAO4a,EAAIC,gGAAQ,SACtC/d,KAAK6d,QAAUpgB,SAASC,iBAAiB,IAAD,OAAKmgB,IAC7C7d,KAAKkD,MAAQzF,SAASC,iBAAiB,IAAD,OAAKwF,IAC3ClD,KAAK8d,GAAKrgB,SAAS6B,cAAc,IAAD,OAAKwe,IACrC9d,KAAK+d,OAAStgB,SAASC,iBAAiB,IAAD,OAAKqgB,IAExC/d,KAAK6d,QAAQhkB,QAAUmG,KAAKkD,MAAMrJ,QAAUmG,KAAK8d,IAAI9d,KAAKkG,MAChE,WAsEC,SApED,0CAIA,SAAuB8X,GACrBA,EAAKpgB,SAAQ,SAAC2S,GAAI,OAAKA,EAAKtS,UAAU2T,OAAO,YAAY,GAC3D,GAEA,4BAKA,SAAeoM,GACbA,EAAKnkB,OAAS,EACVmkB,EAAKpgB,SAAQ,SAACmc,GAAG,OAAKA,EAAI9b,UAAUC,IAAI,YAAY,IACpD8f,EAAK/f,UAAUC,IAAI,YACzB,GAEA,wBAIA,SAAWF,GACTgC,KAAK8d,GAAGriB,MAAMwhB,MAAQ,GAAH,OAAMjf,EAAOoN,YAAW,KAC7C,GAEA,4BAMA,SAAe7H,EAAOvF,GAEfgC,KAAK8d,GAAGriB,MAAMwiB,UADT,IAAV1a,EAC+B,cAAH,OAAiBvD,KAAK6d,QAAQ,GAAGzS,YAAW,OACzC,eACjC,GAEA,8BAKA,SAAiBhJ,EAAGmB,GAAO,WACnBvF,EAASoE,EAAEpE,OAEjBgC,KAAKke,WAAWlgB,GAChBgC,KAAKme,eAAe5a,EAAOvF,GAE3BgC,KAAKoe,uBAAuB,GAAD,SAAKpe,KAAK6d,SAAO,EAAK7d,KAAKkD,OAAK,EAAKlD,KAAK+d,UAErE/d,KAAKsa,eAAetc,GAEpBgC,KAAKkD,MAAMtF,SAAQ,SAACuE,GAAI,OACtBA,EAAKR,QAAQ4O,OAASvS,EAAO2D,QAAQ4O,KAAO,EAAK+J,eAAenY,GAAQ,IAAI,IAE9EnC,KAAK+d,OAAOngB,SAAQ,SAACygB,GAAK,OACxBA,EAAM1c,QAAQ4O,OAASvS,EAAO2D,QAAQ4O,KAAO,EAAK+J,eAAe+D,GAAS,IAAI,GAElF,GAAC,kBAED,WAAO,WAELre,KAAKke,WAAWle,KAAK6d,QAAQ,IAC7B,EAAI7d,KAAK6d,SAASjgB,SAAQ,SAAC2S,EAAMhN,GAAK,OACpCgN,EAAKlP,iBAAiB,SAAS,SAACe,GAAC,OAAK,EAAKkc,iBAAiBlc,EAAGmB,EAAM,GAAC,GAE1E,oFAAC,EA9E8B,GA8E9B,2CC/DH,OAqCA,iBAKA,aAA2C,mDAnC3CpC,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MAERA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MAGRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MAmBR1D,SAAS4D,iBACP,oBACA,WACE,IAAMkd,EAAUxkB,MAAMC,KAAKyD,SAASC,iBAAiB,mBACrD,EAAA8gB,EAAAA,SAAaD,IAGb,EAAAE,EAAAA,UACF,IACA,sQC5EF,syNA8BA,IAAMC,EAAa,GACnB1jB,OAAO0jB,WAAaA,GAAc,GA6XjC,MAxBD,SAAcH,GACZ,GAAKA,EAAL,CACA,IAAMI,EAAa,GACnBJ,EAAQ3gB,SAAQ,SAAC6T,GACf,IACE,IAAMmN,EAAcnN,EAAQ9P,QAAQzG,OACpC,GAAI0jB,EACkBxQ,KAAKC,MAAMuQ,EAAYtc,QAAQ,KAAM,MAC7C1E,SAAQ,SAACuE,GACnB,IAAMjH,EAAkBiH,EA3WpBG,QAAQ,aAAa,SAAUuc,GACzC,OAAOA,EAAE,GAAGjR,aACd,KA0W4C,IAAhC+Q,EAAWjZ,QAAQxK,IACrByjB,EAAW/jB,KAAK,CACd2K,KAAMrK,EACNuW,QAASA,GAGf,GAIJ,CAFE,MAAOrP,GACP0c,QAAQ/J,MAAM,8CAChB,CACF,IAEA4J,EAAW/gB,SAAQ,SAAC1C,GAAM,OApX5B,SAAcb,EAAKgB,GACjB,IAyUiB,EAXJ,EAXS,EAXN,EAXG,EAXR,EAXW,EAXX,EAXJ,EAXK,EAXN,EAXK,EAXH,EAXQ,EAXL,EAXF,EAXA,EAXG,EAXF,EAXiB,EAXf,EAXM,EAXA,EAXH,EAXH,EAXK,EAXN,EAXE,EAXK,EAnBF,EAFVkjB,EAAU,CAEdQ,gBAAc,cAAE,8FAC4B,8BAGzC,OAGD,OAFA,IAJiBA,EAGhB,OAH8B,SAIZ1jB,GAEnB,SAC4C,6BAG3C,OACD,IAJiB2jB,EAGhB,OAHgC,SAIZ3jB,GAIpB,4CACF,4CAED4jB,kBAAgB,cAAE,8FAC4B,uEAG3C,OACD,IAJiBA,EAGhB,OAHgC,SAIZ5jB,GAGpB,2CACF,4CAEDnC,aAAW,cAAE,8FAC4B,sDAGtC,OACD,IAJiBA,EAGhB,OAH2B,SAIZmC,GAGf,2CACF,4CAED6jB,WAAS,cAAE,8FAC4B,sDAGpC,OACD,IAJiBA,EAGhB,OAHyB,SAIZ7jB,GAGb,2CACF,4CAED8jB,iBAAe,cAAE,8FAC4B,8BAG1C,OACD,IAJiBA,EAGhB,OAH+B,SAIZ9jB,GAGnB,2CACF,4CAED+jB,YAAU,cAAE,8FAC4B,8BAGrC,OACD,IAJiBA,EAGhB,OAH0B,SAIZ/jB,GAGd,2CACF,4CAEDgkB,eAAa,cAAE,8FAC4B,sDAGxC,OACD,IAJiBA,EAGhB,OAH6B,SAIZhkB,GAGjB,2CACF,4CAEDikB,kBAAgB,cAAE,8FAC4B,uEAG3C,OACD,IAJiBA,EAGhB,OAHgC,SAIZjkB,GAGpB,2CACF,4CAEDkkB,kBAAgB,cAAE,8FAC4B,sDAG3C,OACD,IAJiBA,EAGhB,OAHgC,SAIZlkB,GAGpB,2CACF,4CAEDmkB,YAAU,cAAE,8FAC4B,uEAGrC,OACD,IAJiBA,EAGhB,OAH0B,SAIZnkB,GAGd,2CACF,4CAEDokB,2BAAyB,cAAE,8FAC4B,+DAGpD,OACD,IAJiBA,EAGhB,OAHyC,SAIZpkB,GAG7B,2CACF,4CAEDqkB,UAAQ,cAAE,8FAC4B,+DAGnC,OACD,IAJiBA,EAGhB,OAHwB,SAIZrkB,GAGZ,2CACF,4CAEDskB,YAAU,cAAE,8FAC4B,8BAGrC,OACD,IAJiBA,EAGhB,OAH0B,SAIZtkB,GAGd,2CACF,4CAEDukB,SAAO,cAAE,8FAC4B,sDAGlC,OACD,IAJiBA,EAGhB,OAHuB,SAIZvkB,GAGX,2CACF,4CAEDwkB,SAAO,cAAE,8FAC4B,sDAGlC,OACD,IAJiBA,EAGhB,OAHuB,SAIZxkB,GAGX,2CACF,4CAEDykB,WAAS,cAAE,8FAC4B,8BAGpC,OACD,IAJiBA,EAGhB,OAHyB,SAIZzkB,GAGb,2CACF,4CAED0kB,gBAAc,cAAE,8FAC4B,8BAGzC,OACD,IAJiBA,EAGhB,OAH8B,SAIZ1kB,GAGlB,2CACF,4CAED2kB,QAAM,cAAE,8FAC4B,6BAGjC,OACD,IAJiBA,EAGhB,OAHsB,SAIZ3kB,GAGV,2CACF,4CAED4kB,WAAS,cAAE,8FAC4B,8BAGpC,OACD,IAJiBA,EAGhB,OAHyB,SAIZ5kB,GAGb,2CACF,4CAEDyO,MAAI,cAAE,8FAC4B,8BAG/B,OACD,IAJiBA,EAGhB,OAHoB,SAIZzO,GAGR,2CACF,4CAEDggB,YAAU,cAAE,8FAC4B,uCAGrC,OACD,IAJiBA,EAGhB,OAH0B,SAIZhgB,GAGd,2CACF,4CAED6kB,OAAK,cAAE,8FAC4B,uEAGhC,OACD,IAJiBA,EAGhB,OAHqB,SAIZ7kB,GAGT,2CACF,4CAED8kB,WAAS,cAAE,sGAC4B,sDAGpC,gBAHgBA,EAAS,UAI1BzB,EAAW9jB,KAAK,IAAIulB,EAAU9kB,IAG7B,2CACF,4CAED+kB,sBAAoB,cAAE,8FAC4B,8BAG/C,OACD,IAJiBA,EAGhB,OAHoC,SAIZ/kB,GAGxB,2CACF,4CAEDglB,WAAS,cAAE,8FAC4B,8BAGpC,OACD,IAJiBA,EAGhB,OAHyB,SAIZhlB,GAGb,2CACF,4CAEDilB,mBAAiB,cAAE,8FAC4B,wEAG5C,OACD,IAJiBA,EAGhB,OAHiC,SAIZjlB,GAGrB,2CACF,4CAEDklB,gBAAc,cAAE,8FAC4B,+DAGzC,OACD,IAJiBA,EAGhB,OAH8B,SAIZllB,GAGlB,2CACF,4CAEDmlB,sBAAoB,cAAE,8FAC4B,+DAG/C,OACD,IAJiBA,EAGhB,OAHoC,SAIZnlB,GAGxB,2CACF,4CAEDolB,aAAW,cAAE,8FAC4B,+DAGtC,OACD,IAJiBA,EAGhB,OAH2B,SAIZplB,GAGf,2CACF,4CAEDqlB,iBAAe,cAAE,8FAC4B,+DAG1C,OACD,IAJiBA,EAGhB,OAH+B,SAIZrlB,GAGnB,2CACF,6CAEH,IAEE,OAAOkjB,EAAQlkB,IAGjB,CAFE,MAAO+H,GACP0c,QAAQ/J,MAAM,UAAD,OAAW1a,EAAG,eAC7B,CACF,CAyBiCsmB,CAAKzlB,EAAOqK,KAAMrK,EAAOuW,QAAQ,GAtB5C,CAuBtB,EAEmB,8FC9ZnB,cAAmE,6vBADnEzW,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAAM2lB,EAAsB,EAAInjB,SAASC,iBAAiB,iCAE1D,SAASmjB,EAAkBxlB,GACT,EAAIA,EAAGqC,iBAAiB,WAEhCE,SAAQ,SAAAkjB,GACdA,EAAOzf,iBAAiB,SAAS,YAC/B,EAAA0f,EAAAA,iBAAgB,CACd,MAAS,6BACT,UAAaD,EAAOnf,QAAQqf,SAEhC,GACF,GACF,CAQC,MAND,WACOJ,EAAoB/mB,QAIzB+mB,EAAoBhjB,QAAQijB,EAC9B,EAEmB,8FC1BnB,cAAsE,0GAEtE,IAFsE,EAEhEI,EAFgE,+CAEpDxjB,SAASC,iBAAiB,6BAF0B,gkBAsBrE,MAND,WACOujB,EAAMpnB,QAIXonB,EAAMrjB,SAAQ,SAAC+F,GAAI,OAjBrB,SAA2BA,GACzBA,EAAKtC,iBAAiB,SAAS,YAC7B,EAAA0f,EAAAA,iBAAgB,CACd3d,MAAO,uBACP8d,UAAWvd,EAAKuT,YAChBiK,SAAUxd,EAAKmU,KACfsJ,iBAAkBzd,EAAKhC,QAAQ4O,KAC/B8Q,uBAAwB1d,EAAKhC,QAAQ2f,QAEzC,GACF,CAO0BT,CAAkBld,EAAK,GACjD,EAEmB,8FCvBnB,cAAmE,6vBADnE3I,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAAMsmB,EAAe,EAAI9jB,SAASC,iBAAiB,0BAEnD,SAASmjB,EAAkBxlB,GACzB,IAAMmmB,EAAU,EAAInmB,EAAGqC,iBAAiB,MAClCwe,EAAQ7gB,EAAGiE,cAAc,MAE/BkiB,EAAQ5jB,SAAQ,SAAAkjB,GACdA,EAAOzf,iBAAiB,SAAS,YAC/B,EAAA0f,EAAAA,iBAAgB,CACd,MAAS,qBACT,UAAaD,EAAOW,UACpB,SAAYX,EAAOhJ,KACnB,cAAiBoE,EAAMuF,WAE3B,GACF,GACF,CAQC,MAND,WACOF,EAAa1nB,QAIlB0nB,EAAa3jB,QAAQijB,EACvB,EAEmB,8FC5BnB,cAAmE,6vBADnE7lB,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAAMymB,EAAa,EAAIjkB,SAASC,iBAAiB,sBAEjD,SAASmjB,EAAkBxlB,GACT,EAAIA,EAAGqC,iBAAiB,MAEhCE,SAAQ,SAAAkjB,GACdA,EAAOzf,iBAAiB,SAAS,SAACe,IAChC,EAAA2e,EAAAA,iBAAgB,CACd,MAAS,mBACT,UAAaD,EAAOW,UACpB,SAAYX,EAAOhJ,MAEvB,GACF,GACF,CAQC,MAND,WACO4J,EAAW7nB,QAIhB6nB,EAAW9jB,QAAQijB,EACrB,EAEmB,8FC1BnB,cAAmE,6vBADnE7lB,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAAM0mB,EAAa,EAAIlkB,SAASC,iBAAiB,wBAEjD,SAASmjB,EAAkBxlB,GACzB,IAAMmmB,EAAU,EAAInmB,EAAGqC,iBAAiB,MAClCwe,EAAQ7gB,EAAGiE,cAAc,MAE/BkiB,EAAQ5jB,SAAQ,SAAAkjB,GACdA,EAAOzf,iBAAiB,SAAS,YAC/B,EAAA0f,EAAAA,iBAAgB,CACd,MAAS,mBACT,UAAaD,EAAOW,UACpB,SAAYX,EAAOhJ,KACnB,cAAiBoE,EAAMuF,WAE3B,GACF,GACF,CAQC,MAND,WACOE,EAAW9nB,QAIhB8nB,EAAW/jB,QAAQijB,EACrB,EAEmB,8FC5BnB,IAAmE,IAAnE,UAAmE,0GADnE7lB,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAFmE,EAE7D2mB,EAA2D,QAAnD,EAAGnkB,SAAS6B,cAAc,iCAAyB,OAAS,QAAT,EAAhD,EAAkDqC,eAAO,WAAT,EAAhD,EAA2DkgB,eACtEZ,EAH6D,+CAGjDxjB,SAASC,iBAAiB,yBAHuB,gkBAKnE,SAASmjB,EAAkBxlB,GACzBA,EAAGgG,iBAAiB,SAAS,kBAC3B,EAAA0f,EAAAA,iBAAgB,CACd3d,MAAO,GAAF,OAAKwe,EAAQ,eAClBV,UAAW7lB,EAAG6b,YAAYlJ,QAC1B,GAEN,CAQC,MAND,WACO4T,GAAaX,EAAMpnB,QAIxBonB,EAAMrjB,QAAQijB,EAChB,EAEmB,8FCtBnB,cAAmE,6vBADnE7lB,OAAOC,UAAYD,OAAOC,WAAa,GAGvC,IAAM6mB,EAAW,EAAIrkB,SAASC,iBAAiB,mBAE/C,SAASmjB,EAAkBxlB,GACzB,IAAMmmB,EAAU,EAAInmB,EAAGqC,iBAAiB,MAClCwe,EAAQ7gB,EAAGiE,cAAc,MAE/BkiB,EAAQ5jB,SAAQ,SAAAkjB,GACdA,EAAOzf,iBAAiB,SAAS,SAACe,IAChC,EAAA2e,EAAAA,iBAAgB,CACd,MAAS,gBACT,UAAaD,EAAOW,UACpB,SAAYX,EAAOhJ,KACnB,cAAiBoE,EAAMuF,WAE3B,GACF,GACF,CAQC,MAND,WACOK,EAASjoB,QAIdioB,EAASlkB,QAAQijB,EACnB,EAEmB,sBC7BnB3lB,EAAOC,QAAU+Z,SCCb6M,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB9T,IAAjB+T,EACH,OAAOA,EAAa/mB,QAGrB,IAAID,EAAS6mB,EAAyBE,GAAY,CACjDhgB,GAAIggB,EACJ7gB,QAAQ,EACRjG,QAAS,CAAC,GAUX,OANAgnB,EAAoBF,GAAU/mB,EAAQA,EAAOC,QAAS6mB,GAGtD9mB,EAAOkG,QAAS,EAGTlG,EAAOC,OACf,CAGA6mB,EAAoBI,EAAID,EC5BxBH,EAAoBK,KAAO,CAAC,EhCAxBvpB,EAAW,GACfkpB,EAAoBM,EAAI,CAACxL,EAAQyL,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASxR,EAAI,EAAGA,EAAIrY,EAASe,OAAQsX,IAAK,CAGzC,IAFA,IAAKoR,EAAUC,EAAIC,GAAY3pB,EAASqY,GACpCyR,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAAS1oB,OAAQgpB,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAavoB,OAAOD,KAAK+nB,EAAoBM,GAAGQ,OAAOzoB,GAAS2nB,EAAoBM,EAAEjoB,GAAKkoB,EAASM,MAC9IN,EAASQ,OAAOF,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACb9pB,EAASiqB,OAAO5R,IAAK,GACrB,IAAI6R,EAAIR,SACErU,IAAN6U,IAAiBlM,EAASkM,EAC/B,CACD,CACA,OAAOlM,CAnBP,CAJC2L,EAAWA,GAAY,EACvB,IAAI,IAAItR,EAAIrY,EAASe,OAAQsX,EAAI,GAAKrY,EAASqY,EAAI,GAAG,GAAKsR,EAAUtR,IAAKrY,EAASqY,GAAKrY,EAASqY,EAAI,GACrGrY,EAASqY,GAAK,CAACoR,EAAUC,EAAIC,EAqBjB,EiCzBdT,EAAoBiB,EAAI,CAAC9nB,EAAS+nB,KACjC,IAAI,IAAI7oB,KAAO6oB,EACXlB,EAAoBmB,EAAED,EAAY7oB,KAAS2nB,EAAoBmB,EAAEhoB,EAASd,IAC5EH,OAAOkpB,eAAejoB,EAASd,EAAK,CAAEgpB,YAAY,EAAMC,IAAKJ,EAAW7oB,IAE1E,ECND2nB,EAAoBuB,EAAI,CAAC,EAGzBvB,EAAoB5f,EAAKohB,GACjBloB,QAAQmoB,IAAIvpB,OAAOD,KAAK+nB,EAAoBuB,GAAGG,QAAO,CAACC,EAAUtpB,KACvE2nB,EAAoBuB,EAAElpB,GAAKmpB,EAASG,GAC7BA,IACL,KCNJ3B,EAAoB4B,EAAKJ,IAEZ,CAAC,GAAK,SAAS,GAAK,YAAY,IAAM,mBAAmB,IAAM,WAAW,IAAM,aAAa,IAAM,SAAS,IAAM,mBAAmB,IAAM,YAAY,IAAM,iBAAiB,IAAM,YAAY,IAAM,mBAAmB,IAAM,QAAQ,IAAM,gBAAgB,IAAM,SAAS,IAAM,YAAY,IAAM,4BAA4B,IAAM,MAAM,IAAM,OAAO,IAAM,uBAAuB,IAAM,aAAa,IAAM,aAAa,IAAM,oBAAoB,IAAM,YAAY,IAAM,YAAY,IAAM,iBAAiB,IAAM,YAAY,IAAM,kBAAkB,IAAM,kBAAkB,IAAM,UAAU,IAAM,cAAc,IAAM,iBAAiB,IAAM,mBAAmB,IAAM,uBAAuB,IAAM,UAAU,IAAM,YAAY,IAAM,eAAeA,GAAW,IAAM,CAAC,GAAK,uBAAuB,GAAK,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,wBAAwBA,GAAW,OCHxxDxB,EAAoBnD,EAAI,WACvB,GAA0B,iBAAfgF,WAAyB,OAAOA,WAC3C,IACC,OAAO7jB,MAAQ,IAAI8jB,SAAS,cAAb,EAGhB,CAFE,MAAO1hB,GACR,GAAsB,iBAAXpH,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBgnB,EAAoBmB,EAAI,CAAC9R,EAAKuE,IAAU1b,OAAO6pB,UAAUC,eAAeC,KAAK5S,EAAKuE,GpCA9E7c,EAAa,CAAC,EACdC,EAAoB,WAExBgpB,EAAoB5Q,EAAI,CAACvM,EAAKyD,EAAMjO,EAAKmpB,KACxC,GAAGzqB,EAAW8L,GAAQ9L,EAAW8L,GAAKjK,KAAK0N,OAA3C,CACA,IAAI4b,EAAQC,EACZ,QAAWhW,IAAR9T,EAEF,IADA,IAAI+pB,EAAU3mB,SAAS6G,qBAAqB,UACpC6M,EAAI,EAAGA,EAAIiT,EAAQvqB,OAAQsX,IAAK,CACvC,IAAIkT,EAAID,EAAQjT,GAChB,GAAGkT,EAAExgB,aAAa,QAAUgB,GAAOwf,EAAExgB,aAAa,iBAAmB7K,EAAoBqB,EAAK,CAAE6pB,EAASG,EAAG,KAAO,CACpH,CAEGH,IACHC,GAAa,GACbD,EAASzmB,SAASuE,cAAc,WAEzBsiB,QAAU,QACjBJ,EAAOK,QAAU,IACbvC,EAAoBwC,IACvBN,EAAO7X,aAAa,QAAS2V,EAAoBwC,IAElDN,EAAO7X,aAAa,eAAgBrT,EAAoBqB,GACxD6pB,EAAO9f,IAAMS,GAEd9L,EAAW8L,GAAO,CAACyD,GACnB,IAAImc,EAAmB,CAAChhB,EAAML,KAE7B8gB,EAAOQ,QAAUR,EAAOS,OAAS,KACjC3U,aAAauU,GACb,IAAIK,EAAU7rB,EAAW8L,GAIzB,UAHO9L,EAAW8L,GAClBqf,EAAO3f,YAAc2f,EAAO3f,WAAW0V,YAAYiK,GACnDU,GAAWA,EAAQhnB,SAAS4kB,GAAQA,EAAGpf,KACpCK,EAAM,OAAOA,EAAKL,EAAM,EAExBmhB,EAAUjnB,WAAWmnB,EAAiBI,KAAK,UAAM1W,EAAW,CAAEoC,KAAM,UAAWvS,OAAQkmB,IAAW,MACtGA,EAAOQ,QAAUD,EAAiBI,KAAK,KAAMX,EAAOQ,SACpDR,EAAOS,OAASF,EAAiBI,KAAK,KAAMX,EAAOS,QACnDR,GAAc1mB,SAASqnB,KAAK5K,YAAYgK,EAnCkB,CAmCX,EqCtChDlC,EAAoBgB,EAAK7nB,IACH,oBAAX4pB,QAA0BA,OAAOC,aAC1C9qB,OAAOkpB,eAAejoB,EAAS4pB,OAAOC,YAAa,CAAErqB,MAAO,WAE7DT,OAAOkpB,eAAejoB,EAAS,aAAc,CAAER,OAAO,GAAO,ECL9DqnB,EAAoBiD,IAAO/pB,IAC1BA,EAAOgqB,MAAQ,GACVhqB,EAAOsc,WAAUtc,EAAOsc,SAAW,IACjCtc,GCHR8mB,EAAoBmD,EAAI,oBCKxB,IAAIC,EAAkB,CACrB,IAAK,GAGNpD,EAAoBuB,EAAEV,EAAI,CAACW,EAASG,KAElC,IAAI0B,EAAqBrD,EAAoBmB,EAAEiC,EAAiB5B,GAAW4B,EAAgB5B,QAAWrV,EACtG,GAA0B,IAAvBkX,EAGF,GAAGA,EACF1B,EAAS/oB,KAAKyqB,EAAmB,QAC3B,CAGL,IAAIhd,EAAU,IAAI/M,SAAQ,CAACC,EAASC,IAAY6pB,EAAqBD,EAAgB5B,GAAW,CAACjoB,EAASC,KAC1GmoB,EAAS/oB,KAAKyqB,EAAmB,GAAKhd,GAGtC,IAAIxD,EAAMmd,EAAoBmD,EAAInD,EAAoB4B,EAAEJ,GAEpDzO,EAAQ,IAAIuQ,MAgBhBtD,EAAoB5Q,EAAEvM,GAfFzB,IACnB,GAAG4e,EAAoBmB,EAAEiC,EAAiB5B,KAEf,KAD1B6B,EAAqBD,EAAgB5B,MACR4B,EAAgB5B,QAAWrV,GACrDkX,GAAoB,CACtB,IAAIE,EAAYniB,IAAyB,SAAfA,EAAMmN,KAAkB,UAAYnN,EAAMmN,MAChEiV,EAAUpiB,GAASA,EAAMpF,QAAUoF,EAAMpF,OAAOoG,IACpD2Q,EAAM0Q,QAAU,iBAAmBjC,EAAU,cAAgB+B,EAAY,KAAOC,EAAU,IAC1FzQ,EAAMxP,KAAO,iBACbwP,EAAMxE,KAAOgV,EACbxQ,EAAM2Q,QAAUF,EAChBH,EAAmB,GAAGtQ,EACvB,CACD,GAEwC,SAAWyO,EAASA,EAE/D,CACD,EAWFxB,EAAoBM,EAAEO,EAAKW,GAA0C,IAA7B4B,EAAgB5B,GAGxD,IAAImC,EAAuB,CAACC,EAA4BjhB,KACvD,IAGIsd,EAAUuB,GAHTjB,EAAUsD,EAAaC,GAAWnhB,EAGhBwM,EAAI,EAC3B,GAAGoR,EAASwD,MAAM9jB,GAAgC,IAAxBmjB,EAAgBnjB,KAAa,CACtD,IAAIggB,KAAY4D,EACZ7D,EAAoBmB,EAAE0C,EAAa5D,KACrCD,EAAoBI,EAAEH,GAAY4D,EAAY5D,IAGhD,GAAG6D,EAAS,IAAIhP,EAASgP,EAAQ9D,EAClC,CAEA,IADG4D,GAA4BA,EAA2BjhB,GACrDwM,EAAIoR,EAAS1oB,OAAQsX,IACzBqS,EAAUjB,EAASpR,GAChB6Q,EAAoBmB,EAAEiC,EAAiB5B,IAAY4B,EAAgB5B,IACrE4B,EAAgB5B,GAAS,KAE1B4B,EAAgB5B,GAAW,EAE5B,OAAOxB,EAAoBM,EAAExL,EAAO,EAGjCkP,EAAqBC,KAA0B,oBAAIA,KAA0B,qBAAK,GACtFD,EAAmBpoB,QAAQ+nB,EAAqBd,KAAK,KAAM,IAC3DmB,EAAmBprB,KAAO+qB,EAAqBd,KAAK,KAAMmB,EAAmBprB,KAAKiqB,KAAKmB,QClFvF,IAAIE,EAAsBlE,EAAoBM,OAAEnU,EAAW,CAAC,MAAM,IAAO6T,EAAoB,OAC7FkE,EAAsBlE,EAAoBM,EAAE4D","sources":["webpack://jcb.com/webpack/runtime/chunk loaded","webpack://jcb.com/webpack/runtime/load script","webpack://jcb.com/./src/js/analytics/analytics.js","webpack://jcb.com/./src/js/analytics/analytics.methods.js","webpack://jcb.com/./src/js/components/animations.js","webpack://jcb.com/./src/js/components/compareRange.js","webpack://jcb.com/./src/js/components/dealerContactOverlay.js","webpack://jcb.com/./src/js/components/dealerModals.js","webpack://jcb.com/./src/js/components/dealerSearchOverlay.js","webpack://jcb.com/./src/js/components/dropdown-anchor.js","webpack://jcb.com/./src/js/components/heroCarousel.js","webpack://jcb.com/./src/js/components/industryCookie.js","webpack://jcb.com/./src/js/components/mainjs.js","webpack://jcb.com/./src/js/components/mobileMenu.js","webpack://jcb.com/./src/js/components/product.js","webpack://jcb.com/./src/js/components/productSelect.js","webpack://jcb.com/./src/js/components/quotemodal.js","webpack://jcb.com/./src/js/components/rangeTable.js","webpack://jcb.com/./src/js/components/ranges.js","webpack://jcb.com/./src/js/components/specifications.js","webpack://jcb.com/./src/js/components/toggle-select.js","webpack://jcb.com/./src/js/main.js","webpack://jcb.com/./src/js/module-loader.js","webpack://jcb.com/./src/templates/02-components/card-browser/analytics.card-browser.js","webpack://jcb.com/./src/templates/02-components/content-picker/analytics.content-picker.js","webpack://jcb.com/./src/templates/02-components/feature-card-a/analytics.feature-card-a.js","webpack://jcb.com/./src/templates/02-components/icon-strip/analytics.icon-strip.js","webpack://jcb.com/./src/templates/02-components/image-card-a/analytics.image-card-a.js","webpack://jcb.com/./src/templates/02-components/pagination/analytics.pagination.js","webpack://jcb.com/./src/templates/02-components/xl-hero/analytics.xl-hero.js","webpack://jcb.com/external var \"jQuery\"","webpack://jcb.com/webpack/bootstrap","webpack://jcb.com/webpack/runtime/amd options","webpack://jcb.com/webpack/runtime/define property getters","webpack://jcb.com/webpack/runtime/ensure chunk","webpack://jcb.com/webpack/runtime/get javascript chunk filename","webpack://jcb.com/webpack/runtime/global","webpack://jcb.com/webpack/runtime/hasOwnProperty shorthand","webpack://jcb.com/webpack/runtime/make namespace object","webpack://jcb.com/webpack/runtime/node module decorator","webpack://jcb.com/webpack/runtime/publicPath","webpack://jcb.com/webpack/runtime/jsonp chunk loading","webpack://jcb.com/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"jcb.com:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import contentPicker from '../../templates/02-components/content-picker/analytics.content-picker';\r\nimport cardBrowser from '../../templates/02-components/card-browser/analytics.card-browser';\r\nimport featureCardA from '../../templates/02-components/feature-card-a/analytics.feature-card-a';\r\nimport iconStrip from '../../templates/02-components/icon-strip/analytics.icon-strip';\r\nimport imageCardA from '../../templates/02-components/image-card-a/analytics.image-card-a';\r\nimport pagination from '../../templates/02-components/pagination/analytics.pagination';\r\nimport xlHero from '../../templates/02-components/xl-hero/analytics.xl-hero';\r\n\r\nfunction init() {\r\n contentPicker();\r\n cardBrowser();\r\n featureCardA();\r\n iconStrip();\r\n imageCardA();\r\n pagination();\r\n xlHero();\r\n}\r\n\r\nexport default init;\r\n","function pushToDataLayer(payload) {\r\n if (typeof window.dataLayer !== 'undefined') {\r\n window.dataLayer.push(payload);\r\n }\r\n}\r\n\r\n// takes form data and returns all it's data in following format:\r\n// sortby: newest | fuel: hydrogen, electric | product-category: large-excavators, site-dumpsters\r\nfunction determineSelectedFilters(formEl) {\r\n const fd = new FormData(formEl);\r\n const formDataObject = formDataToObject(fd);\r\n let selectedFiltersArr = [];\r\n for (const [key, value] of Object.entries(formDataObject)) {\r\n key !== 'search' &&\r\n selectedFiltersArr.push(`${key}: ${Array.isArray(value) ? value.join(', ') : value}`);\r\n }\r\n return selectedFiltersArr.join(' | ');\r\n}\r\n\r\nfunction formDataToObject(formData) {\r\n const normalizeValues = (values) => (values.length > 1 ? values : values[0]);\r\n const formElemKeys = Array.from(formData.keys());\r\n\r\n return Object.fromEntries(\r\n formElemKeys.map((key) => [key, normalizeValues(formData.getAll(key))]),\r\n );\r\n}\r\n\r\nexport { pushToDataLayer, determineSelectedFilters };\r\n","import $ from 'jquery';\r\n\r\nmodule.exports = {\r\n // fade out\r\n fadeOut(el) {\r\n return new Promise((resolve, reject) => {\r\n el.style.opacity = 1;\r\n (function fade() {\r\n if ((el.style.opacity -= 0.1) < 0) {\r\n el.style.display = 'none';\r\n resolve(true);\r\n } else {\r\n requestAnimationFrame(fade);\r\n }\r\n })();\r\n });\r\n },\r\n\r\n // fade in\r\n fadeIn(el, display) {\r\n return new Promise((resolve, reject) => {\r\n el.style.opacity = 0;\r\n el.style.display = display || 'block';\r\n\r\n (function fade() {\r\n var val = parseFloat(el.style.opacity);\r\n if (!((val += 0.1) > 1)) {\r\n el.style.opacity = val;\r\n requestAnimationFrame(fade);\r\n } else {\r\n resolve(true);\r\n }\r\n })();\r\n });\r\n },\r\n\r\n // slide up\r\n slideUp(el) {\r\n return new Promise((resolve, reject) => {\r\n (function slide() {\r\n let height = el.offsetHeight;\r\n if (!((height -= 15) < 0)) {\r\n el.style.height = height + 'px';\r\n requestAnimationFrame(slide);\r\n } else {\r\n el.style.height = '0';\r\n el.style.display = 'none';\r\n resolve(true);\r\n }\r\n })();\r\n });\r\n },\r\n\r\n // scroll to\r\n scrollTo(el, targetEl, scrollDuration) {\r\n const scrollTarget = targetEl.offsetTop;\r\n $(el).animate({ scrollTop: scrollTarget }, scrollDuration, 'swing');\r\n },\r\n};\r\n","import $ from 'jquery';\r\n\r\n$(function () {\r\n var $table = $('.compare-range-table');\r\n var $prev = $('#prev');\r\n var $next = $('#next');\r\n var cellWidth = 270;\r\n var scrollAmount;\r\n var scrollRemainder;\r\n\r\n $prev.on('click', function () {\r\n $prev.attr('disabled', true);\r\n\r\n scrollRemainder = $table.scrollLeft() % cellWidth;\r\n\r\n if (scrollRemainder) {\r\n scrollAmount = scrollRemainder;\r\n } else {\r\n scrollAmount = cellWidth;\r\n }\r\n\r\n $table.animate(\r\n {\r\n scrollLeft: '-=' + scrollAmount + 'px',\r\n },\r\n 300,\r\n );\r\n\r\n setTimeout(function () {\r\n $prev.attr('disabled', false);\r\n }, 300);\r\n });\r\n\r\n $next.on('click', function () {\r\n $next.attr('disabled', true);\r\n\r\n scrollRemainder = $table.scrollLeft() % cellWidth;\r\n\r\n if (scrollRemainder) {\r\n scrollAmount = cellWidth - scrollRemainder;\r\n } else {\r\n scrollAmount = cellWidth;\r\n }\r\n\r\n $table.animate(\r\n {\r\n scrollLeft: '+=' + scrollAmount + 'px',\r\n },\r\n 300,\r\n );\r\n\r\n setTimeout(function () {\r\n $next.attr('disabled', false);\r\n }, 300);\r\n });\r\n\r\n const tables = [...document.querySelectorAll('.compare-range-table')];\r\n\r\n let observer;\r\n\r\n let options = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0.5,\r\n };\r\n\r\n observer = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && entry.intersectionRatio >= 0.5) {\r\n setTimeout(function () {\r\n entry.target.classList.add('compare-range-table--visible');\r\n }, 600);\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n }, options);\r\n\r\n tables.forEach((table) => {\r\n observer.observe(table);\r\n });\r\n\r\n var $heading = $('.compare-range-heading').not('.compare-range-heading--current');\r\n var $product = $('.compare-range-product');\r\n var numberOfProducts = $product.length - 1;\r\n var productWidth;\r\n\r\n function headingWidth() {\r\n productWidth = $product.outerWidth();\r\n $heading.css('width', numberOfProducts * productWidth);\r\n }\r\n\r\n function getProductTitleMaxHeight() {\r\n const products = Array.from(document.querySelectorAll('.compare-range-product'));\r\n let maxHeight = 0;\r\n\r\n if (products.length <= 0) {\r\n return 0;\r\n }\r\n\r\n [...products].forEach((product) => {\r\n let heading = product.querySelector('h3');\r\n\r\n if (heading) {\r\n heading.style.minHeight = `auto`;\r\n\r\n let headingHeight = heading.clientHeight;\r\n\r\n if (headingHeight > maxHeight) {\r\n maxHeight = headingHeight;\r\n }\r\n }\r\n });\r\n\r\n return maxHeight;\r\n }\r\n\r\n function matchProductTitleHeight() {\r\n const maxHeight = getProductTitleMaxHeight();\r\n if (document.querySelectorAll('.compare-range-product').length) {\r\n [...document.querySelectorAll('.compare-range-product')].forEach((product) => {\r\n const heading = product.querySelector('h3');\r\n\r\n if (heading) {\r\n heading.style.minHeight = `${maxHeight}px`;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getProductPriceHeight() {\r\n const productPrice = document.querySelectorAll(\r\n '.compare-range-product .compare-range-price:not(.compare-range-price__placeholder)',\r\n )[0];\r\n\r\n if (productPrice) {\r\n return productPrice.clientHeight;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function matchProductPricePlaceholderHeight() {\r\n const height = getProductPriceHeight();\r\n if (document.querySelectorAll('.compare-range-price__placeholder').length) {\r\n [...document.querySelectorAll('.compare-range-price__placeholder')].forEach((placeholder) => {\r\n placeholder.style.minHeight = `${height}px`;\r\n });\r\n }\r\n }\r\n\r\n headingWidth();\r\n matchProductTitleHeight();\r\n matchProductPricePlaceholderHeight();\r\n\r\n $(window).on('resize', function () {\r\n headingWidth();\r\n matchProductTitleHeight();\r\n matchProductPricePlaceholderHeight();\r\n });\r\n});\r\n","import $ from 'jquery';\r\nimport dealerModals from './dealerModals.js';\r\n\r\nexport default class dealerContactOverlay {\r\n constructor() {}\r\n\r\n static init() {\r\n const that = this;\r\n $('.js--dealer-contact').on('click', function () {\r\n if (window.isMobileMenuOpen()) {\r\n window.closeMobileMenu();\r\n }\r\n\r\n if ($('.dealer-search--modal').is('.active')) {\r\n dealerModals.closeDealerModal('dealer--search-overlay');\r\n }\r\n\r\n if ($(this).is('.active')) {\r\n that.closeDealerContactModal();\r\n } else {\r\n that.openDealerContactModal();\r\n }\r\n });\r\n }\r\n\r\n static openDealerContactModal() {\r\n setTimeout(function () {\r\n $('.js--dealer-contact').each(function () {\r\n $(this).find('.chevron-to-cross').addClass('active');\r\n $(this).addClass('active');\r\n });\r\n }, 100);\r\n\r\n dealerModals.openDealerModal('dealer--contact-overlay');\r\n }\r\n\r\n static closeDealerContactModal() {\r\n setTimeout(function () {\r\n $('.js--dealer-contact').each(function () {\r\n $(this).find('.chevron-to-cross').removeClass('active');\r\n $(this).removeClass('active');\r\n });\r\n }, 100);\r\n\r\n dealerModals.closeDealerModal('dealer--contact-overlay');\r\n }\r\n}\r\n","import $ from 'jquery';\r\nexport default class dealerModals {\r\n static openDealerModal(modalName) {\r\n const modal = document.querySelectorAll(`[data-modal=\"${modalName}\"]`);\r\n\r\n $('body').addClass('modal-open');\r\n $(modal).fadeIn('fast').addClass('active');\r\n }\r\n\r\n static closeDealerModal(modalName) {\r\n const modal = document.querySelectorAll(`[data-modal=\"${modalName}\"]`);\r\n\r\n $('body').removeClass('modal-open');\r\n $(modal).fadeOut('fast').removeClass('active');\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport dealerModals from './dealerModals.js';\r\nimport dealerContactOverlay from './dealerContactOverlay.js';\r\n\r\nexport default class dealerSearchOverlay {\r\n constructor() {}\r\n\r\n static init() {\r\n const that = this;\r\n $('.js--dealer--primary-nav--search-toggle').on('click', function () {\r\n if (window.isMobileMenuOpen()) {\r\n window.closeMobileMenu();\r\n }\r\n\r\n if ($('.dealer-contact--modal').is('.active')) {\r\n dealerModals.closeDealerModal('dealer--contact-overlay');\r\n dealerContactOverlay.closeDealerContactModal();\r\n }\r\n\r\n if ($(this).is('.active')) {\r\n that.closeSearch();\r\n $('.js--dealer--primary-nav--search-toggle').removeClass('active');\r\n } else {\r\n that.openSearch();\r\n $('.js--dealer--primary-nav--search-toggle').addClass('active');\r\n }\r\n });\r\n }\r\n\r\n static openSearch() {\r\n dealerModals.openDealerModal('dealer--search-overlay');\r\n }\r\n\r\n static closeSearch() {\r\n dealerModals.closeDealerModal('dealer--search-overlay');\r\n }\r\n}\r\n","const anims = require(\"./animations.js\");\r\n\r\nlet loaded = false;\r\n\r\nfunction addItemEvent(specTables) {\r\n loaded = true;\r\n const items = document.querySelectorAll('.ui-menu-item-wrapper');\r\n\r\n items.forEach(item => {\r\n item.addEventListener('click', e => {\r\n const id = parseInt(e.target.id.replace('ui-id-', '')) - 1;\r\n const matchingSection = specTables[id];\r\n\r\n if (matchingSection) {\r\n anims.scrollTo(document.scrollingElement || document.documentElement, matchingSection, 500);\r\n }\r\n })\r\n })\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n const dropdownSelect = document.getElementById('choose-spec-button');\r\n\r\n if (!dropdownSelect) return;\r\n\r\n //Set default selected option\r\n const selectText = document.querySelector('.ui-selectmenu-text');\r\n const firstSelectItem = document.querySelector('.js-specification');\r\n selectText.innerHTML = firstSelectItem.dataset.specTitle;\r\n\r\n //Add dropdown items to select\r\n const select = document.getElementById('choose-spec');\r\n const specTables = document.querySelectorAll('.js-specification');\r\n specTables.forEach(table => {\r\n const opt = document.createElement(\"option\");\r\n opt.value = table.id;\r\n opt.text = table.dataset.specTitle;\r\n select.add(opt, null);\r\n });\r\n\r\n dropdownSelect.addEventListener('click', () => loaded === false ? addItemEvent(specTables) :\r\n null);\r\n});\r\n","import $ from 'jquery';\r\nrequire('owl.carousel');\r\n\r\nvar heroCarousel = $('.hero-carousel');\r\n\r\nheroCarousel.owlCarousel({\r\n navigation: false,\r\n slideSpeed: 5000,\r\n autoplay: true,\r\n loop: true,\r\n singleItem: true,\r\n dots: false,\r\n items: 1,\r\n pagination: false,\r\n onChanged: function (event) {\r\n const $carousel = $(event.target);\r\n const $targetSlide = $carousel.find('.jcb-hero-img').eq(event.item.index + 2);\r\n if ($targetSlide) {\r\n const $targetStyle = $targetSlide.prev('style');\r\n $targetStyle.html($targetStyle.html().replace('/**', '').replace('**/', ''));\r\n }\r\n },\r\n});\r\n","(function () {\r\n if ([...document.querySelectorAll('.masthead-nav')].length) {\r\n const productLinks = [\r\n ...document.querySelectorAll('.masthead-nav__mega__content .third a'),\r\n ...document.querySelectorAll('.masthead-nav__mega__content .second a'),\r\n ];\r\n productLinks.forEach((link) => {\r\n link.addEventListener('click', (event) => {\r\n const activeIndustry =\r\n document\r\n .querySelector('.masthead-nav__mega__content .first a.active')\r\n .getAttribute('data-industry') || null;\r\n if (activeIndustry !== null) {\r\n createCookie(activeIndustry);\r\n }\r\n });\r\n });\r\n } else {\r\n //sets industry cookie basked on industry selected (in the navigation)\r\n const industryItems = document.querySelectorAll('[data-industry]');\r\n industryItems.forEach((item) => {\r\n item.addEventListener('click', function () {\r\n const industrySelectedCode = item.getAttribute('data-industry');\r\n createCookie(industrySelectedCode);\r\n });\r\n });\r\n }\r\n\r\n // deal with products page bindings separately\r\n if ([...document.querySelectorAll('.product-list-wrapper')].length) {\r\n const industryLinks = [\r\n ...document.querySelectorAll('.product-list-wrapper [data-industry-id]'),\r\n ];\r\n industryLinks.forEach((industry) => {\r\n industry.addEventListener('click', (event) => {\r\n const industryTarget = event.target.closest('[data-industry-id]');\r\n const industryId = industryTarget.getAttribute('data-industry-id');\r\n industryId !== 'other' && createCookie(industryId);\r\n });\r\n });\r\n }\r\n\r\n function createCookie(industry) {\r\n document.cookie = `jcb-user-industry=${industry}; path='/'; SameSite=None; Secure`;\r\n }\r\n})();\r\n","import $ from 'jquery';\r\nimport dealerContactOverlay from './dealerContactOverlay.js';\r\nimport dealerSearchOverlay from './dealerSearchOverlay.js';\r\nimport quoteModal from './quotemodal.js';\r\n\r\n(function ($) {\r\n 'use strict';\r\n\r\n //youtube script\r\n var tag = document.createElement('script');\r\n tag.src = '//www.youtube.com/iframe_api';\r\n var firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n //if Editmode is on\r\n var isEditMode = $('body').data('iseditmode');\r\n\r\n $(function () {\r\n dealerContactOverlay.init();\r\n dealerSearchOverlay.init();\r\n heroBanners();\r\n introComponent();\r\n specificComponent();\r\n galleryComponent();\r\n galleryComponentModal();\r\n specificationComp();\r\n relatedProductsCompMatchContentHeight();\r\n tabsComponents();\r\n testimonialComponent();\r\n newsEventsCarouselComponent();\r\n premiumProductsComponent();\r\n accordionComponent();\r\n relatedComponent();\r\n selectDropDownUI();\r\n customTooltip();\r\n productListing();\r\n productRange();\r\n oddEven();\r\n brochureDownloadModal();\r\n quoteDownloadModal();\r\n regionSelectModal();\r\n usedEquipmentForm();\r\n\r\n $('#dateofvisit').datepicker({\r\n minDate: 0,\r\n dateFormat: 'yy-mm-dd',\r\n });\r\n\r\n $('form:not([data-form-title=\"used-equipment\"])').on('submit', function () {\r\n if ($(this).valid()) {\r\n $(this).find($('input[type=\"submit\"]')).prop('disabled', true);\r\n $(this).find($('input[type=\"submit\"]')).val('Please wait');\r\n }\r\n });\r\n });\r\n\r\n $(window).on('scroll', function () {\r\n var $timeline_block = $('#cd-timeline .cd-timeline-block');\r\n $timeline_block.each(function () {\r\n if (\r\n $(this).offset().top <= $(window).scrollTop() + $(window).height() * 0.75 &&\r\n $(this).find('.cd-timeline-img').hasClass('is-hidden')\r\n ) {\r\n $(this)\r\n .find('.cd-timeline-img, .cd-timeline-content')\r\n .removeClass('is-hidden')\r\n .addClass('bounce-in');\r\n }\r\n });\r\n });\r\n\r\n (function sanitizeFormFields() {\r\n const emailInputs = document.querySelectorAll('input#email');\r\n const telephoneInputs = document.querySelectorAll('input#telephone');\r\n\r\n [...emailInputs].forEach(function (input) {\r\n input.addEventListener('keyup', function (e) {\r\n inputUpdated(e.target, e.target.value);\r\n });\r\n });\r\n\r\n [...telephoneInputs].forEach(function (input) {\r\n input.addEventListener('keyup', function (e) {\r\n inputUpdated(e.target, e.target.value);\r\n });\r\n });\r\n\r\n function inputUpdated(ele, value) {\r\n if (hasWhiteSpace(value)) {\r\n const sanitizedValue = sanitizeWhitespace(value);\r\n ele.value = sanitizedValue;\r\n }\r\n }\r\n\r\n function sanitizeWhitespace(value) {\r\n return value.replace(/ /g, '');\r\n }\r\n\r\n function hasWhiteSpace(s) {\r\n return /\\s/g.test(s);\r\n }\r\n })();\r\n\r\n function oddEven() {\r\n if ($('.col-md-6.year-item-container').length > 0) {\r\n $('.container.timelines').each(function () {\r\n $(this).find('.col-md-6.year-item-container:odd').addClass('odd');\r\n $(this).find('.col-md-6.year-item-container:even').addClass('even');\r\n });\r\n }\r\n }\r\n\r\n function productRange() {\r\n var captionWrap = $('.product-range-component').find('figure figcaption');\r\n\r\n if (captionWrap.length > 0) {\r\n captionWrap.matchHeight();\r\n }\r\n }\r\n\r\n /*\r\n Adds nice hover effect to highlight hovered product and make others opaque\r\n e.g. https://www.jcb.com/en-gb/products/backhoe-loaders\r\n */\r\n function productListing() {\r\n var productListWrap = $('.product-listing-component-inner');\r\n\r\n productListWrap.each(function (e) {\r\n var wrap = $(this),\r\n item = wrap.find('.product-list'),\r\n editorContentH = wrap.find('.editor-content');\r\n\r\n // product title and desc be same height as each other in each box\r\n editorContentH\r\n .matchHeight()\r\n .promise()\r\n .done(function () {\r\n item.matchHeight();\r\n });\r\n\r\n item.on('mouseenter', function () {\r\n wrap.addClass('ishovered');\r\n });\r\n item.on('mouseleave', function () {\r\n wrap.removeClass('ishovered');\r\n });\r\n });\r\n }\r\n\r\n function premiumProductsComponent() {\r\n var relAttOuter = $('.premium-products-component--outer');\r\n\r\n relAttOuter.each(function () {\r\n var rAOuter = $(this),\r\n sliderWrap = rAOuter.find('.premium-products-component--items'),\r\n sliderItems = sliderWrap.find('.premium-products-component--item'),\r\n customNavWrap = rAOuter.find('.js--premium-products-component--header--nav');\r\n\r\n if (sliderItems.length) {\r\n sliderWrap.owlCarousel({\r\n items: 1,\r\n loop: false,\r\n autoplay: true,\r\n mouseDrag: true,\r\n navContainer: customNavWrap,\r\n nav: true,\r\n navText: '',\r\n dots: false,\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n lazyLoad: false,\r\n margin: 30,\r\n stagePadding: 0,\r\n responsive: {\r\n 0: {\r\n margin: 20,\r\n },\r\n 575: {\r\n items: 2,\r\n },\r\n 768: {\r\n items: 2,\r\n margin: 30,\r\n },\r\n\r\n 920: {\r\n items: 2,\r\n margin: 80,\r\n },\r\n 1024: {\r\n items: 3,\r\n margin: 50,\r\n },\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n function newsEventsCarouselComponent() {\r\n var relAttOuter = $('.news-events-carousel-component--outer');\r\n\r\n relAttOuter.each(function () {\r\n var rAOuter = $(this),\r\n sliderWrap = rAOuter.find('.news-events-carousel-component--items'),\r\n sliderItems = sliderWrap.find('.news-events-carousel-component--item'),\r\n customNavWrap = rAOuter.find('.js--carousel-component--header--nav');\r\n\r\n if (sliderItems.length) {\r\n sliderWrap.owlCarousel({\r\n items: 1,\r\n loop: false,\r\n autoplay: true,\r\n mouseDrag: true,\r\n navContainer: customNavWrap,\r\n nav: true,\r\n navText: '',\r\n dots: false,\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n lazyLoad: false,\r\n margin: 30,\r\n stagePadding: 0,\r\n responsive: {\r\n 0: {\r\n margin: 20,\r\n },\r\n 475: {\r\n items: 2,\r\n },\r\n 768: {\r\n items: 3,\r\n margin: 30,\r\n },\r\n\r\n 920: {\r\n items: 3,\r\n },\r\n 1024: {\r\n items: 4,\r\n },\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n function relatedComponent() {\r\n var relAttOuter = $('.related-component-outer');\r\n\r\n relAttOuter.each(function () {\r\n var rAOuter = $(this),\r\n sliderWrap = rAOuter.find('.related-items'),\r\n sliderItems = sliderWrap.find('.related-item'),\r\n customNavWrap = rAOuter.find('#customOwlNavJS');\r\n\r\n if (sliderItems.length) {\r\n sliderWrap.owlCarousel({\r\n items: 1,\r\n loop: true,\r\n autoplay: false,\r\n // move navContainer outside the primary owl wrapper\r\n navContainer: customNavWrap,\r\n nav: true,\r\n navText: '',\r\n dots: false,\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n margin: 30,\r\n stagePadding: 30,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n stagePadding: 30,\r\n margin: 0,\r\n loop: true,\r\n },\r\n 567: {\r\n items: 1,\r\n stagePadding: 100,\r\n margin: 20,\r\n loop: true,\r\n },\r\n 750: {\r\n items: 1,\r\n stagePadding: 150,\r\n margin: 20,\r\n loop: true,\r\n },\r\n 992: {\r\n items: 2,\r\n stagePadding: 0,\r\n margin: 30,\r\n loop: false,\r\n },\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n function accordionComponent() {\r\n var accrodionOuter = $('.accordion-component-outer');\r\n\r\n accrodionOuter.each(function () {\r\n var aWrap = $(this),\r\n accordionWrap = aWrap.find('.accordion-items');\r\n\r\n accordionWrap.accordion({\r\n active: aWrap.hasClass('is-mrrp') ? 0 : 0,\r\n collapsible: true,\r\n autoHeight: false,\r\n heightStyle: 'content',\r\n });\r\n });\r\n }\r\n\r\n function testimonialComponent() {\r\n var tWrap = $('.testimonial-component-outer');\r\n\r\n tWrap.each(function () {\r\n var oWrap = $(this),\r\n sliderWrap = oWrap.find('.testimonial-items'),\r\n item = sliderWrap.find('.testimonial-item');\r\n if (item.length) {\r\n sliderWrap.owlCarousel({\r\n items: 1,\r\n loop: false,\r\n mouseDrag: false,\r\n autoplay: false,\r\n dots: true,\r\n dotClass: 'flat-dot',\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n });\r\n } else {\r\n sliderWrap.removeClass('owl-carousel');\r\n }\r\n });\r\n }\r\n\r\n function relatedProductsCompMatchContentHeight() {\r\n var comp = $('.related-products-component'),\r\n compContent = comp.find('.content-wrap');\r\n\r\n if (compContent.length) {\r\n compContent.matchHeight({\r\n byRow: true,\r\n property: 'height',\r\n });\r\n }\r\n }\r\n\r\n function specificationComp() {\r\n var sComp = $('.specific-component-inner'),\r\n sheader = sComp.find('.spec-header');\r\n\r\n if (sheader.length) {\r\n sheader.matchHeight({\r\n byRow: true,\r\n property: 'height',\r\n });\r\n }\r\n }\r\n\r\n // TODO: extract into own tabs - components.js file\r\n function tabsComponents() {\r\n var tabsWrap = $('.tabs-components-inner .tabs-wrap');\r\n if (tabsWrap.length) {\r\n $(tabsWrap).each(function () {\r\n $(this).tabs();\r\n });\r\n }\r\n }\r\n\r\n function openAnotherTab(url) {\r\n var fullUrl = window.location.protocol + '//' + window.location.hostname + url;\r\n window.open(fullUrl, '_blank', 'noopener');\r\n }\r\n\r\n function populateModalFormSalesforceField(fieldName, product = null, range = null) {\r\n const salesForceField = document.getElementById(fieldName);\r\n var formRangeNameField = [...document.getElementsByClassName('js-range-name')];\r\n var formProductNameField = [...document.getElementsByClassName('js-product-name')];\r\n \r\n if (salesForceField && range) {\r\n salesForceField.value = range;\r\n formRangeNameField.forEach(field => field.value = range);\r\n }\r\n\r\n if (salesForceField && product && range) {\r\n salesForceField.value = range + ';' + product;\r\n formRangeNameField.forEach(field => field.value = range);\r\n formProductNameField.forEach(field => field.value = product);\r\n }\r\n }\r\n\r\n function getSkipButton(name) {\r\n var skipButton = document.getElementById('formSkip');\r\n if (skipButton) {\r\n skipButton.classList.add(name);\r\n }\r\n\r\n return skipButton;\r\n }\r\n\r\n function setupSkipButtonForBrochureDownloadModal(name) {\r\n var skipButton = getSkipButton(name);\r\n if (skipButton) {\r\n skipButton.addEventListener('click', skipBrochureModalForm);\r\n }\r\n\r\n return skipButton;\r\n }\r\n\r\n function brochureDownloadModal() {\r\n $('#brochureDownloadModal .js-close-modal').on('click', function (e) {\r\n e.preventDefault();\r\n closeModal($(this).data('dismiss'));\r\n });\r\n var skipButton = setupSkipButtonForBrochureDownloadModal('brochure-modal');\r\n\r\n $(document).on('click', '.js-modal-brochure', function (e) {\r\n e.preventDefault();\r\n\r\n var url = $(this).attr('data-url');\r\n var product = $(this).attr('data-name');\r\n var range = $(this).attr('data-category-english-name');\r\n\r\n if ($(this).attr('data-ismodalenabled').toLowerCase() === 'true') {\r\n $('#brochureDownloadModal').attr('data-brochure-url', url);\r\n populateModalFormSalesforceField('Input-Range-Models-Brochure-Modal', product, range);\r\n\r\n if (skipButton) {\r\n skipButton.setAttribute('data-url', url);\r\n }\r\n\r\n openModal('#brochureDownloadModal', $(this).data('name'));\r\n\r\n $('#brochureDownloadModal form').on('submit', function () {\r\n if ($(this).valid()) {\r\n if (url) {\r\n openAnotherTab(url);\r\n }\r\n }\r\n });\r\n } else {\r\n if (url) {\r\n openAnotherTab(url);\r\n }\r\n }\r\n });\r\n\r\n $('.js-modal-form').on('click', function () {\r\n if ($('#modal-form_' + $(this).data('form')).hasClass('is-active')) {\r\n $('.modal-form').removeClass('is-active'); // Remove all active classes\r\n } else {\r\n $('.modal-form').removeClass('is-active'); // Remove all active classes\r\n $('#modal-form_' + $(this).data('form')).toggleClass('is-active');\r\n }\r\n });\r\n\r\n function openModal(id, name) {\r\n $('body').addClass('modal-open');\r\n $(id).addClass('active');\r\n $(id).removeClass('fade');\r\n\r\n $('.js-productName').each(function () {\r\n $(this).html(\r\n $(this)\r\n .html()\r\n .replace(/({productName})/g, '' + name + ''),\r\n );\r\n });\r\n }\r\n\r\n function closeModal(id) {\r\n $('body').removeClass('modal-open');\r\n $('#' + id).addClass('fade');\r\n\r\n setTimeout(function () {\r\n $('#' + id).removeClass('active');\r\n\r\n $('.js-productName').each(function () {\r\n $(this).find('.productName').replaceWith('{productName}');\r\n });\r\n }, 600);\r\n }\r\n }\r\n\r\n function quoteDownloadModal() {\r\n const quoteModalEle = document.getElementById('quoteDownloadModal');\r\n\r\n if (quoteModalEle) {\r\n quoteModal.bindModal($(document), '.js-modal-quote');\r\n }\r\n }\r\n\r\n function skipBrochureModalForm() {\r\n openAnotherTab($(this).attr('data-url'));\r\n }\r\n\r\n function galleryComponentModal() {\r\n $(document).swipebox({\r\n selector: '.swipebox',\r\n useCSS: true, // false will force the use of jQuery for animations\r\n useSVG: true, // false to force the use of png for buttons\r\n initialIndexOnArray: 0, // which image index to init when a array is passed\r\n hideCloseButtonOnMobile: false, // true will hide the close button on mobile devices\r\n removeBarsOnMobile: true, // false will show top bar on mobile devices\r\n hideBarsDelay: 3000, // delay before hiding bars on desktop\r\n videoMaxWidth: 1140, // videos max width\r\n beforeOpen: function () {}, // called before opening\r\n afterOpen: function () {\r\n $('body').addClass('swipebox-open');\r\n\r\n const swipeCloseBtn = document.getElementById('swipebox-close');\r\n\r\n swipeCloseBtn.addEventListener('click', (e) => {\r\n setTimeout(function () {\r\n $('body').removeClass('swipebox-open');\r\n }, 250);\r\n });\r\n\r\n swipeCloseBtn.addEventListener('touchend', (e) => {\r\n setTimeout(function () {\r\n $('body').removeClass('swipebox-open');\r\n }, 250);\r\n });\r\n }, // called after opening\r\n afterClose: null, // called after closing\r\n loopAtEnd: false, // true will return to the first image after the last image is reached\r\n });\r\n }\r\n\r\n function galleryComponent() {\r\n var galleryItemsWrap = $('.gallery-component-outer');\r\n\r\n galleryItemsWrap.each(function () {\r\n var outerWrap = $(this),\r\n itemsWrap = outerWrap.find('.gallery-items'),\r\n item = itemsWrap.find('.gallery-item');\r\n\r\n if (item.length) {\r\n // initialise wth total slides count\r\n itemsWrap.on('initialized.owl.carousel', function (event) {\r\n var total = event.item.count;\r\n outerWrap.find('.slider-nav .thumb .total-no-slider').text(total);\r\n });\r\n\r\n // carousel config\r\n itemsWrap.owlCarousel({\r\n items: 1,\r\n loop: false,\r\n autoplay: false,\r\n mouseDrag: false,\r\n nav: true,\r\n dots: true,\r\n dotClass: 'gallery-dots',\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n });\r\n } else {\r\n itemsWrap.removeClass('owl-carousel');\r\n }\r\n\r\n // On change update current slide text:\r\n itemsWrap.on('changed.owl.carousel', function (event) {\r\n var currentItem = event.item.index;\r\n outerWrap.find('.slider-nav .thumb .current-no-slider').text(currentItem + 1);\r\n });\r\n });\r\n }\r\n\r\n function specificComponent() {\r\n var specWrap = $('.specific-component-outer');\r\n\r\n specWrap.each(function () {\r\n var sWrap = $(this),\r\n toggleWrap = sWrap.find('.toggle-editor-content'),\r\n toggleContent = toggleWrap.find('.toggle-editor-content-inner'),\r\n btn = toggleWrap.find('.jcb-btn');\r\n\r\n btn.on('click', function (e) {\r\n e.preventDefault();\r\n toggleWrap\r\n .toggleClass('expand-overlay')\r\n .promise()\r\n .done(\r\n setTimeout(function () {\r\n toggleContent.slideToggle('fast');\r\n }, 300),\r\n );\r\n\r\n $('html, body').animate(\r\n {\r\n scrollTop: sWrap.offset().top,\r\n },\r\n 300,\r\n );\r\n });\r\n });\r\n }\r\n\r\n function introComponent() {\r\n var introCompo = $('.intro-component-outer');\r\n\r\n introCompo.each(function () {\r\n var introWrap = $(this),\r\n listCompo = introWrap.find('.compo-list-content'),\r\n listTitle = introWrap.find('.list-title'),\r\n listItems = introWrap.find('.list-items'),\r\n listBtn = introWrap.find('.copy-toggle-btn');\r\n\r\n listBtn.on('click', function (e) {\r\n e.preventDefault();\r\n var btn = $(this),\r\n btnTextMore = btn.find('.text-more'),\r\n btnTextLess = btn.find('.text-less');\r\n if (listCompo.length) {\r\n listItems.slideToggle('fast', function () {\r\n if (listItems.is(':visible')) {\r\n btn.addClass('open-overlay');\r\n btnTextMore.hide();\r\n btnTextLess.show();\r\n } else {\r\n btn.removeClass('open-overlay');\r\n btnTextMore.show();\r\n btnTextLess.hide();\r\n\r\n $('html, body').animate(\r\n {\r\n scrollTop: introWrap.offset().top,\r\n },\r\n 300,\r\n );\r\n }\r\n });\r\n listTitle.slideToggle('fast');\r\n }\r\n });\r\n });\r\n }\r\n\r\n function heroBanners() {\r\n // Hero Banner\r\n var jcbHeroSlider = $('.jcb-hero-outer');\r\n\r\n jcbHeroSlider.each(function () {\r\n var heroSliderWrap = $(this),\r\n hSlider = heroSliderWrap.find('.jcb-hero-inner');\r\n\r\n //Is Edit Mode on\r\n var trueIfNotEditMode = true;\r\n if (isEditMode === 'True') {\r\n trueIfNotEditMode = false;\r\n }\r\n\r\n //Owl Carousel Setting\r\n if (heroSliderWrap.find('.jcb-hero-item').length > 1) {\r\n hSlider.owlCarousel({\r\n items: 1,\r\n loop: trueIfNotEditMode,\r\n animateOut: 'fadeOut',\r\n autoplay: trueIfNotEditMode,\r\n autoplayTimeout: 5000,\r\n mouseDrag: trueIfNotEditMode,\r\n dots: true,\r\n dotClass: 'jcb-hero-dots',\r\n autoHeight: true,\r\n autoHeightClass: 'owl-height',\r\n video: true,\r\n videoWidth: false,\r\n videoHeight: false,\r\n onInitialized: function (e) {\r\n heroSliderWrap\r\n .find('.owl-item.active')\r\n .find('.owl-video-play-icon')\r\n .trigger('click', function () {\r\n heroSliderWrap.find('iframe').attr('src', '');\r\n\r\n var newPara =\r\n '?enablejsapi=1&version=3?&autoplay=1&rel=0&theme=light&showinfo=0&disablekb=1&modestbranding=1&hd=1';\r\n heroSliderWrap.data('id', newPara);\r\n });\r\n },\r\n onTranslated: function (e) {\r\n var $carousel = $(e.target);\r\n var $targetSlide = $carousel.find('.jcb-hero-img').eq(e.item.index + 1);\r\n if ($targetSlide) {\r\n var targetStyle = $targetSlide.prev('style')[0];\r\n $(targetStyle).html($(targetStyle).html().replace('/**', '').replace('**/', ''));\r\n }\r\n setTimeout(function () {\r\n heroSliderWrap.find('.owl-item.active .owl-video-play-icon').trigger('click');\r\n }, 100);\r\n },\r\n });\r\n } else {\r\n heroSliderWrap.find('.jcb-hero-inner.owl-carousel').removeClass('owl-carousel');\r\n }\r\n });\r\n }\r\n\r\n function selectDropDownUI() {\r\n //jQuery UI - DropDown Style\r\n $(function () {\r\n $('select.jcb-yellow-select').selectmenu({\r\n classes: {\r\n 'ui-selectmenu-menu': 'jcb-yellow-drop-down',\r\n 'ui-selectmenu-button': 'jcb-yellow-drop-down',\r\n },\r\n open: function (event, ui) {\r\n // this is a fix for Countries (Dealer Locator page) dropdown list not adjusting to the dropdown button width for no clear reason.\r\n if (event.currentTarget.id === 'Countries-button') {\r\n const countriesBtnWidth = event.currentTarget.offsetWidth;\r\n $('#Countries-menu').outerWidth(countriesBtnWidth);\r\n }\r\n },\r\n });\r\n $('select.jcb-select-bordered').selectmenu({\r\n classes: {\r\n 'ui-selectmenu-menu': 'jcb-bordered-drop-down',\r\n 'ui-selectmenu-button': 'jcb-bordered-drop-down',\r\n },\r\n });\r\n $('select.jcb-white-select').selectmenu({\r\n classes: {\r\n 'ui-selectmenu-menu': 'jcb-white-drop-down',\r\n 'ui-selectmenu-button': 'jcb-white-drop-down',\r\n },\r\n });\r\n\r\n $('form .form-control').on('selectmenuchange', function (event, ui) {\r\n if ($(this).closest('form')) {\r\n $(this).closest('form').valid();\r\n }\r\n });\r\n });\r\n }\r\n\r\n function customTooltip() {\r\n $(function () {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n });\r\n }\r\n\r\n function cookieObserver() {\r\n const cookieEvent = new CustomEvent('cookieChanged', {\r\n bubbles: true,\r\n detail: {\r\n cookieValue: getCookie('OptanonAlertBoxClosed'),\r\n checkChange: () => {\r\n return cookieEvent.detail.cookieValue === getCookie('OptanonAlertBoxClosed')\r\n ? false\r\n : (cookieEvent.detail.cookieValue = getCookie('OptanonAlertBoxClosed'));\r\n },\r\n listenCheckChange: () => {\r\n setInterval(() => {\r\n if (cookieEvent.detail.checkChange()) {\r\n cookieEvent.detail.changed = true;\r\n cookieEvent.target.dispatchEvent(cookieEvent);\r\n } else {\r\n cookieEvent.detail.changed = false;\r\n }\r\n }, 1000);\r\n },\r\n changed: false,\r\n },\r\n });\r\n\r\n document.addEventListener('cookieChanged', (e) => {\r\n e.detail.listenCheckChange();\r\n if (e.detail.changed === true && getCookie('OptanonAlertBoxClosed')) {\r\n openModal();\r\n }\r\n });\r\n const cookieEventDispatcher = (e) => {\r\n e.target.dispatchEvent(cookieEvent);\r\n };\r\n\r\n window.addEventListener('load', cookieEventDispatcher);\r\n }\r\n\r\n function getCookie(cName) {\r\n const name = cName + '=';\r\n const cDecoded = decodeURIComponent(document.cookie);\r\n const cArr = cDecoded.split('; ');\r\n let res;\r\n cArr.forEach((val) => {\r\n if (val.indexOf(name) === 0) res = val.substring(name.length);\r\n });\r\n return res;\r\n }\r\n\r\n function openModal() {\r\n window.scrollTo(0, 0);\r\n $('.region-select-modal-container').addClass('active');\r\n $('body').addClass('modal-open');\r\n $('html').addClass('modal-open');\r\n }\r\n\r\n function closeModal() {\r\n $('.region-select-modal-container').removeClass('active');\r\n $('body').removeClass('modal-open');\r\n $('html').removeClass('modal-open');\r\n }\r\n\r\n function regionSelectModal() {\r\n function init() {\r\n if ($('.region-select-modal-container').length && !isCountryCookieSet()) {\r\n showRegionSelectModal();\r\n }\r\n }\r\n\r\n function showRegionSelectModal() {\r\n if (getCookie('OptanonAlertBoxClosed')) {\r\n openModal();\r\n } else {\r\n cookieObserver();\r\n }\r\n }\r\n\r\n function isCountryCookieSet() {\r\n if (\r\n document.cookie.split(';').filter(function (item) {\r\n return item.indexOf('jcb-selected-region=') >= 0;\r\n }).length\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n (function getUserFormDataCookie() {\r\n const cookieName = 'jcb-userform-data';\r\n\r\n if (isUserFormDataStored()) {\r\n const userData = getCookieValueAsJSON(cookieName);\r\n if (userData != null && userData !== undefined) {\r\n populateUserFormData(userData);\r\n }\r\n }\r\n })();\r\n\r\n function populateUserFormData(data) {\r\n const forms = document.getElementsByTagName('form');\r\n\r\n [...forms].forEach(function (form) {\r\n const formFields = form.querySelectorAll('input:not([type=\"submit\"])');\r\n\r\n [...formFields].forEach(function (field) {\r\n const fieldId = field.getAttribute('id');\r\n\r\n if (fieldId != null && fieldId !== '') {\r\n data.forEach(function (value) {\r\n if (value.FieldName.toUpperCase() == fieldId.toUpperCase()) {\r\n field.value = value.FieldValue;\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n function getCookieValueAsJSON(name) {\r\n var getCookieValues = function (cookie) {\r\n var cookieArray = cookie.split('=');\r\n return cookieArray[1].trim();\r\n };\r\n\r\n var getCookieNames = function (cookie) {\r\n var cookieArray = cookie.split('=');\r\n return cookieArray[0].trim();\r\n };\r\n\r\n var cookies = document.cookie.split(';');\r\n var cookieValue = cookies.map(getCookieValues)[cookies.map(getCookieNames).indexOf(name)];\r\n\r\n return cookieValue === undefined ? null : JSON.parse(cookieValue);\r\n }\r\n\r\n function isUserFormDataStored() {\r\n return (\r\n document.cookie.split(';').filter(function (item) {\r\n return item.trim().indexOf('jcb-userform-data=') == 0;\r\n }).length > 0\r\n );\r\n }\r\n\r\n function renderOptions() {\r\n var selectedRegion = $('.js-region-dropdown').val();\r\n var options = [];\r\n var text, value, region, url, isoCode;\r\n\r\n options.push('');\r\n\r\n $('.js-all-countries > option').each(function () {\r\n text = $(this).text();\r\n value = $(this).val();\r\n region = $(this).attr('data-region');\r\n url = $(this).attr('data-country-url');\r\n isoCode = $(this).attr('data-country-iso');\r\n\r\n if (selectedRegion == $(this).attr('data-region')) {\r\n options.push(\r\n '',\r\n );\r\n document.cookie = `jcb-selected-region=true; domain=${document.domain}; expires=Sun, 16 Jul 3567 06:23:41 GMT`;\r\n }\r\n });\r\n\r\n $('.js-country-dropdown').empty().append(options).selectmenu('refresh');\r\n $('.js-country-dropdown').selectmenu('enable');\r\n $('.js-country-dropdown').selectmenu('open');\r\n }\r\n\r\n function countryPreferenceChanged() {\r\n updateCountryCookie();\r\n redirectToCountryUrl();\r\n }\r\n\r\n function updateCountryCookie() {\r\n document.cookie = `jcb-selected-region=true; domain=${document.domain}; expires=Sun, 16 Jul 3567 06:23:41 GMT`;\r\n }\r\n\r\n function redirectToCountryUrl() {\r\n var selectedCountryUrl = $('.js-country-dropdown option:selected').attr('data-country-url');\r\n\r\n var regExp = /www.jcb.*$/;\r\n var found = selectedCountryUrl.match(regExp);\r\n\r\n if (found) {\r\n $(location).attr('href', selectedCountryUrl);\r\n }\r\n }\r\n\r\n if (document.querySelector('.js-region-dropdown')) {\r\n $('.js-region-dropdown').selectmenu({\r\n classes: {\r\n 'ui-selectmenu-menu': 'jcb-yellow-drop-down',\r\n 'ui-selectmenu-button': 'jcb-yellow-drop-down',\r\n },\r\n change: function (event, ui) {\r\n renderOptions();\r\n },\r\n });\r\n }\r\n\r\n if (document.querySelector('.js-country-dropdown')) {\r\n $('.js-country-dropdown').selectmenu({\r\n classes: {\r\n 'ui-selectmenu-menu': 'jcb-yellow-drop-down',\r\n 'ui-selectmenu-button': 'jcb-yellow-drop-down',\r\n },\r\n change: function (event, ui) {\r\n closeModal();\r\n countryPreferenceChanged();\r\n },\r\n disabled: true,\r\n });\r\n }\r\n\r\n $('.js--close-modal').on('click', function (e) {\r\n e.preventDefault();\r\n closeModal();\r\n });\r\n\r\n init();\r\n }\r\n\r\n $.validator.setDefaults({\r\n ignore: \"input[type='hidden']:not([data-val='true'])\",\r\n });\r\n\r\n $.validator.addMethod(\r\n 'validCharcters',\r\n function (value, element) {\r\n // allow any non-whitespace characters as the host part\r\n return !/[~`#%^*()/]+/.test(value);\r\n },\r\n 'Please enter a valid character.',\r\n );\r\n\r\n $.validator.addMethod(\r\n 'validEmail',\r\n function (value, element) {\r\n const inputValidationState = element.dataset.experianValidInput;\r\n return inputValidationState === 'true';\r\n },\r\n 'This email is not valid',\r\n );\r\n\r\n $('[data-experian-valid-input]').on('blur', sendApiRequest);\r\n\r\n function sendApiRequest() {\r\n const element = $(this);\r\n const regexPattern = new RegExp(element.attr('data-val-regex-pattern'));\r\n const regexTestPassed = regexPattern.test(element.val());\r\n\r\n if (regexTestPassed) {\r\n let data = { email: element.val() };\r\n\r\n // for testing purposes:\r\n window.mockedConfidenceLevel &&\r\n (data['mockedConfidenceLevel'] = window.mockedConfidenceLevel);\r\n\r\n element.attr('data-experian-valid-input', 'pending');\r\n $.ajax({\r\n url: '/api/experian/validate',\r\n type: 'POST',\r\n data: data,\r\n async: true,\r\n cache: false,\r\n error: function () {\r\n element.attr('data-experian-valid-input', 'true');\r\n element.valid();\r\n },\r\n success: function (result) {\r\n if (result.isValid) {\r\n element.attr('data-experian-valid-input', 'true');\r\n element.valid();\r\n } else {\r\n element.attr('data-msg', result.errorMessage);\r\n element.attr('data-experian-valid-input', 'false');\r\n element.valid();\r\n }\r\n },\r\n });\r\n }\r\n }\r\n\r\n function usedEquipmentForm() {\r\n //watch the select boxes for change\r\n $('[data-form-title=\"used-equipment\"] .form-control').on(\r\n 'selectmenuchange',\r\n function (event, ui) {\r\n if ($(this).is('select')) {\r\n var currentSelectElm = $(this);\r\n var selectedVal = ui.item['value'];\r\n\r\n if (selectedVal != '') {\r\n currentSelectElm.attr('data-is-selected', true);\r\n } else {\r\n currentSelectElm.attr('data-is-selected', false);\r\n }\r\n\r\n var result = fetchSelectFilterOptions();\r\n\r\n if ($(this).is('#used-price-range')) {\r\n if (selectedVal != '') {\r\n $('.js--show-more-used-equipments')\r\n .attr('data-sort-col', 'price')\r\n .attr('data-sort-dir', 'asc');\r\n } else {\r\n //Reset the Load more attribute\r\n $('.js--show-more-used-equipments')\r\n .attr('data-sort-col', 'lastModified')\r\n .attr('data-sort-dir', 'desc');\r\n }\r\n }\r\n }\r\n },\r\n );\r\n\r\n $('[data-form-title=\"used-equipment\"] input[type=checkbox]').on('change', function (event, ui) {\r\n var currentSelectElm = $(this);\r\n\r\n if (currentSelectElm !== undefined) {\r\n var result = fetchSelectFilterOptions();\r\n }\r\n });\r\n\r\n $('[data-form-title=\"used-equipment\"]').on('submit', function (event) {\r\n event.preventDefault();\r\n var usedEquipmentForm = this;\r\n\r\n usedEquipmentForm.querySelector('input[type=submit]').disabled = true;\r\n\r\n function reSetSearchBtn(error) {\r\n usedEquipmentForm.querySelector('input[type=submit]').disabled = false;\r\n\r\n if (error) {\r\n usedEquipmentForm.querySelector('input[type=submit]').value = 'Search';\r\n usedEquipmentForm.querySelector('input[type=submit]').removeAttribute('data-btn-text');\r\n return;\r\n }\r\n\r\n usedEquipmentForm.querySelector('input[type=submit]').value = usedEquipmentForm\r\n .querySelector('input[type=submit]')\r\n .getAttribute('data-btn-text');\r\n }\r\n\r\n var lang = $('html').attr('lang');\r\n var requestURIBase =\r\n $('#used-price-range').val() != ''\r\n ? '/api/v1/used/' + lang + '/search' + '/price' + '/asc'\r\n : '/api/v1/used/' + lang + '/search';\r\n var formData = $('[data-form-title=\"used-equipment\"]').serializeArray();\r\n var formDataArry = [];\r\n jQuery.each(formData, function (i, field) {\r\n var isSelected = false;\r\n var optionArray = [];\r\n\r\n if (field.name.indexOf('Form.Fields') !== -1) {\r\n var fieldElm = $('select[name=\"' + field.name + '\"]');\r\n\r\n if (fieldElm != undefined && fieldElm != null) {\r\n isSelected = $('select[name=\"' + field.name + '\"]').attr('data-is-selected');\r\n }\r\n\r\n if (isSelected) {\r\n var values = jQuery.each(\r\n $('select[name=\"' + field.name + '\"] option'),\r\n function (i, option) {\r\n optionArray.push(option.value);\r\n },\r\n );\r\n field.options = optionArray;\r\n }\r\n }\r\n\r\n formDataArry.push({\r\n isSelected: isSelected != undefined ? isSelected : 'false',\r\n name: field.name,\r\n value: field.value,\r\n options: optionArray,\r\n });\r\n });\r\n // write to storage\r\n sessionStorage.setItem('jcb-used-formfields', JSON.stringify(formDataArry));\r\n sessionStorage.setItem('jcb-used-url-path', window.location.pathname);\r\n resetSortOptions();\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: requestURIBase,\r\n data: formData,\r\n success: function (data) {\r\n renderUsedEquipmentResults(data);\r\n scrollToUsedEquipmentResults();\r\n reSetSearchBtn();\r\n },\r\n error: function () {\r\n reSetSearchBtn('error');\r\n },\r\n });\r\n });\r\n\r\n //sort by\r\n $('.js--used-sortby').on('selectmenuchange', function (e) {\r\n e.preventDefault();\r\n sessionStorage.setItem('jcb-used-sortby', $(this).val());\r\n var order = $(this).val().split('/');\r\n var limit = $('.js--show-more-used-equipments').data('perpage');\r\n var lang = $('html').attr('lang');\r\n var col = order[0];\r\n var dir = order[1];\r\n $('.js--show-more-used-equipments').attr('data-sort-col', col).attr('data-sort-dir', dir);\r\n\r\n var requestURIBase =\r\n '/api/v1/used/' + lang + '/search/' + 0 + '/' + limit + '/' + col + '/' + dir;\r\n $.ajax({\r\n type: 'GET',\r\n url: requestURIBase,\r\n success: function (data) {\r\n if (data.length > 0) {\r\n renderUsedEquipmentResults(data);\r\n }\r\n },\r\n });\r\n });\r\n\r\n //load more\r\n $('.js--show-more-used-equipments').on('click', function (e) {\r\n e.preventDefault();\r\n var limit = $(this).attr('data-perpage');\r\n var lang = $('html').attr('lang');\r\n var count = $('.used-equipment-results--item').length;\r\n var col = $(this).attr('data-sort-col');\r\n var dir = $(this).attr('data-sort-dir');\r\n var requestURIBase =\r\n '/api/v1/used/' + lang + '/search/' + count + '/' + limit + '/' + col + '/' + dir;\r\n $('.js--show-more-used-equipments').attr('disabled', true);\r\n $('.js--show-more-used-equipments').text('Loading...');\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: requestURIBase,\r\n success: function (data) {\r\n if (data.length > 0) {\r\n renderUsedEquipmentResults(data, true);\r\n }\r\n $('.js--show-more-used-equipments').attr('disabled', false);\r\n $('.js--show-more-used-equipments').text(\r\n $('.js--show-more-used-equipments').attr('title'),\r\n );\r\n },\r\n });\r\n });\r\n\r\n function watchKeywordSearchInput() {\r\n let typingTimer;\r\n let doneTypingInterval = 1000;\r\n let usedKeywords = $('[data-form-title=\"used-equipment\"] #used-keywords');\r\n\r\n usedKeywords.on('keyup', function () {\r\n clearTimeout(typingTimer);\r\n typingTimer = setTimeout(doneTyping, doneTypingInterval);\r\n });\r\n\r\n //on keydown, clear the countdown\r\n usedKeywords.on('keydown', function () {\r\n clearTimeout(typingTimer);\r\n });\r\n\r\n function doneTyping() {\r\n fetchSelectFilterOptions();\r\n }\r\n }\r\n\r\n function watchKeywordSearchInputDealer() {\r\n let typingTimer;\r\n let doneTypingInterval = 1000;\r\n let usedKeywords = $('[data-form-title=\"dealer-used-equipment\"] #used-keywords');\r\n\r\n usedKeywords.on('keyup', function () {\r\n clearTimeout(typingTimer);\r\n typingTimer = setTimeout(doneTyping, doneTypingInterval);\r\n });\r\n\r\n //on keydown, clear the countdown\r\n usedKeywords.on('keydown', function () {\r\n clearTimeout(typingTimer);\r\n });\r\n\r\n function doneTyping() {\r\n fetchSelectFilterOptions();\r\n }\r\n }\r\n\r\n watchKeywordSearchInput();\r\n watchKeywordSearchInputDealer();\r\n\r\n //fetches form data from API and then returns an object\r\n function fetchSelectFilterOptions() {\r\n var lang = $('html').attr('lang');\r\n var dealer = $('#used-dealer-search').data('dealer-name');\r\n var uri;\r\n\r\n if (dealer == null) {\r\n uri = '/api/v1/used/' + lang + '/search-options';\r\n } else {\r\n uri = '/api/v1/used/' + lang + '/' + dealer + '/dealer-search-options';\r\n }\r\n\r\n const requestURIBase = uri;\r\n\r\n var limit = $('.js--show-more-used-equipments').data('perpage');\r\n var myForm = document.querySelectorAll('[data-form-title]');\r\n\r\n var formData = $('[data-form-title=\"used-equipment\"]').serializeArray();\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: requestURIBase,\r\n data: formData,\r\n success: function (data) {\r\n populateSelectOptions(data.Fields);\r\n updateSearchResultValue(data.ResultCount);\r\n $('.js--show-more-used-equipments').attr('data-total', data.ResultCount).hide();\r\n },\r\n });\r\n }\r\n\r\n function updateSearchResultValue(data) {\r\n var submitBtn = $('[data-form-title=\"used-equipment\"] :submit');\r\n var newValue = i18n.UsedSearch.searchButton + ' (' + data + ')';\r\n submitBtn.attr('value', newValue);\r\n submitBtn.attr('data-btn-text', newValue);\r\n }\r\n\r\n function populateSelectOptions(data) {\r\n var fieldsObj = data;\r\n\r\n for (var i = 0, l = fieldsObj.length; i < l; i++) {\r\n var obj = fieldsObj[i];\r\n var objId = obj['Id'];\r\n var objOptionsArr = obj['Value'];\r\n\r\n $('[data-form-title=\"used-equipment\"] select.form-control').each(function () {\r\n if ($(this).attr('id') == objId) {\r\n populateSelect($(this), objOptionsArr, $(this).find(':selected').text());\r\n }\r\n });\r\n }\r\n }\r\n\r\n //populates the select using the passed options\r\n function populateSelect(element, options, defaultOption = undefined) {\r\n var select = element;\r\n var options = options;\r\n\r\n //grab default option\r\n var firstOption = $(select).find('option:first');\r\n\r\n //empty select\r\n $(select).find('option').remove();\r\n $(select).append(firstOption);\r\n\r\n //Populate select\r\n $.each(options, function (index, value) {\r\n if (value !== '') {\r\n var optionHtml = '';\r\n if (defaultOption === value) {\r\n optionHtml = '';\r\n }\r\n\r\n $(select).append(optionHtml);\r\n }\r\n });\r\n\r\n //rebuild the selectmenu\r\n $(select).selectmenu('refresh');\r\n }\r\n\r\n //Results\r\n\r\n function renderUsedEquipmentResults(data, append) {\r\n var stored = JSON.parse(sessionStorage.getItem('jcb-used-data')) || [];\r\n var searchResultsContainer = document.getElementById('used-equipment-search-results');\r\n\r\n if (append !== true) {\r\n searchResultsContainer.innerHTML = '';\r\n stored = data;\r\n } else {\r\n for (var i = 0; i < data.length; i++) stored.push(data[i]);\r\n }\r\n sessionStorage.setItem('jcb-used-data', JSON.stringify(stored));\r\n\r\n var usedEquipmentResults = data;\r\n\r\n if (searchResultsContainer) {\r\n $.each(usedEquipmentResults, function (i, item) {\r\n var price = item.Price;\r\n var name = item.Name;\r\n var url = item.Url;\r\n var imageUrl = item.MainImageUrl;\r\n var manufacturer = item.Manufacturer;\r\n var range = item.Range;\r\n var hours = item.Hours;\r\n var year = item.ManufacturerYear;\r\n var currency = item.Currency;\r\n\r\n var labelCurrency = currency;\r\n var labelManufacturer = i18n.UsedSearch.manufacturer;\r\n var labelRange = i18n.UsedSearch.range;\r\n var labelHours = i18n.UsedSearch.hours;\r\n var labelYear = i18n.UsedSearch.year;\r\n var labelViewDetails = i18n.UsedSearch.viewDetails;\r\n\r\n searchResultsContainer.innerHTML +=\r\n '