{"version":3,"file":"main.bundle.js","mappings":"mCAamEA,EAAOC,QAGlE,WAAe,aAcnB,SAASC,EAASC,GACd,OAAgB,OAARA,GACW,iBAARA,GACP,gBAAiBA,GACjBA,EAAIC,cAAgBC,OAE5B,SAASC,EAAOC,EAAQC,QACL,IAAXD,IAAqBA,EAAS,SACtB,IAARC,IAAkBA,EAAM,IAC5BH,OAAOI,KAAKD,GAAKE,SAAQ,SAAUC,QACJ,IAAhBJ,EAAOI,GACZJ,EAAOI,GAAOH,EAAIG,GACfT,EAASM,EAAIG,KAClBT,EAASK,EAAOI,KAChBN,OAAOI,KAAKD,EAAIG,IAAMC,OAAS,GAC/BN,EAAOC,EAAOI,GAAMH,EAAIG,OAKpC,IAAIE,EAA0B,oBAAbC,SAA2BA,SAAW,GACnDC,EAAc,CACdC,KAAM,GACNC,iBAAkB,aAClBC,oBAAqB,aACrBC,cAAe,CACXC,KAAM,aACNC,SAAU,IAEdC,cAAe,WACX,OAAO,MAEXC,iBAAkB,WACd,MAAO,IAEXC,eAAgB,WACZ,OAAO,MAEXC,YAAa,WACT,MAAO,CACHC,UAAW,eAGnBC,cAAe,WACX,MAAO,CACHC,SAAU,GACVC,WAAY,GACZC,MAAO,GACPC,aAAc,aACdC,qBAAsB,WAClB,MAAO,MAInBC,gBAAiB,WACb,MAAO,IAEXC,WAAY,WACR,OAAO,MAEXC,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGhBrC,EAAOO,EAAKE,GAEZ,IAAI6B,EAAwB,oBAAXC,OAAyBA,OAAS,GA2CnDvC,EAAOsC,EA1CS,CACZ9B,SAAUC,EACV+B,UAAW,CACPC,UAAW,IAEfZ,SAAU,CACNC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEZK,QAAS,CACLC,aAAc,aACdC,UAAW,aACXC,GAAI,aACJC,KAAM,cAEVC,YAAa,WACT,OAAOC,MAEXrC,iBAAkB,aAClBC,oBAAqB,aACrBqC,iBAAkB,WACd,MAAO,CACHC,iBAAkB,WACd,MAAO,MAInBC,MAAO,aACPC,KAAM,aACNC,OAAQ,GACRC,WAAY,aACZC,aAAc,aACdC,WAAY,WACR,MAAO,MAmBf,IAAIC,EAAO,SAAcC,GAGvB,IAFA,IAESC,EAAI,EAAGA,EAAID,EAAIpD,OAAQqD,GAAK,EAF1BX,KAGJW,GAAKD,EAAIC,GAIhB,OAPWX,KAKN1C,OAASoD,EAAIpD,OAEX0C,MAGT,SAASY,EAAEC,EAAUC,GACnB,IAAIJ,EAAM,GACNC,EAAI,EACR,GAAIE,IAAaC,GACXD,aAAoBJ,EACtB,OAAOI,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIE,EACAC,EACAC,EAAOJ,EAASK,OACpB,GAAID,EAAKE,QAAQ,MAAQ,GAAKF,EAAKE,QAAQ,MAAQ,EAAG,CACpD,IAAIC,EAAW,MAQf,IAP4B,IAAxBH,EAAKE,QAAQ,SAAgBC,EAAW,MAChB,IAAxBH,EAAKE,QAAQ,SAAgBC,EAAW,SAChB,IAAxBH,EAAKE,QAAQ,QAAwC,IAAxBF,EAAKE,QAAQ,SAAgBC,EAAW,MAC1C,IAA3BH,EAAKE,QAAQ,YAAmBC,EAAW,SACf,IAA5BH,EAAKE,QAAQ,aAAoBC,EAAW,WAChDJ,EAAazD,EAAIc,cAAc+C,IACpBC,UAAYJ,EAClBN,EAAI,EAAGA,EAAIK,EAAWzC,WAAWjB,OAAQqD,GAAK,EACjDD,EAAIY,KAAKN,EAAWzC,WAAWoC,SAUjC,IAFEI,EALGD,GAA2B,MAAhBD,EAAS,IAAeA,EAASU,MAAM,aAK9CT,GAAWvD,GAAKU,iBAAiB4C,EAASK,QAH3C,CAAC3D,EAAIW,eAAe2C,EAASK,OAAOM,MAAM,KAAK,KAKlDb,EAAI,EAAGA,EAAII,EAAIzD,OAAQqD,GAAK,EAC3BI,EAAIJ,IAAMD,EAAIY,KAAKP,EAAIJ,SAG1B,GAAIE,EAASY,UAAYZ,IAAavB,GAAOuB,IAAatD,EAE/DmD,EAAIY,KAAKT,QACJ,GAAIA,EAASvD,OAAS,GAAKuD,EAAS,GAAGY,SAE5C,IAAKd,EAAI,EAAGA,EAAIE,EAASvD,OAAQqD,GAAK,EACpCD,EAAIY,KAAKT,EAASF,IAIxB,OAAO,IAAIF,EAAKC,GAOlB,SAASgB,EAAOhB,GAEd,IADA,IAAIiB,EAAc,GACThB,EAAI,EAAGA,EAAID,EAAIpD,OAAQqD,GAAK,GACE,IAAjCgB,EAAYR,QAAQT,EAAIC,KAAcgB,EAAYL,KAAKZ,EAAIC,IAEjE,OAAOgB,EATTf,EAAEgB,GAAKnB,EAAKoB,UACZjB,EAAEkB,MAAQrB,EACVG,EAAEH,KAAOA,EAsoBT,IAAIsB,EAAU,CACZC,SA5nBF,SAAkBC,GAChB,QAAyB,IAAdA,EACT,OAAOjC,KAGT,IADA,IAAIkC,EAAUD,EAAUT,MAAM,KACrBb,EAAI,EAAGA,EAAIuB,EAAQ5E,OAAQqD,GAAK,EACvC,IAAK,IAAIwB,EAAI,EAAGA,EAAInC,KAAK1C,OAAQ6E,GAAK,OACb,IAAZnC,KAAKmC,SAAmD,IAAtBnC,KAAKmC,GAAGC,WAA6BpC,KAAKmC,GAAGC,UAAUC,IAAIH,EAAQvB,IAGpH,OAAOX,MAmnBPsC,YAjnBF,SAAqBL,GAEnB,IADA,IAAIC,EAAUD,EAAUT,MAAM,KACrBb,EAAI,EAAGA,EAAIuB,EAAQ5E,OAAQqD,GAAK,EACvC,IAAK,IAAIwB,EAAI,EAAGA,EAAInC,KAAK1C,OAAQ6E,GAAK,OACb,IAAZnC,KAAKmC,SAAmD,IAAtBnC,KAAKmC,GAAGC,WAA6BpC,KAAKmC,GAAGC,UAAUG,OAAOL,EAAQvB,IAGvH,OAAOX,MA2mBPwC,SAzmBF,SAAkBP,GAChB,QAAKjC,KAAK,IACHA,KAAK,GAAGoC,UAAUK,SAASR,IAwmBlCS,YAtmBF,SAAqBT,GAEnB,IADA,IAAIC,EAAUD,EAAUT,MAAM,KACrBb,EAAI,EAAGA,EAAIuB,EAAQ5E,OAAQqD,GAAK,EACvC,IAAK,IAAIwB,EAAI,EAAGA,EAAInC,KAAK1C,OAAQ6E,GAAK,OACb,IAAZnC,KAAKmC,SAAmD,IAAtBnC,KAAKmC,GAAGC,WAA6BpC,KAAKmC,GAAGC,UAAUO,OAAOT,EAAQvB,IAGvH,OAAOX,MAgmBP4C,KA9lBF,SAAcC,EAAOC,GACnB,IAAIC,EAAcC,UAElB,GAAyB,IAArBA,UAAU1F,QAAiC,iBAAVuF,EAEnC,OAAI7C,KAAK,GAAaA,KAAK,GAAGiD,aAAaJ,QAC3C,EAIF,IAAK,IAAIlC,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACpC,GAA2B,IAAvBoC,EAAYzF,OAEd0C,KAAKW,GAAGlC,aAAaoE,EAAOC,QAI5B,IAAK,IAAII,KAAYL,EACnB7C,KAAKW,GAAGuC,GAAYL,EAAMK,GAC1BlD,KAAKW,GAAGlC,aAAayE,EAAUL,EAAMK,IAI3C,OAAOlD,MAwkBPmD,WArkBF,SAAoBP,GAClB,IAAK,IAAIjC,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACpCX,KAAKW,GAAGyC,gBAAgBR,GAE1B,OAAO5C,MAkkBPqD,KAhkBF,SAAchG,EAAKyF,GACjB,IAAIQ,EACJ,QAAqB,IAAVR,EAAX,CAkBA,IAAK,IAAInC,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,GACpC2C,EAAKtD,KAAKW,IACF4C,yBAA0BD,EAAGC,uBAAyB,IAC9DD,EAAGC,uBAAuBlG,GAAOyF,EAEnC,OAAO9C,KApBL,GAFAsD,EAAKtD,KAAK,GAGR,OAAIsD,EAAGC,wBAA2BlG,KAAOiG,EAAGC,uBACnCD,EAAGC,uBAAuBlG,GAGrBiG,EAAGL,aAAc,QAAU5F,SAIzC,GAmjBJmG,UApiBF,SAAmBA,GACjB,IAAK,IAAI7C,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAAG,CACvC,IAAI8C,EAAUzD,KAAKW,GAAGnC,MACtBiF,EAAQC,gBAAkBF,EAC1BC,EAAQD,UAAYA,EAEtB,OAAOxD,MA+hBP2D,WA7hBF,SAAoBC,GACM,iBAAbA,IACTA,GAAsB,MAExB,IAAK,IAAIjD,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAAG,CACvC,IAAI8C,EAAUzD,KAAKW,GAAGnC,MACtBiF,EAAQI,yBAA2BD,EACnCH,EAAQK,mBAAqBF,EAE/B,OAAO5D,MAqhBP+D,GAlhBF,WAIE,IAHA,IAAIC,EAEAC,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GACzC,IAAIC,EAAYF,EAAK,GACjBG,EAAiBH,EAAK,GACtBI,EAAWJ,EAAK,GAChBK,EAAUL,EAAK,GAOnB,SAASM,EAAgBC,GACvB,IAAIvH,EAASuH,EAAEvH,OACf,GAAKA,EAAL,CACA,IAAIwH,EAAYD,EAAEvH,OAAOyH,eAAiB,GAI1C,GAHID,EAAUtD,QAAQqD,GAAK,GACzBC,EAAUE,QAAQH,GAEhB5D,EAAE3D,GAAQ2H,GAAGR,GAAmBC,EAASQ,MAAM5H,EAAQwH,QAGzD,IADA,IAAIK,EAAUlE,EAAE3D,GAAQ6H,UACfC,EAAI,EAAGA,EAAID,EAAQxH,OAAQyH,GAAK,EACnCnE,EAAEkE,EAAQC,IAAIH,GAAGR,IAAmBC,EAASQ,MAAMC,EAAQC,GAAIN,IAIzE,SAASO,EAAYR,GACnB,IAAIC,EAAYD,GAAKA,EAAEvH,QAASuH,EAAEvH,OAAOyH,eAAsB,GAC3DD,EAAUtD,QAAQqD,GAAK,GACzBC,EAAUE,QAAQH,GAEpBH,EAASQ,MAAM7E,KAAMyE,GA1BA,mBAAZR,EAAK,KACEE,GAAfH,EAASC,GAAyB,GAAII,EAAWL,EAAO,GAAIM,EAAUN,EAAO,GAC9EI,OAAiBa,GAEdX,IAAWA,GAAU,GA0B1B,IAFA,IACInC,EADA+C,EAASf,EAAU3C,MAAM,KAEpBb,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAAG,CACvC,IAAI2C,EAAKtD,KAAKW,GACd,GAAKyD,EAaH,IAAKjC,EAAI,EAAGA,EAAI+C,EAAO5H,OAAQ6E,GAAK,EAAG,CACrC,IAAIgD,EAAUD,EAAO/C,GAChBmB,EAAG8B,oBAAqB9B,EAAG8B,kBAAoB,IAC/C9B,EAAG8B,kBAAkBD,KAAY7B,EAAG8B,kBAAkBD,GAAW,IACtE7B,EAAG8B,kBAAkBD,GAAS7D,KAAK,CACjC+C,SAAUA,EACVgB,cAAed,IAEjBjB,EAAG3F,iBAAiBwH,EAASZ,EAAiBD,QApBhD,IAAKnC,EAAI,EAAGA,EAAI+C,EAAO5H,OAAQ6E,GAAK,EAAG,CACrC,IAAImD,EAAQJ,EAAO/C,GACdmB,EAAGiC,gBAAiBjC,EAAGiC,cAAgB,IACvCjC,EAAGiC,cAAcD,KAAUhC,EAAGiC,cAAcD,GAAS,IAC1DhC,EAAGiC,cAAcD,GAAOhE,KAAK,CAC3B+C,SAAUA,EACVgB,cAAeL,IAEjB1B,EAAG3F,iBAAiB2H,EAAON,EAAaV,IAgB9C,OAAOtE,MAidPwF,IA/cF,WAIE,IAHA,IAAIxB,EAEAC,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GACzC,IAAIC,EAAYF,EAAK,GACjBG,EAAiBH,EAAK,GACtBI,EAAWJ,EAAK,GAChBK,EAAUL,EAAK,GACI,mBAAZA,EAAK,KACEE,GAAfH,EAASC,GAAyB,GAAII,EAAWL,EAAO,GAAIM,EAAUN,EAAO,GAC9EI,OAAiBa,GAEdX,IAAWA,GAAU,GAG1B,IADA,IAAIY,EAASf,EAAU3C,MAAM,KACpBb,EAAI,EAAGA,EAAIuE,EAAO5H,OAAQqD,GAAK,EAEtC,IADA,IAAI2E,EAAQJ,EAAOvE,GACVwB,EAAI,EAAGA,EAAInC,KAAK1C,OAAQ6E,GAAK,EAAG,CACvC,IAAImB,EAAKtD,KAAKmC,GACVsD,OAAW,EAMf,IALKrB,GAAkBd,EAAGiC,cACxBE,EAAWnC,EAAGiC,cAAcD,GACnBlB,GAAkBd,EAAG8B,oBAC9BK,EAAWnC,EAAG8B,kBAAkBE,IAE9BG,GAAYA,EAASnI,OACvB,IAAK,IAAIyH,EAAIU,EAASnI,OAAS,EAAGyH,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAIW,EAAUD,EAASV,GACnBV,GAAYqB,EAAQrB,WAAaA,GAG1BA,GAAYqB,EAAQrB,UAAYqB,EAAQrB,SAASsB,WAAaD,EAAQrB,SAASsB,YAActB,GAFtGf,EAAG1F,oBAAoB0H,EAAOI,EAAQL,cAAef,GACrDmB,EAASG,OAAOb,EAAG,IAITV,IACVf,EAAG1F,oBAAoB0H,EAAOI,EAAQL,cAAef,GACrDmB,EAASG,OAAOb,EAAG,KAM7B,OAAO/E,MAqaP6F,QAnaF,WAEE,IADA,IAAI5B,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAIzC,IAFA,IAAIgB,EAASjB,EAAK,GAAGzC,MAAM,KACvBiD,EAAYR,EAAK,GACZtD,EAAI,EAAGA,EAAIuE,EAAO5H,OAAQqD,GAAK,EAEtC,IADA,IAAI2E,EAAQJ,EAAOvE,GACVwB,EAAI,EAAGA,EAAInC,KAAK1C,OAAQ6E,GAAK,EAAG,CACvC,IAAImB,EAAKtD,KAAKmC,GACV2D,OAAM,EACV,IACEA,EAAM,IAAIxG,EAAIS,YAAYuF,EAAO,CAC/BS,OAAQtB,EACRuB,SAAS,EACTC,YAAY,IAEd,MAAOzB,IACPsB,EAAMvI,EAAIY,YAAY,UAClBC,UAAUkH,GAAO,GAAM,GAC3BQ,EAAIC,OAAStB,EAGfnB,EAAGoB,cAAgBT,EAAKiC,QAAO,SAAU7C,EAAM8C,GAAa,OAAOA,EAAY,KAC/E7C,EAAG8C,cAAcN,GACjBxC,EAAGoB,cAAgB,UACZpB,EAAGoB,cAGd,OAAO1E,MAuYPqG,cArYF,SAAuBC,GACrB,IAEI3F,EAFAuE,EAAS,CAAC,sBAAuB,iBACjCqB,EAAMvG,KAEV,SAASwG,EAAahC,GAEpB,GAAIA,EAAEvH,SAAW+C,KAEjB,IADAsG,EAASG,KAAKzG,KAAMwE,GACf7D,EAAI,EAAGA,EAAIuE,EAAO5H,OAAQqD,GAAK,EAClC4F,EAAIf,IAAIN,EAAOvE,GAAI6F,GAGvB,GAAIF,EACF,IAAK3F,EAAI,EAAGA,EAAIuE,EAAO5H,OAAQqD,GAAK,EAClC4F,EAAIxC,GAAGmB,EAAOvE,GAAI6F,GAGtB,OAAOxG,MAqXP0G,WAnXF,SAAoBC,GAClB,GAAI3G,KAAK1C,OAAS,EAAG,CACnB,GAAIqJ,EAAgB,CAElB,IAAIC,EAAS5G,KAAK4G,SAClB,OAAO5G,KAAK,GAAG6G,YAAcC,WAAWF,EAAO1G,iBAAiB,iBAAmB4G,WAAWF,EAAO1G,iBAAiB,gBAExH,OAAOF,KAAK,GAAG6G,YAEjB,OAAO,MA2WPE,YAzWF,SAAqBJ,GACnB,GAAI3G,KAAK1C,OAAS,EAAG,CACnB,GAAIqJ,EAAgB,CAElB,IAAIC,EAAS5G,KAAK4G,SAClB,OAAO5G,KAAK,GAAGgH,aAAeF,WAAWF,EAAO1G,iBAAiB,eAAiB4G,WAAWF,EAAO1G,iBAAiB,kBAEvH,OAAOF,KAAK,GAAGgH,aAEjB,OAAO,MAiWPC,OA/VF,WACE,GAAIjH,KAAK1C,OAAS,EAAG,CACnB,IAAIgG,EAAKtD,KAAK,GACVkH,EAAM5D,EAAG6D,wBACTzJ,EAAOH,EAAIG,KACX0J,EAAY9D,EAAG8D,WAAa1J,EAAK0J,WAAa,EAC9CC,EAAa/D,EAAG+D,YAAc3J,EAAK2J,YAAc,EACjDC,EAAYhE,IAAOhE,EAAMA,EAAIiI,QAAUjE,EAAGgE,UAC1CE,EAAalE,IAAOhE,EAAMA,EAAImI,QAAUnE,EAAGkE,WAC/C,MAAO,CACLE,IAAMR,EAAIQ,IAAMJ,EAAaF,EAC7BO,KAAOT,EAAIS,KAAOH,EAAcH,GAIpC,OAAO,MAiVPO,IA3UF,SAAaC,EAAO/E,GAClB,IAAInC,EACJ,GAAyB,IAArBqC,UAAU1F,OAAc,CAC1B,GAAqB,iBAAVuK,EAEJ,CACL,IAAKlH,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAEhC,IAAK,IAAImH,KAAQD,EACf7H,KAAKW,GAAGnC,MAAMsJ,GAAQD,EAAMC,GAGhC,OAAO9H,KARP,GAAIA,KAAK,GAAM,OAAOV,EAAIW,iBAAiBD,KAAK,GAAI,MAAME,iBAAiB2H,GAW/E,GAAyB,IAArB7E,UAAU1F,QAAiC,iBAAVuK,EAAoB,CACvD,IAAKlH,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAChCX,KAAKW,GAAGnC,MAAMqJ,GAAS/E,EAEzB,OAAO9C,KAET,OAAOA,MAuTP+H,KApTF,SAAczB,GAEZ,IAAKA,EAAY,OAAOtG,KAExB,IAAK,IAAIW,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAEpC,IAA2C,IAAvC2F,EAASG,KAAKzG,KAAKW,GAAIA,EAAGX,KAAKW,IAEjC,OAAOX,KAIX,OAAOA,MAySPiB,KA9RF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAOjB,KAAK,GAAKA,KAAK,GAAGqB,eAAY4D,EAGvC,IAAK,IAAItE,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACpCX,KAAKW,GAAGU,UAAYJ,EAEtB,OAAOjB,MAuRPgI,KApRF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAIhI,KAAK,GACAA,KAAK,GAAGiI,YAAY/G,OAEtB,KAGT,IAAK,IAAIP,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACpCX,KAAKW,GAAGsH,YAAcD,EAExB,OAAOhI,MA0QP4E,GAxQF,SAAY/D,GACV,IACIqH,EACAvH,EAFA2C,EAAKtD,KAAK,GAGd,IAAKsD,QAA0B,IAAbzC,EAA4B,OAAO,EACrD,GAAwB,iBAAbA,EAAuB,CAChC,GAAIyC,EAAG6E,QAAW,OAAO7E,EAAG6E,QAAQtH,GAC/B,GAAIyC,EAAG8E,sBAAyB,OAAO9E,EAAG8E,sBAAsBvH,GAChE,GAAIyC,EAAG+E,kBAAqB,OAAO/E,EAAG+E,kBAAkBxH,GAG7D,IADAqH,EAActH,EAAEC,GACXF,EAAI,EAAGA,EAAIuH,EAAY5K,OAAQqD,GAAK,EACvC,GAAIuH,EAAYvH,KAAO2C,EAAM,OAAO,EAEtC,OAAO,EACF,GAAIzC,IAAatD,EAAO,OAAO+F,IAAO/F,EACxC,GAAIsD,IAAavB,EAAO,OAAOgE,IAAOhE,EAE3C,GAAIuB,EAASY,UAAYZ,aAAoBJ,EAAM,CAEjD,IADAyH,EAAcrH,EAASY,SAAW,CAACZ,GAAYA,EAC1CF,EAAI,EAAGA,EAAIuH,EAAY5K,OAAQqD,GAAK,EACvC,GAAIuH,EAAYvH,KAAO2C,EAAM,OAAO,EAEtC,OAAO,EAET,OAAO,GAgPPgF,MA9OF,WACE,IACI3H,EADA4H,EAAQvI,KAAK,GAEjB,GAAIuI,EAAO,CAGT,IAFA5H,EAAI,EAEuC,QAAnC4H,EAAQA,EAAMC,kBACG,IAAnBD,EAAM9G,WAAkBd,GAAK,GAEnC,OAAOA,IAsOT8H,GAjOF,SAAYH,GACV,QAAqB,IAAVA,EAAyB,OAAOtI,KAC3C,IACI0I,EADApL,EAAS0C,KAAK1C,OAElB,OACS,IAAImD,EADT6H,EAAQhL,EAAS,EACH,GAEdgL,EAAQ,GACVI,EAAcpL,EAASgL,GACL,EAAqB,GACvB,CAACtI,KAAK0I,IAER,CAAC1I,KAAKsI,MAsNtBK,OApNF,WAEE,IADA,IAGIC,EAHA3E,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAIzC,IAAK,IAAIa,EAAI,EAAGA,EAAId,EAAK3G,OAAQyH,GAAK,EAAG,CACvC6D,EAAW3E,EAAKc,GAChB,IAAK,IAAIpE,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACpC,GAAwB,iBAAbiI,EAAuB,CAChC,IAAIC,EAAUtL,EAAIc,cAAc,OAEhC,IADAwK,EAAQxH,UAAYuH,EACbC,EAAQC,YACb9I,KAAKW,GAAGoI,YAAYF,EAAQC,iBAEzB,GAAIF,aAAoBnI,EAC7B,IAAK,IAAI0B,EAAI,EAAGA,EAAIyG,EAAStL,OAAQ6E,GAAK,EACxCnC,KAAKW,GAAGoI,YAAYH,EAASzG,SAG/BnC,KAAKW,GAAGoI,YAAYH,GAK1B,OAAO5I,MA4LPgJ,QA1LF,SAAiBJ,GACf,IAAIjI,EACAwB,EACJ,IAAKxB,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAChC,GAAwB,iBAAbiI,EAAuB,CAChC,IAAIC,EAAUtL,EAAIc,cAAc,OAEhC,IADAwK,EAAQxH,UAAYuH,EACfzG,EAAI0G,EAAQtK,WAAWjB,OAAS,EAAG6E,GAAK,EAAGA,GAAK,EACnDnC,KAAKW,GAAGsI,aAAaJ,EAAQtK,WAAW4D,GAAInC,KAAKW,GAAGpC,WAAW,SAE5D,GAAIqK,aAAoBnI,EAC7B,IAAK0B,EAAI,EAAGA,EAAIyG,EAAStL,OAAQ6E,GAAK,EACpCnC,KAAKW,GAAGsI,aAAaL,EAASzG,GAAInC,KAAKW,GAAGpC,WAAW,SAGvDyB,KAAKW,GAAGsI,aAAaL,EAAU5I,KAAKW,GAAGpC,WAAW,IAGtD,OAAOyB,MAyKPkJ,KAvKF,SAAcrI,GACZ,OAAIb,KAAK1C,OAAS,EACZuD,EACEb,KAAK,GAAGmJ,oBAAsBvI,EAAEZ,KAAK,GAAGmJ,oBAAoBvE,GAAG/D,GAC1D,IAAIJ,EAAK,CAACT,KAAK,GAAGmJ,qBAEpB,IAAI1I,EAAK,IAGdT,KAAK,GAAGmJ,mBAA6B,IAAI1I,EAAK,CAACT,KAAK,GAAGmJ,qBACpD,IAAI1I,EAAK,IAEX,IAAIA,EAAK,KA4JhB2I,QA1JF,SAAiBvI,GACf,IAAIwI,EAAU,GACV/F,EAAKtD,KAAK,GACd,IAAKsD,EAAM,OAAO,IAAI7C,EAAK,IAC3B,KAAO6C,EAAG6F,oBAAoB,CAC5B,IAAID,EAAO5F,EAAG6F,mBACVtI,EACED,EAAEsI,GAAMtE,GAAG/D,IAAawI,EAAQ/H,KAAK4H,GAClCG,EAAQ/H,KAAK4H,GACtB5F,EAAK4F,EAEP,OAAO,IAAIzI,EAAK4I,IAgJhBC,KA9IF,SAAczI,GACZ,GAAIb,KAAK1C,OAAS,EAAG,CACnB,IAAIgG,EAAKtD,KAAK,GACd,OAAIa,EACEyC,EAAGiG,wBAA0B3I,EAAE0C,EAAGiG,wBAAwB3E,GAAG/D,GACxD,IAAIJ,EAAK,CAAC6C,EAAGiG,yBAEf,IAAI9I,EAAK,IAGd6C,EAAGiG,uBAAiC,IAAI9I,EAAK,CAAC6C,EAAGiG,yBAC9C,IAAI9I,EAAK,IAElB,OAAO,IAAIA,EAAK,KAkIhB+I,QAhIF,SAAiB3I,GACf,IAAI4I,EAAU,GACVnG,EAAKtD,KAAK,GACd,IAAKsD,EAAM,OAAO,IAAI7C,EAAK,IAC3B,KAAO6C,EAAGiG,wBAAwB,CAChC,IAAID,EAAOhG,EAAGiG,uBACV1I,EACED,EAAE0I,GAAM1E,GAAG/D,IAAa4I,EAAQnI,KAAKgI,GAClCG,EAAQnI,KAAKgI,GACtBhG,EAAKgG,EAEP,OAAO,IAAI7I,EAAKgJ,IAsHhBC,OApHF,SAAgB7I,GAEd,IADA,IAAIiE,EAAU,GACLnE,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EACT,OAAvBX,KAAKW,GAAGgJ,aACN9I,EACED,EAAEZ,KAAKW,GAAGgJ,YAAY/E,GAAG/D,IAAaiE,EAAQxD,KAAKtB,KAAKW,GAAGgJ,YAE/D7E,EAAQxD,KAAKtB,KAAKW,GAAGgJ,aAI3B,OAAO/I,EAAEc,EAAOoD,KA0GhBA,QAxGF,SAAiBjE,GAEf,IADA,IAAIiE,EAAU,GACLnE,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAEpC,IADA,IAAI+I,EAAS1J,KAAKW,GAAGgJ,WACdD,GACD7I,EACED,EAAE8I,GAAQ9E,GAAG/D,IAAaiE,EAAQxD,KAAKoI,GAE3C5E,EAAQxD,KAAKoI,GAEfA,EAASA,EAAOC,WAGpB,OAAO/I,EAAEc,EAAOoD,KA4FhB8E,QA1FF,SAAiB/I,GACf,IAAI+I,EAAU5J,KACd,YAAwB,IAAba,EACF,IAAIJ,EAAK,KAEbmJ,EAAQhF,GAAG/D,KACd+I,EAAUA,EAAQ9E,QAAQjE,GAAU4H,GAAG,IAElCmB,IAmFPC,KAjFF,SAAchJ,GAEZ,IADA,IAAIiJ,EAAgB,GACXnJ,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAEpC,IADA,IAAIoJ,EAAQ/J,KAAKW,GAAG1C,iBAAiB4C,GAC5BsB,EAAI,EAAGA,EAAI4H,EAAMzM,OAAQ6E,GAAK,EACrC2H,EAAcxI,KAAKyI,EAAM5H,IAG7B,OAAO,IAAI1B,EAAKqJ,IA0EhBxL,SAxEF,SAAkBuC,GAEhB,IADA,IAAIvC,EAAW,GACNqC,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAGpC,IAFA,IAAIpC,EAAayB,KAAKW,GAAGpC,WAEhB4D,EAAI,EAAGA,EAAI5D,EAAWjB,OAAQ6E,GAAK,EACrCtB,EAEiC,IAA3BtC,EAAW4D,GAAGV,UAAkBb,EAAErC,EAAW4D,IAAIyC,GAAG/D,IAC7DvC,EAASgD,KAAK/C,EAAW4D,IAFM,IAA3B5D,EAAW4D,GAAGV,UAAkBnD,EAASgD,KAAK/C,EAAW4D,IAMnE,OAAO,IAAI1B,EAAKiB,EAAOpD,KA4DvB4H,OAvTF,SAAgBI,GAGd,IAFA,IAAI0D,EAAe,GACfzD,EAAMvG,KACDW,EAAI,EAAGA,EAAI4F,EAAIjJ,OAAQqD,GAAK,EAC/B2F,EAASG,KAAKF,EAAI5F,GAAIA,EAAG4F,EAAI5F,KAAOqJ,EAAa1I,KAAKiF,EAAI5F,IAEhE,OAAO,IAAIF,EAAKuJ,IAkThBzH,OA3DF,WACE,IAAK,IAAI5B,EAAI,EAAGA,EAAIX,KAAK1C,OAAQqD,GAAK,EAChCX,KAAKW,GAAGgJ,YAAc3J,KAAKW,GAAGgJ,WAAWM,YAAYjK,KAAKW,IAEhE,OAAOX,MAwDPqC,IAtDF,WAEE,IADA,IAAI4B,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAEzC,IACIvD,EACAwB,EAFAoE,EAAMvG,KAGV,IAAKW,EAAI,EAAGA,EAAIsD,EAAK3G,OAAQqD,GAAK,EAAG,CACnC,IAAIuJ,EAAQtJ,EAAEqD,EAAKtD,IACnB,IAAKwB,EAAI,EAAGA,EAAI+H,EAAM5M,OAAQ6E,GAAK,EACjCoE,EAAIA,EAAIjJ,QAAU4M,EAAM/H,GACxBoE,EAAIjJ,QAAU,EAGlB,OAAOiJ,GAyCPK,OApWF,WACE,OAAI5G,KAAK,GAAaV,EAAIW,iBAAiBD,KAAK,GAAI,MAC7C,KAqWTjD,OAAOI,KAAK4E,GAAS3E,SAAQ,SAAU+M,GACrCvJ,EAAEgB,GAAGuI,GAAcvJ,EAAEgB,GAAGuI,IAAepI,EAAQoI,MAGjD,IAAIC,EAAQ,CACVC,YAAa,SAAqBxN,GAChC,IAAIyN,EAASzN,EACbE,OAAOI,KAAKmN,GAAQlN,SAAQ,SAAUC,GACpC,IACEiN,EAAOjN,GAAO,KACd,MAAOmH,IAGT,WACS8F,EAAOjN,GACd,MAAOmH,SAKb+F,SAAU,SAAkBjE,EAAUkE,GAGpC,YAFe,IAAVA,IAAmBA,EAAQ,GAEzBlK,WAAWgG,EAAUkE,IAE9BC,IAAK,WACH,OAAOrK,KAAKqK,OAEdC,aAAc,SAAsBpH,EAAIqH,GAGtC,IAAIC,EACAC,EACAC,OAJU,IAATH,IAAkBA,EAAO,KAM9B,IAAII,EAAWzL,EAAIW,iBAAiBqD,EAAI,MA+BxC,OA7BIhE,EAAI0L,kBACNH,EAAeE,EAASvH,WAAauH,EAASrH,iBAC7BlC,MAAM,KAAKlE,OAAS,IACnCuN,EAAeA,EAAarJ,MAAM,MAAMyJ,KAAI,SAAUC,GAAK,OAAOA,EAAEC,QAAQ,IAAK,QAASC,KAAK,OAIjGN,EAAkB,IAAIxL,EAAI0L,gBAAiC,SAAjBH,EAA0B,GAAKA,IAGzED,GADAE,EAAkBC,EAASM,cAAgBN,EAASO,YAAcP,EAASQ,aAAeR,EAASS,aAAeT,EAASvH,WAAauH,EAAS7K,iBAAiB,aAAaiL,QAAQ,aAAc,uBAC5KM,WAAWjK,MAAM,KAG/B,MAATmJ,IAEyBE,EAAvBvL,EAAI0L,gBAAkCF,EAAgBY,IAE/B,KAAlBd,EAAOtN,OAAgCwJ,WAAW8D,EAAO,KAE5C9D,WAAW8D,EAAO,KAE7B,MAATD,IAEyBE,EAAvBvL,EAAI0L,gBAAkCF,EAAgBa,IAE/B,KAAlBf,EAAOtN,OAAgCwJ,WAAW8D,EAAO,KAE5C9D,WAAW8D,EAAO,KAEnCC,GAAgB,GAEzBe,cAAe,SAAuBC,GACpC,IAEIlL,EACAmL,EACAC,EACAzO,EALA0O,EAAQ,GACRC,EAAaJ,GAAOvM,EAAIT,SAASI,KAKrC,GAA0B,iBAAfgN,GAA2BA,EAAW3O,OAK/C,IAFAA,GADAwO,GADAG,EAAaA,EAAW9K,QAAQ,MAAQ,EAAI8K,EAAWd,QAAQ,QAAS,IAAM,IAC1D3J,MAAM,KAAK0E,QAAO,SAAUgG,GAAc,MAAsB,KAAfA,MACrD5O,OAEXqD,EAAI,EAAGA,EAAIrD,EAAQqD,GAAK,EAC3BoL,EAAQD,EAAOnL,GAAGwK,QAAQ,QAAS,IAAI3J,MAAM,KAC7CwK,EAAMG,mBAAmBJ,EAAM,UAA2B,IAAbA,EAAM,QAAqB9G,EAAYkH,mBAAmBJ,EAAM,KAAO,GAGxH,OAAOC,GAETpP,SAAU,SAAkBwP,GAC1B,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEtP,aAAesP,EAAEtP,cAAgBC,QAEnFC,OAAQ,WAEN,IADA,IAAIiH,EAAO,GAAIoI,EAAQrJ,UAAU1F,OACzB+O,KAAUpI,EAAMoI,GAAUrJ,UAAWqJ,GAG7C,IADA,IAAIC,EAAKvP,OAAOkH,EAAK,IACZtD,EAAI,EAAGA,EAAIsD,EAAK3G,OAAQqD,GAAK,EAAG,CACvC,IAAI4L,EAAatI,EAAKtD,GACtB,GAAI4L,MAAAA,EAEF,IADA,IAAIC,EAAYzP,OAAOI,KAAKJ,OAAOwP,IAC1BE,EAAY,EAAGvI,EAAMsI,EAAUlP,OAAQmP,EAAYvI,EAAKuI,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAO5P,OAAO6P,yBAAyBL,EAAYG,QAC1CzH,IAAT0H,GAAsBA,EAAKE,aACzBzC,EAAMxN,SAAS0P,EAAGI,KAAatC,EAAMxN,SAAS2P,EAAWG,IAC3DtC,EAAMpN,OAAOsP,EAAGI,GAAUH,EAAWG,KAC3BtC,EAAMxN,SAAS0P,EAAGI,KAAatC,EAAMxN,SAAS2P,EAAWG,KACnEJ,EAAGI,GAAW,GACdtC,EAAMpN,OAAOsP,EAAGI,GAAUH,EAAWG,KAErCJ,EAAGI,GAAWH,EAAWG,KAMnC,OAAOJ,IAIPQ,EACK,CACLC,SAAW,iBAAkBzN,GAASA,EAAI0N,eAAiBzP,aAAe+B,EAAI0N,eAE9EC,gBAAiB3N,EAAI4N,cAAiB,mBAAoB5N,EAAIE,WAAcF,EAAIE,UAAU2N,gBAAkB,EAE5GC,SACU,qBAAsB9N,GAAO,2BAA4BA,EAGnE+N,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,IAAIC,EAAOxQ,OAAOyQ,eAAe,GAAI,UAAW,CAE9CC,IAAK,WACHH,GAAkB,KAGtBhO,EAAI3B,iBAAiB,sBAAuB,KAAM4P,GAClD,MAAO/I,IAGT,OAAO8I,EAbQ,GAgBjBI,SACS,mBAAoBpO,GAK7BqO,EAAc,SAAqB7B,QACrB,IAAXA,IAAoBA,EAAS,IAElC,IAAI8B,EAAO5N,KACX4N,EAAK9B,OAASA,EAGd8B,EAAKC,gBAAkB,GAEnBD,EAAK9B,QAAU8B,EAAK9B,OAAO/H,IAC7BhH,OAAOI,KAAKyQ,EAAK9B,OAAO/H,IAAI3G,SAAQ,SAAU0Q,GAC5CF,EAAK7J,GAAG+J,EAAWF,EAAK9B,OAAO/H,GAAG+J,QAKpCC,EAAkB,CAAEC,WAAY,CAAEC,cAAc,IAEpDN,EAAY9L,UAAUkC,GAAK,SAAamB,EAAQQ,EAASwI,GACvD,IAAIN,EAAO5N,KACX,GAAuB,mBAAZ0F,EAA0B,OAAOkI,EAC5C,IAAIO,EAASD,EAAW,UAAY,OAKpC,OAJAhJ,EAAO1D,MAAM,KAAKpE,SAAQ,SAAUkI,GAC7BsI,EAAKC,gBAAgBvI,KAAUsI,EAAKC,gBAAgBvI,GAAS,IAClEsI,EAAKC,gBAAgBvI,GAAO6I,GAAQzI,MAE/BkI,GAGTD,EAAY9L,UAAUuM,KAAO,SAAelJ,EAAQQ,EAASwI,GAC3D,IAAIN,EAAO5N,KACX,GAAuB,mBAAZ0F,EAA0B,OAAOkI,EAC5C,SAASS,IAEL,IADA,IAAIpK,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAE3C0J,EAAKpI,IAAIN,EAAQmJ,GACbA,EAAYC,gBACPD,EAAYC,QAErB5I,EAAQb,MAAM+I,EAAM3J,GAGtB,OADAoK,EAAYC,QAAU5I,EACfkI,EAAK7J,GAAGmB,EAAQmJ,EAAaH,IAGtCP,EAAY9L,UAAU2D,IAAM,SAAcN,EAAQQ,GAChD,IAAIkI,EAAO5N,KACX,OAAK4N,EAAKC,iBACV3I,EAAO1D,MAAM,KAAKpE,SAAQ,SAAUkI,QACX,IAAZI,EACTkI,EAAKC,gBAAgBvI,GAAS,GACrBsI,EAAKC,gBAAgBvI,IAAUsI,EAAKC,gBAAgBvI,GAAOhI,QACpEsQ,EAAKC,gBAAgBvI,GAAOlI,SAAQ,SAAUmR,EAAcjG,IACtDiG,IAAiB7I,GAAY6I,EAAaD,SAAWC,EAAaD,UAAY5I,IAChFkI,EAAKC,gBAAgBvI,GAAOM,OAAO0C,EAAO,SAK3CsF,GAZ6BA,GAetCD,EAAY9L,UAAU2M,KAAO,WAEzB,IADA,IAAIvK,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAE3C,IAEIgB,EACA7B,EACAvC,EAJA8M,EAAO5N,KACX,OAAK4N,EAAKC,iBAIa,iBAAZ5J,EAAK,IAAmBwK,MAAMC,QAAQzK,EAAK,KACpDiB,EAASjB,EAAK,GACdZ,EAAOY,EAAK0K,MAAM,EAAG1K,EAAK3G,QAC1BwD,EAAU8M,IAEV1I,EAASjB,EAAK,GAAGiB,OACjB7B,EAAOY,EAAK,GAAGZ,KACfvC,EAAUmD,EAAK,GAAGnD,SAAW8M,IAEba,MAAMC,QAAQxJ,GAAUA,EAASA,EAAO1D,MAAM,MACpDpE,SAAQ,SAAUkI,GAC5B,GAAIsI,EAAKC,iBAAmBD,EAAKC,gBAAgBvI,GAAQ,CACvD,IAAIG,EAAW,GACfmI,EAAKC,gBAAgBvI,GAAOlI,SAAQ,SAAUmR,GAC5C9I,EAASnE,KAAKiN,MAEhB9I,EAASrI,SAAQ,SAAUmR,GACzBA,EAAa1J,MAAM/D,EAASuC,UAI3BuK,GAzB6BA,GA4BtCD,EAAY9L,UAAU+M,iBAAmB,SAA2BC,GAClE,IAAIC,EAAW9O,KACV8O,EAASC,SACdhS,OAAOI,KAAK2R,EAASC,SAAS3R,SAAQ,SAAU4R,GAC9C,IAAItS,EAASoS,EAASC,QAAQC,GAE1BtS,EAAOoP,QACT1B,EAAMpN,OAAO6R,EAAgBnS,EAAOoP,YAK1C6B,EAAY9L,UAAUoN,WAAa,SAAqBC,QAC7B,IAAlBA,IAA2BA,EAAgB,IAElD,IAAIJ,EAAW9O,KACV8O,EAASC,SACdhS,OAAOI,KAAK2R,EAASC,SAAS3R,SAAQ,SAAU4R,GAC9C,IAAItS,EAASoS,EAASC,QAAQC,GAC1BG,EAAeD,EAAcF,IAAe,GAE5CtS,EAAOoS,UACT/R,OAAOI,KAAKT,EAAOoS,UAAU1R,SAAQ,SAAUgS,GAC7C,IAAIC,EAAa3S,EAAOoS,SAASM,GAE/BN,EAASM,GADe,mBAAfC,EACkBA,EAAWC,KAAKR,GAEhBO,KAK7B3S,EAAOqH,IAAM+K,EAAS/K,IACxBhH,OAAOI,KAAKT,EAAOqH,IAAI3G,SAAQ,SAAUmS,GACvCT,EAAS/K,GAAGwL,EAAiB7S,EAAOqH,GAAGwL,OAKvC7S,EAAO8S,QACT9S,EAAO8S,OAAOF,KAAKR,EAAnBpS,CAA6ByS,OAKnCpB,EAAgBC,WAAWyB,IAAM,SAAUzB,GAC7BhO,KACD0P,KADC1P,KAEN0P,IAAI1B,IAGZL,EAAYgC,cAAgB,SAAwBjT,GAEhD,IADA,IAAIoP,EAAS,GAAI5H,EAAMlB,UAAU1F,OAAS,EAClC4G,KAAQ,GAAI4H,EAAQ5H,GAAQlB,UAAWkB,EAAM,GAEvD,IAAIpC,EAAQ9B,KACP8B,EAAMD,UAAUkN,UAAWjN,EAAMD,UAAUkN,QAAU,IAC1D,IAAIa,EAAOlT,EAAOkT,MAAW7S,OAAOI,KAAK2E,EAAMD,UAAUkN,SAAe,OAAI,IAAO3E,EAAMK,MAkBzF,OAjBA3I,EAAMD,UAAUkN,QAAQa,GAAQlT,EAE5BA,EAAOmT,OACT9S,OAAOI,KAAKT,EAAOmT,OAAOzS,SAAQ,SAAUC,GAC1CyE,EAAMD,UAAUxE,GAAOX,EAAOmT,MAAMxS,MAIpCX,EAAOoT,QACT/S,OAAOI,KAAKT,EAAOoT,QAAQ1S,SAAQ,SAAUC,GAC3CyE,EAAMzE,GAAOX,EAAOoT,OAAOzS,MAI3BX,EAAOqT,SACTrT,EAAOqT,QAAQlL,MAAM/C,EAAOgK,GAEvBhK,GAGT6L,EAAY+B,IAAM,SAAchT,GAE5B,IADA,IAAIoP,EAAS,GAAI5H,EAAMlB,UAAU1F,OAAS,EAClC4G,KAAQ,GAAI4H,EAAQ5H,GAAQlB,UAAWkB,EAAM,GAEvD,IAAIpC,EAAQ9B,KACZ,OAAIyO,MAAMC,QAAQhS,IAChBA,EAAOU,SAAQ,SAAU4S,GAAK,OAAOlO,EAAM6N,cAAcK,MAClDlO,GAEFA,EAAM6N,cAAc9K,MAAM/C,EAAO,CAAEpF,GAASuT,OAAQnE,KAG7D/O,OAAOmT,iBAAkBvC,EAAaI,GA6nBtC,IAAIoC,EAAS,CACXC,WA5nBF,WACE,IACIC,EACAC,EAFAC,EAASvQ,KAGTwQ,EAAMD,EAAOC,IAEfH,OADiC,IAAxBE,EAAOzE,OAAOuE,MACfE,EAAOzE,OAAOuE,MAEdG,EAAI,GAAGC,YAGfH,OADkC,IAAzBC,EAAOzE,OAAOwE,OACdC,EAAOzE,OAAOwE,OAEdE,EAAI,GAAGE,aAEH,IAAVL,GAAeE,EAAOI,gBAA+B,IAAXL,GAAgBC,EAAOK,eAKtEP,EAAQA,EAAQQ,SAASL,EAAI5I,IAAI,gBAAiB,IAAMiJ,SAASL,EAAI5I,IAAI,iBAAkB,IAC3F0I,EAASA,EAASO,SAASL,EAAI5I,IAAI,eAAgB,IAAMiJ,SAASL,EAAI5I,IAAI,kBAAmB,IAE7FwC,EAAMpN,OAAOuT,EAAQ,CACnBF,MAAOA,EACPC,OAAQA,EACRQ,KAAMP,EAAOI,eAAiBN,EAAQC,MAmmBxCS,aA/lBF,WACE,IAAIR,EAASvQ,KACT8L,EAASyE,EAAOzE,OAEhBkF,EAAaT,EAAOS,WACpBC,EAAaV,EAAOO,KACpBI,EAAMX,EAAOY,aACbC,EAAWb,EAAOa,SAClBC,EAAYd,EAAOe,SAAWxF,EAAOwF,QAAQC,QAC7CC,EAAuBH,EAAYd,EAAOe,QAAQG,OAAOnU,OAASiT,EAAOkB,OAAOnU,OAChFmU,EAAST,EAAW1S,SAAU,IAAOiS,EAAOzE,OAAiB,YAC7D4F,EAAeL,EAAYd,EAAOe,QAAQG,OAAOnU,OAASmU,EAAOnU,OACjEqU,EAAW,GACXC,EAAa,GACbC,EAAkB,GAEtB,SAASC,EAAgBC,GACvB,OAAKjG,EAAOkG,SACRD,IAAeN,EAAOnU,OAAS,EAMrC,IAAI2U,EAAenG,EAAOoG,mBACE,mBAAjBD,IACTA,EAAenG,EAAOoG,mBAAmBzL,KAAK8J,IAGhD,IAAI4B,EAAcrG,EAAOsG,kBACE,mBAAhBD,IACTA,EAAcrG,EAAOsG,kBAAkB3L,KAAK8J,IAG9C,IAAI8B,EAAyB9B,EAAOoB,SAASrU,OACzCgV,EAA2B/B,EAAOoB,SAASrU,OAE3CiV,EAAezG,EAAOyG,aACtBC,GAAiBP,EACjBQ,EAAgB,EAChBnK,EAAQ,EACZ,QAA0B,IAAf2I,EAAX,CAaA,IAAIyB,EAaAC,EAvBwB,iBAAjBJ,GAA6BA,EAAapR,QAAQ,MAAQ,IACnEoR,EAAgBzL,WAAWyL,EAAapH,QAAQ,IAAK,KAAO,IAAO8F,GAGrEV,EAAOqC,aAAeL,EAGlBrB,EAAOO,EAAO7J,IAAI,CAAEiL,WAAY,GAAIC,UAAW,KAC5CrB,EAAO7J,IAAI,CAAEmL,YAAa,GAAIC,aAAc,KAG/ClH,EAAOmH,gBAAkB,IAEzBP,EADEQ,KAAKC,MAAMzB,EAAe5F,EAAOmH,mBAAqBvB,EAAenB,EAAOzE,OAAOmH,gBAC5DvB,EAEAwB,KAAKE,KAAK1B,EAAe5F,EAAOmH,iBAAmBnH,EAAOmH,gBAExD,SAAzBnH,EAAOuH,eAA2D,QAA/BvH,EAAOwH,sBAC5CZ,EAAyBQ,KAAKK,IAAIb,EAAwB5G,EAAOuH,cAAgBvH,EAAOmH,mBAS5F,IAHA,IA2IIO,EA3IAP,EAAkBnH,EAAOmH,gBACzBQ,EAAef,EAAyBO,EACxCS,EAAiBR,KAAKC,MAAMzB,EAAe5F,EAAOmH,iBAC7CtS,EAAI,EAAGA,EAAI+Q,EAAc/Q,GAAK,EAAG,CACxCgS,EAAY,EACZ,IAAIgB,EAAQlC,EAAOhJ,GAAG9H,GACtB,GAAImL,EAAOmH,gBAAkB,EAAG,CAE9B,IAAIW,OAAqB,EACrBC,OAAS,EACTC,OAAM,EACV,GAAmC,QAA/BhI,EAAOwH,qBAAiCxH,EAAOiI,eAAiB,EAAG,CACrE,IAAIC,EAAad,KAAKC,MAAMxS,GAAKmL,EAAOiI,eAAiBjI,EAAOmH,kBAC5DgB,EAAoBtT,EAAImL,EAAOmH,gBAAkBnH,EAAOiI,eAAiBC,EACzEE,EAAgC,IAAfF,EACjBlI,EAAOiI,eACPb,KAAKiB,IAAIjB,KAAKE,MAAM1B,EAAesC,EAAaf,EAAkBnH,EAAOiI,gBAAkBd,GAAkBnH,EAAOiI,gBAIxHH,GAFAC,EAAUI,GADVH,EAAMZ,KAAKC,MAAMc,EAAoBC,IACDA,EAAkBF,EAAalI,EAAOiI,gBAE1CD,EAAMpB,EAA0BO,EAChEU,EACG/L,IAAI,CACH,4BAA6BgM,EAC7B,yBAA0BA,EAC1B,iBAAkBA,EAClB,gBAAiBA,EACjBQ,MAAOR,QAE6B,WAA/B9H,EAAOwH,qBAEhBQ,EAAMnT,GADNkT,EAASX,KAAKC,MAAMxS,EAAIsS,IACJA,GAChBY,EAASH,GAAmBG,IAAWH,GAAkBI,IAAQb,EAAkB,KACrFa,GAAO,IACIb,IACTa,EAAM,EACND,GAAU,IAKdA,EAASlT,GADTmT,EAAMZ,KAAKC,MAAMxS,EAAI8S,IACDA,EAEtBE,EAAM/L,IACH,WAAa2I,EAAOI,eAAiB,MAAQ,QACrC,IAARmD,GAAahI,EAAOyG,cAAoBzG,EAAmB,aAAI,MAGpE,GAA6B,SAAzB6H,EAAM/L,IAAI,WAAd,CAEA,GAA6B,SAAzBkE,EAAOuH,cAA0B,CACnC,IAAIgB,EAAc/U,EAAIW,iBAAiB0T,EAAM,GAAI,MAC7CW,EAAmBX,EAAM,GAAGnV,MAAMgF,UAClC+Q,EAAyBZ,EAAM,GAAGnV,MAAMkF,gBAO5C,GANI4Q,IACFX,EAAM,GAAGnV,MAAMgF,UAAY,QAEzB+Q,IACFZ,EAAM,GAAGnV,MAAMkF,gBAAkB,QAE/BoI,EAAO0I,aACT7B,EAAYpC,EAAOI,eACfgD,EAAMjN,YAAW,GACjBiN,EAAM5M,aAAY,QAGtB,GAAIwJ,EAAOI,eAAgB,CACzB,IAAIN,EAAQvJ,WAAWuN,EAAYnU,iBAAiB,UAChDuU,EAAc3N,WAAWuN,EAAYnU,iBAAiB,iBACtDwU,EAAe5N,WAAWuN,EAAYnU,iBAAiB,kBACvD2S,EAAa/L,WAAWuN,EAAYnU,iBAAiB,gBACrD6S,EAAcjM,WAAWuN,EAAYnU,iBAAiB,iBACtDyU,EAAYN,EAAYnU,iBAAiB,cAE3CyS,EADEgC,GAA2B,eAAdA,EACHtE,EAAQwC,EAAaE,EAErB1C,EAAQoE,EAAcC,EAAe7B,EAAaE,MAE3D,CACL,IAAIzC,EAASxJ,WAAWuN,EAAYnU,iBAAiB,WACjD0U,EAAa9N,WAAWuN,EAAYnU,iBAAiB,gBACrD2U,EAAgB/N,WAAWuN,EAAYnU,iBAAiB,mBACxD4S,EAAYhM,WAAWuN,EAAYnU,iBAAiB,eACpD8S,EAAelM,WAAWuN,EAAYnU,iBAAiB,kBACvD4U,EAAcT,EAAYnU,iBAAiB,cAE7CyS,EADEmC,GAA+B,eAAhBA,EACLxE,EAASwC,EAAYE,EAErB1C,EAASsE,EAAaC,EAAgB/B,EAAYE,EAIhEsB,IACFX,EAAM,GAAGnV,MAAMgF,UAAY8Q,GAEzBC,IACFZ,EAAM,GAAGnV,MAAMkF,gBAAkB6Q,GAE/BzI,EAAO0I,eAAgB7B,EAAYO,KAAKC,MAAMR,SAElDA,GAAa1B,GAAenF,EAAOuH,cAAgB,GAAKd,GAAiBzG,EAAOuH,cAC5EvH,EAAO0I,eAAgB7B,EAAYO,KAAKC,MAAMR,IAE9ClB,EAAO9Q,KACL4P,EAAOI,eACTc,EAAO9Q,GAAGnC,MAAM6R,MAAQsC,EAAY,KAEpClB,EAAO9Q,GAAGnC,MAAM8R,OAASqC,EAAY,MAIvClB,EAAO9Q,KACT8Q,EAAO9Q,GAAGoU,gBAAkBpC,GAE9Bd,EAAgBvQ,KAAKqR,GAGjB7G,EAAOkJ,gBACTxC,EAAgBA,EAAiBG,EAAY,EAAMF,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAAN9R,IAAW6R,EAAgBA,EAAiBvB,EAAa,EAAKsB,GAC/E,IAAN5R,IAAW6R,EAAgBA,EAAiBvB,EAAa,EAAKsB,GAC9DW,KAAK+B,IAAIzC,GAAiB,OAAYA,EAAgB,GACtD1G,EAAO0I,eAAgBhC,EAAgBU,KAAKC,MAAMX,IAClD,EAAU1G,EAAOiI,gBAAmB,GAAKpC,EAASrQ,KAAKkR,GAC3DZ,EAAWtQ,KAAKkR,KAEZ1G,EAAO0I,eAAgBhC,EAAgBU,KAAKC,MAAMX,KACjDlK,EAAQ4K,KAAKiB,IAAI5D,EAAOzE,OAAOoJ,mBAAoB5M,IAAUiI,EAAOzE,OAAOiI,gBAAmB,GAAKpC,EAASrQ,KAAKkR,GACtHZ,EAAWtQ,KAAKkR,GAChBA,EAAgBA,EAAgBG,EAAYJ,GAG9ChC,EAAOqC,aAAeD,EAAYJ,EAElCE,EAAgBE,EAEhBrK,GAAS,GAcX,GAZAiI,EAAOqC,YAAcM,KAAKK,IAAIhD,EAAOqC,YAAa3B,GAAckB,EAI9DjB,GAAOE,IAA+B,UAAlBtF,EAAOqJ,QAAwC,cAAlBrJ,EAAOqJ,SACxDnE,EAAWpJ,IAAI,CAAEyI,MAASE,EAAOqC,YAAc9G,EAAOyG,aAAgB,OAEpEzG,EAAOsJ,iBACL7E,EAAOI,eAAkBK,EAAWpJ,IAAI,CAAEyI,MAASE,EAAOqC,YAAc9G,EAAOyG,aAAgB,OAC5FvB,EAAWpJ,IAAI,CAAE0I,OAAUC,EAAOqC,YAAc9G,EAAOyG,aAAgB,QAG5EzG,EAAOmH,gBAAkB,IAC3B1C,EAAOqC,aAAeD,EAAY7G,EAAOyG,cAAgBG,EACzDnC,EAAOqC,YAAcM,KAAKE,KAAK7C,EAAOqC,YAAc9G,EAAOmH,iBAAmBnH,EAAOyG,aACjFhC,EAAOI,eAAkBK,EAAWpJ,IAAI,CAAEyI,MAASE,EAAOqC,YAAc9G,EAAOyG,aAAgB,OAC5FvB,EAAWpJ,IAAI,CAAE0I,OAAUC,EAAOqC,YAAc9G,EAAOyG,aAAgB,OAC1EzG,EAAOkJ,gBAAgB,CACzBxB,EAAgB,GAChB,IAAK,IAAI6B,EAAM,EAAGA,EAAM1D,EAASrU,OAAQ+X,GAAO,EAAG,CACjD,IAAIC,GAAiB3D,EAAS0D,GAC1BvJ,EAAO0I,eAAgBc,GAAiBpC,KAAKC,MAAMmC,KACnD3D,EAAS0D,GAAO9E,EAAOqC,YAAcjB,EAAS,IAAM6B,EAAclS,KAAKgU,IAE7E3D,EAAW6B,EAKf,IAAK1H,EAAOkJ,eAAgB,CAC1BxB,EAAgB,GAChB,IAAK,IAAI+B,GAAM,EAAGA,GAAM5D,EAASrU,OAAQiY,IAAO,EAAG,CACjD,IAAIC,GAAmB7D,EAAS4D,IAC5BzJ,EAAO0I,eAAgBgB,GAAmBtC,KAAKC,MAAMqC,KACrD7D,EAAS4D,KAAQhF,EAAOqC,YAAc3B,GACxCuC,EAAclS,KAAKkU,IAGvB7D,EAAW6B,EACPN,KAAKC,MAAM5C,EAAOqC,YAAc3B,GAAciC,KAAKC,MAAMxB,EAASA,EAASrU,OAAS,IAAM,GAC5FqU,EAASrQ,KAAKiP,EAAOqC,YAAc3B,GAYvC,GATwB,IAApBU,EAASrU,SAAgBqU,EAAW,CAAC,IAEb,IAAxB7F,EAAOyG,eACLhC,EAAOI,eACLO,EAAOO,EAAOvL,OAAO4L,GAAiBlK,IAAI,CAAEiL,WAAaN,EAAe,OACrEd,EAAOvL,OAAO4L,GAAiBlK,IAAI,CAAEmL,YAAcR,EAAe,OAClEd,EAAOvL,OAAO4L,GAAiBlK,IAAI,CAAEoL,aAAeT,EAAe,QAG1EzG,EAAOkJ,gBAAkBlJ,EAAO2J,qBAAsB,CACxD,IAAIC,GAAgB,EACpB7D,EAAgBzU,SAAQ,SAAUuY,GAChCD,IAAiBC,GAAkB7J,EAAOyG,aAAezG,EAAOyG,aAAe,MAGjF,IAAIqD,IADJF,IAAiB5J,EAAOyG,cACMtB,EAC9BU,EAAWA,EAAS1G,KAAI,SAAU4K,GAChC,OAAIA,EAAO,GAAa5D,EACpB4D,EAAOD,GAAkBA,GAAUzD,EAChC0D,KAIX,GAAI/J,EAAOgK,yBAA0B,CACnC,IAAIC,GAAkB,EAKtB,GAJAlE,EAAgBzU,SAAQ,SAAUuY,GAChCI,IAAmBJ,GAAkB7J,EAAOyG,aAAezG,EAAOyG,aAAe,OAEnFwD,IAAmBjK,EAAOyG,cACJtB,EAAY,CAChC,IAAI+E,IAAmB/E,EAAa8E,IAAmB,EACvDpE,EAASvU,SAAQ,SAAUyY,EAAMI,GAC/BtE,EAASsE,GAAaJ,EAAOG,MAE/BpE,EAAWxU,SAAQ,SAAUyY,EAAMI,GACjCrE,EAAWqE,GAAaJ,EAAOG,OAKrC5L,EAAMpN,OAAOuT,EAAQ,CACnBkB,OAAQA,EACRE,SAAUA,EACVC,WAAYA,EACZC,gBAAiBA,IAGfH,IAAiBF,GACnBjB,EAAO/B,KAAK,sBAEVmD,EAASrU,SAAW+U,IAClB9B,EAAOzE,OAAOoK,eAAiB3F,EAAO4F,gBAC1C5F,EAAO/B,KAAK,yBAEVoD,EAAWtU,SAAWgV,GACxB/B,EAAO/B,KAAK,2BAGV1C,EAAOsK,qBAAuBtK,EAAOuK,wBACvC9F,EAAO+F,uBA4STC,iBAxSF,SAA2BC,GACzB,IAGI7V,EAHA4P,EAASvQ,KACTyW,EAAe,GACfC,EAAY,EAQhB,GANqB,iBAAVF,EACTjG,EAAOoG,cAAcH,IACF,IAAVA,GACTjG,EAAOoG,cAAcpG,EAAOzE,OAAO0K,OAGD,SAAhCjG,EAAOzE,OAAOuH,eAA4B9C,EAAOzE,OAAOuH,cAAgB,EAC1E,GAAI9C,EAAOzE,OAAOkJ,eAChBzE,EAAOqG,cAAc7O,MAAK,SAAUO,EAAOqL,GACzC8C,EAAanV,KAAKqS,WAGpB,IAAKhT,EAAI,EAAGA,EAAIuS,KAAKE,KAAK7C,EAAOzE,OAAOuH,eAAgB1S,GAAK,EAAG,CAC9D,IAAI2H,EAAQiI,EAAOsG,YAAclW,EACjC,GAAI2H,EAAQiI,EAAOkB,OAAOnU,OAAU,MACpCmZ,EAAanV,KAAKiP,EAAOkB,OAAOhJ,GAAGH,GAAO,SAI9CmO,EAAanV,KAAKiP,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAAa,IAIzD,IAAKlW,EAAI,EAAGA,EAAI8V,EAAanZ,OAAQqD,GAAK,EACxC,QAA+B,IAApB8V,EAAa9V,GAAoB,CAC1C,IAAI2P,EAASmG,EAAa9V,GAAGqG,aAC7B0P,EAAYpG,EAASoG,EAAYpG,EAASoG,EAK1CA,GAAanG,EAAOS,WAAWpJ,IAAI,SAAW8O,EAAY,OAqQ9DJ,mBAlQF,WAGE,IAFA,IACI7E,EADSzR,KACOyR,OACX9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EACtC8Q,EAAO9Q,GAAGmW,kBAHC9W,KAG0B2Q,eAAiBc,EAAO9Q,GAAGoW,WAAatF,EAAO9Q,GAAGqW,WA+PzFC,qBA3PF,SAA+BC,QACV,IAAdA,IAAuBA,EAAalX,MAAQA,KAAKkX,WAAc,GAEpE,IAAI3G,EAASvQ,KACT8L,EAASyE,EAAOzE,OAEhB2F,EAASlB,EAAOkB,OAChBP,EAAMX,EAAOY,aAEjB,GAAsB,IAAlBM,EAAOnU,OAAX,MAC2C,IAAhCmU,EAAO,GAAGqF,mBAAqCvG,EAAO+F,qBAEjE,IAAIa,GAAgBD,EAChBhG,IAAOiG,EAAeD,GAG1BzF,EAAOnP,YAAYwJ,EAAOsL,mBAE1B7G,EAAO8G,qBAAuB,GAC9B9G,EAAOqG,cAAgB,GAEvB,IAAK,IAAIjW,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAAG,CACzC,IAAIgT,EAAQlC,EAAO9Q,GACf2W,GACDH,GAAgBrL,EAAOkJ,eAAiBzE,EAAOgH,eAAiB,GAAM5D,EAAMmD,oBAC1EnD,EAAMoB,gBAAkBjJ,EAAOyG,cACpC,GAAIzG,EAAOuK,uBAA0BvK,EAAOkJ,gBAAkBlJ,EAAO0L,WAAa,CAChF,IAAIC,IAAgBN,EAAexD,EAAMmD,mBACrCY,EAAaD,EAAclH,EAAOsB,gBAAgBlR,IACrC8W,GAAe,GAAKA,EAAclH,EAAOO,KAAO,GACnD4G,EAAa,GAAKA,GAAcnH,EAAOO,MACvC2G,GAAe,GAAKC,GAAcnH,EAAOO,QAErDP,EAAOqG,cAActV,KAAKqS,GAC1BpD,EAAO8G,qBAAqB/V,KAAKX,GACjC8Q,EAAOhJ,GAAG9H,GAAGqB,SAAS8J,EAAOsL,oBAGjCzD,EAAMgE,SAAWzG,GAAOoG,EAAgBA,EAE1C/G,EAAOqG,cAAgBhW,EAAE2P,EAAOqG,iBAoNhCgB,eAjNF,SAAyBV,GACvB,IAAI3G,EAASvQ,KACb,QAAyB,IAAdkX,EAA2B,CACpC,IAAIW,EAAatH,EAAOY,cAAgB,EAAI,EAE5C+F,EAAa3G,GAAUA,EAAO2G,WAAc3G,EAAO2G,UAAYW,GAAgB,EAEjF,IAAI/L,EAASyE,EAAOzE,OAChBgM,EAAiBvH,EAAOwH,eAAiBxH,EAAOgH,eAChDI,EAAWpH,EAAOoH,SAClBK,EAAczH,EAAOyH,YACrBC,EAAQ1H,EAAO0H,MACfC,EAAeF,EACfG,EAASF,EACU,IAAnBH,GACFH,EAAW,EACXK,GAAc,EACdC,GAAQ,IAGRD,GADAL,GAAYT,EAAY3G,EAAOgH,gBAAkB,IACvB,EAC1BU,EAAQN,GAAY,GAEtBvN,EAAMpN,OAAOuT,EAAQ,CACnBoH,SAAUA,EACVK,YAAaA,EACbC,MAAOA,KAGLnM,EAAOsK,qBAAuBtK,EAAOuK,uBAA0BvK,EAAOkJ,gBAAkBlJ,EAAO0L,aAAejH,EAAO0G,qBAAqBC,GAE1Ic,IAAgBE,GAClB3H,EAAO/B,KAAK,yBAEVyJ,IAAUE,GACZ5H,EAAO/B,KAAK,oBAET0J,IAAiBF,GAAiBG,IAAWF,IAChD1H,EAAO/B,KAAK,YAGd+B,EAAO/B,KAAK,WAAYmJ,IAyKxBS,oBAtKF,WACE,IAWIC,EAXA9H,EAASvQ,KAETyR,EAASlB,EAAOkB,OAChB3F,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WACpB6F,EAActG,EAAOsG,YACrByB,EAAY/H,EAAO+H,UACnBjH,EAAYd,EAAOe,SAAWxF,EAAOwF,QAAQC,QAEjDE,EAAOnP,YAAcwJ,EAAuB,iBAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAgC,0BAAI,IAAOA,EAA8B,wBAAI,IAAOA,EAA8B,0BAIvOuM,EADEhH,EACYd,EAAOS,WAAWnH,KAAM,IAAOiC,EAAiB,WAAI,6BAAgC+K,EAAc,MAElGpF,EAAOhJ,GAAGoO,IAId7U,SAAS8J,EAAOyM,kBAExBzM,EAAO0M,OAELH,EAAY7V,SAASsJ,EAAO2M,qBAC9BzH,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAiCwM,EAAY,MAC7HtW,SAAS8J,EAAO4M,2BAEnB1H,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAgCwM,EAAY,MACvHtW,SAAS8J,EAAO4M,4BAIvB,IAAIC,EAAYN,EAAYjP,QAAS,IAAO0C,EAAiB,YAAIrD,GAAG,GAAGzG,SAAS8J,EAAO8M,gBACnF9M,EAAO0M,MAA6B,IAArBG,EAAUrb,SAC3Bqb,EAAYlH,EAAOhJ,GAAG,IACZzG,SAAS8J,EAAO8M,gBAG5B,IAAIC,EAAYR,EAAY7O,QAAS,IAAOsC,EAAiB,YAAIrD,GAAG,GAAGzG,SAAS8J,EAAOgN,gBACnFhN,EAAO0M,MAA6B,IAArBK,EAAUvb,SAC3Bub,EAAYpH,EAAOhJ,IAAI,IACbzG,SAAS8J,EAAOgN,gBAExBhN,EAAO0M,OAELG,EAAUnW,SAASsJ,EAAO2M,qBAC5BzH,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkC6M,EAAU/V,KAAK,2BAA8B,MAC/JZ,SAAS8J,EAAOiN,yBAEnB/H,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiC6M,EAAU/V,KAAK,2BAA8B,MACzJZ,SAAS8J,EAAOiN,yBAEjBF,EAAUrW,SAASsJ,EAAO2M,qBAC5BzH,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkC+M,EAAUjW,KAAK,2BAA8B,MAC/JZ,SAAS8J,EAAOkN,yBAEnBhI,EACG1S,SAAU,IAAOwN,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiC+M,EAAUjW,KAAK,2BAA8B,MACzJZ,SAAS8J,EAAOkN,2BAuGvBC,kBAlGF,SAA4BC,GAC1B,IASIjD,EATA1F,EAASvQ,KACTkX,EAAY3G,EAAOY,aAAeZ,EAAO2G,WAAa3G,EAAO2G,UAC7DtF,EAAarB,EAAOqB,WACpBD,EAAWpB,EAAOoB,SAClB7F,EAASyE,EAAOzE,OAChBqN,EAAgB5I,EAAOsG,YACvBuC,EAAoB7I,EAAO+H,UAC3Be,EAAoB9I,EAAO0F,UAC3BY,EAAcqC,EAElB,QAA2B,IAAhBrC,EAA6B,CACtC,IAAK,IAAIlW,EAAI,EAAGA,EAAIiR,EAAWtU,OAAQqD,GAAK,OACT,IAAtBiR,EAAWjR,EAAI,GACpBuW,GAAatF,EAAWjR,IAAMuW,EAAYtF,EAAWjR,EAAI,IAAOiR,EAAWjR,EAAI,GAAKiR,EAAWjR,IAAM,EACvGkW,EAAclW,EACLuW,GAAatF,EAAWjR,IAAMuW,EAAYtF,EAAWjR,EAAI,KAClEkW,EAAclW,EAAI,GAEXuW,GAAatF,EAAWjR,KACjCkW,EAAclW,GAIdmL,EAAOwN,sBACLzC,EAAc,QAA4B,IAAhBA,KAA+BA,EAAc,GAG/E,GAAIlF,EAASxQ,QAAQ+V,IAAc,EACjCjB,EAAYtE,EAASxQ,QAAQ+V,OACxB,CACL,IAAIqC,EAAOrG,KAAKiB,IAAIrI,EAAOoJ,mBAAoB2B,GAC/CZ,EAAYsD,EAAOrG,KAAKC,OAAO0D,EAAc0C,GAAQzN,EAAOiI,gBAG9D,GADIkC,GAAatE,EAASrU,SAAU2Y,EAAYtE,EAASrU,OAAS,GAC9DuZ,IAAgBsC,EAApB,CASA,IAAIb,EAAYzH,SAASN,EAAOkB,OAAOhJ,GAAGoO,GAAajU,KAAK,4BAA8BiU,EAAa,IAEvGzM,EAAMpN,OAAOuT,EAAQ,CACnB0F,UAAWA,EACXqC,UAAWA,EACXa,cAAeA,EACftC,YAAaA,IAEftG,EAAO/B,KAAK,qBACZ+B,EAAO/B,KAAK,mBACR4K,IAAsBd,GACxB/H,EAAO/B,KAAK,oBAEV+B,EAAOiJ,aAAejJ,EAAOzE,OAAO2N,qBACtClJ,EAAO/B,KAAK,oBAtBRyH,IAAcoD,IAChB9I,EAAO0F,UAAYA,EACnB1F,EAAO/B,KAAK,qBA6DhBkL,mBArCF,SAA6BlV,GAC3B,IAAI+L,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB6H,EAAQ/S,EAAE4D,EAAEvH,QAAQ2M,QAAS,IAAOkC,EAAiB,YAAI,GACzD6N,GAAa,EACjB,GAAIhG,EACF,IAAK,IAAIhT,EAAI,EAAGA,EAAI4P,EAAOkB,OAAOnU,OAAQqD,GAAK,EACzC4P,EAAOkB,OAAO9Q,KAAOgT,IAASgG,GAAa,GAInD,IAAIhG,IAASgG,EAUX,OAFApJ,EAAOqJ,kBAAe3U,OACtBsL,EAAOsJ,kBAAe5U,GARtBsL,EAAOqJ,aAAejG,EAClBpD,EAAOe,SAAWf,EAAOzE,OAAOwF,QAAQC,QAC1ChB,EAAOsJ,aAAehJ,SAASjQ,EAAE+S,GAAO/Q,KAAK,2BAA4B,IAEzE2N,EAAOsJ,aAAejZ,EAAE+S,GAAOrL,QAO/BwD,EAAOgO,0BAA+C7U,IAAxBsL,EAAOsJ,cAA8BtJ,EAAOsJ,eAAiBtJ,EAAOsG,aACpGtG,EAAOuJ,wBA0KX,IAAI5C,EAAY,CACdxM,aA3JF,SAAuBC,QACP,IAATA,IAAkBA,EAAO3K,KAAK2Q,eAAiB,IAAM,KAE1D,IAAIJ,EAASvQ,KAET8L,EAASyE,EAAOzE,OAChBoF,EAAMX,EAAOY,aACb+F,EAAY3G,EAAO2G,UACnBlG,EAAaT,EAAOS,WAExB,GAAIlF,EAAOiO,iBACT,OAAO7I,GAAOgG,EAAYA,EAE5B,GAAIpL,EAAOkG,QACT,OAAOkF,EAGT,IAAI8C,EAAmB5P,EAAMM,aAAasG,EAAW,GAAIrG,GAGzD,OAFIuG,IAAO8I,GAAoBA,GAExBA,GAAoB,GAwI3BC,aArIF,SAAuB/C,EAAWgD,GAChC,IAAI3J,EAASvQ,KACTkR,EAAMX,EAAOY,aACbrF,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WACpBmJ,EAAY5J,EAAO4J,UACnBxC,EAAWpH,EAAOoH,SAClByC,EAAI,EACJC,EAAI,EAGJ9J,EAAOI,eACTyJ,EAAIlJ,GAAOgG,EAAYA,EAEvBmD,EAAInD,EAGFpL,EAAO0I,eACT4F,EAAIlH,KAAKC,MAAMiH,GACfC,EAAInH,KAAKC,MAAMkH,IAGbvO,EAAOkG,QACTmI,EAAU5J,EAAOI,eAAiB,aAAe,aAAeJ,EAAOI,gBAAkByJ,GAAKC,EACpFvO,EAAOiO,kBACjB/I,EAAWxN,UAAW,eAAiB4W,EAAI,OAASC,EAA/B,YAEvB9J,EAAO+J,kBAAoB/J,EAAO2G,UAClC3G,EAAO2G,UAAY3G,EAAOI,eAAiByJ,EAAIC,EAI/C,IAAIvC,EAAiBvH,EAAOwH,eAAiBxH,EAAOgH,gBAC7B,IAAnBO,EACY,GAECZ,EAAY3G,EAAOgH,gBAAkB,KAElCI,GAClBpH,EAAOqH,eAAeV,GAGxB3G,EAAO/B,KAAK,eAAgB+B,EAAO2G,UAAWgD,IA4F9C3C,aAzFF,WACE,OAASvX,KAAK2R,SAAS,IAyFvBoG,aAtFF,WACE,OAAS/X,KAAK2R,SAAS3R,KAAK2R,SAASrU,OAAS,IAsF9Cid,YAnFF,SAAsBrD,EAAWV,EAAOgE,EAAcC,EAAiBC,GACrE,IAAI7d,OAEe,IAAdqa,IAAuBA,EAAY,QACzB,IAAVV,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,QACrB,IAApBC,IAA6BA,GAAkB,GACpD,IAAIlK,EAASvQ,KAET8L,EAASyE,EAAOzE,OAChBqO,EAAY5J,EAAO4J,UAEvB,GAAI5J,EAAOoK,WAAa7O,EAAO8O,+BAC7B,OAAO,EAGT,IAEIC,EAFAtD,EAAehH,EAAOgH,eACtBQ,EAAexH,EAAOwH,eAS1B,GAPmD8C,EAA/CJ,GAAmBvD,EAAYK,EAA+BA,EACzDkD,GAAmBvD,EAAYa,EAA+BA,EACjDb,EAGtB3G,EAAOqH,eAAeiD,GAElB/O,EAAOkG,QAAS,CAClB,IAAI8I,EAAMvK,EAAOI,eAWjB,OAVc,IAAV6F,EACF2D,EAAUW,EAAM,aAAe,cAAgBD,EAG3CV,EAAUY,SACZZ,EAAUY,WAAWle,EAAM,IAAQie,EAAM,OAAS,QAAUD,EAAche,EAAIme,SAAW,SAAUne,IAEnGsd,EAAUW,EAAM,aAAe,cAAgBD,GAG5C,EAqCT,OAlCc,IAAVrE,GACFjG,EAAOoG,cAAc,GACrBpG,EAAO0J,aAAaY,GAChBL,IACFjK,EAAO/B,KAAK,wBAAyBgI,EAAOkE,GAC5CnK,EAAO/B,KAAK,oBAGd+B,EAAOoG,cAAcH,GACrBjG,EAAO0J,aAAaY,GAChBL,IACFjK,EAAO/B,KAAK,wBAAyBgI,EAAOkE,GAC5CnK,EAAO/B,KAAK,oBAET+B,EAAOoK,YACVpK,EAAOoK,WAAY,EACdpK,EAAO0K,oCACV1K,EAAO0K,kCAAoC,SAAuBzW,GAC3D+L,IAAUA,EAAO2K,WAClB1W,EAAEvH,SAAW+C,OACjBuQ,EAAOS,WAAW,GAAGpT,oBAAoB,gBAAiB2S,EAAO0K,mCACjE1K,EAAOS,WAAW,GAAGpT,oBAAoB,sBAAuB2S,EAAO0K,mCACvE1K,EAAO0K,kCAAoC,YACpC1K,EAAO0K,kCACVT,GACFjK,EAAO/B,KAAK,oBAIlB+B,EAAOS,WAAW,GAAGrT,iBAAiB,gBAAiB4S,EAAO0K,mCAC9D1K,EAAOS,WAAW,GAAGrT,iBAAiB,sBAAuB4S,EAAO0K,sCAIjE,IA0FT,IAAIE,EAAe,CACjBxE,cAhFF,SAAwB/S,EAAUsW,GAChC,IAAI3J,EAASvQ,KAERuQ,EAAOzE,OAAOkG,SACjBzB,EAAOS,WAAWrN,WAAWC,GAG/B2M,EAAO/B,KAAK,gBAAiB5K,EAAUsW,IA0EvCkB,gBAvEF,SAA0BZ,EAAca,QAChB,IAAjBb,IAA0BA,GAAe,GAE9C,IAAIjK,EAASvQ,KACT6W,EAActG,EAAOsG,YACrB/K,EAASyE,EAAOzE,OAChBqN,EAAgB5I,EAAO4I,cAC3B,IAAIrN,EAAOkG,QAAX,CACIlG,EAAO0L,YACTjH,EAAOgG,mBAGT,IAAI+E,EAAMD,EASV,GARKC,IACgCA,EAA/BzE,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAGf5I,EAAO/B,KAAK,mBAERgM,GAAgB3D,IAAgBsC,EAAe,CACjD,GAAY,UAARmC,EAEF,YADA/K,EAAO/B,KAAK,6BAGd+B,EAAO/B,KAAK,8BACA,SAAR8M,EACF/K,EAAO/B,KAAK,4BAEZ+B,EAAO/B,KAAK,+BA0ChBnI,cArCF,SAA0BmU,EAAca,QAChB,IAAjBb,IAA0BA,GAAe,GAE9C,IAAIjK,EAASvQ,KACT6W,EAActG,EAAOsG,YACrBsC,EAAgB5I,EAAO4I,cACvBrN,EAASyE,EAAOzE,OAEpB,GADAyE,EAAOoK,WAAY,GACf7O,EAAOkG,QAAX,CACAzB,EAAOoG,cAAc,GAErB,IAAI2E,EAAMD,EASV,GARKC,IACgCA,EAA/BzE,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAGf5I,EAAO/B,KAAK,iBAERgM,GAAgB3D,IAAgBsC,EAAe,CACjD,GAAY,UAARmC,EAEF,YADA/K,EAAO/B,KAAK,2BAGd+B,EAAO/B,KAAK,4BACA,SAAR8M,EACF/K,EAAO/B,KAAK,0BAEZ+B,EAAO/B,KAAK,8BAkTlB,IAAImF,EAAQ,CACV4H,QAxSF,SAAkBjT,EAAOkO,EAAOgE,EAAcE,GAC5C,IAAI7d,OAEW,IAAVyL,IAAmBA,EAAQ,QACjB,IAAVkO,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,GAC9C,IAAIjK,EAASvQ,KACT+R,EAAazJ,EACbyJ,EAAa,IAAKA,EAAa,GAEnC,IAAIjG,EAASyE,EAAOzE,OAChB6F,EAAWpB,EAAOoB,SAClBC,EAAarB,EAAOqB,WACpBuH,EAAgB5I,EAAO4I,cACvBtC,EAActG,EAAOsG,YACrB3F,EAAMX,EAAOY,aACbgJ,EAAY5J,EAAO4J,UACvB,GAAI5J,EAAOoK,WAAa7O,EAAO8O,+BAC7B,OAAO,EAGT,IAAIrB,EAAOrG,KAAKiB,IAAI5D,EAAOzE,OAAOoJ,mBAAoBnD,GAClDkE,EAAYsD,EAAOrG,KAAKC,OAAOpB,EAAawH,GAAQhJ,EAAOzE,OAAOiI,gBAClEkC,GAAatE,EAASrU,SAAU2Y,EAAYtE,EAASrU,OAAS,IAE7DuZ,GAAe/K,EAAO0P,cAAgB,MAAQrC,GAAiB,IAAMqB,GACxEjK,EAAO/B,KAAK,0BAGd,IAuBI6M,EAvBAnE,GAAavF,EAASsE,GAM1B,GAHA1F,EAAOqH,eAAeV,GAGlBpL,EAAOwN,oBACT,IAAK,IAAI3Y,EAAI,EAAGA,EAAIiR,EAAWtU,OAAQqD,GAAK,GACrCuS,KAAKC,MAAkB,IAAZ+D,IAAoBhE,KAAKC,MAAsB,IAAhBvB,EAAWjR,MACxDoR,EAAapR,GAKnB,GAAI4P,EAAOiJ,aAAezH,IAAe8E,EAAa,CACpD,IAAKtG,EAAOkL,gBAAkBvE,EAAY3G,EAAO2G,WAAaA,EAAY3G,EAAOgH,eAC/E,OAAO,EAET,IAAKhH,EAAOmL,gBAAkBxE,EAAY3G,EAAO2G,WAAaA,EAAY3G,EAAOwH,iBAC1ElB,GAAe,KAAO9E,EAAc,OAAO,EAWpD,GANgCsJ,EAA5BtJ,EAAa8E,EAA2B,OACnC9E,EAAa8E,EAA2B,OAC9B,QAId3F,IAAQgG,IAAc3G,EAAO2G,YAAgBhG,GAAOgG,IAAc3G,EAAO2G,UAc5E,OAbA3G,EAAO0I,kBAAkBlH,GAErBjG,EAAO0L,YACTjH,EAAOgG,mBAEThG,EAAO6H,sBACe,UAAlBtM,EAAOqJ,QACT5E,EAAO0J,aAAa/C,GAEJ,UAAdmE,IACF9K,EAAO6K,gBAAgBZ,EAAca,GACrC9K,EAAOlK,cAAcmU,EAAca,KAE9B,EAET,GAAIvP,EAAOkG,QAAS,CAClB,IAAI8I,EAAMvK,EAAOI,eACbgL,GAAKzE,EAcT,OAbIhG,IACFyK,EAAIxB,EAAUyB,YAAczB,EAAUtT,YAAc8U,GAExC,IAAVnF,EACF2D,EAAUW,EAAM,aAAe,aAAea,EAG1CxB,EAAUY,SACZZ,EAAUY,WAAWle,EAAM,IAAQie,EAAM,OAAS,OAASa,EAAG9e,EAAIme,SAAW,SAAUne,IAEvFsd,EAAUW,EAAM,aAAe,aAAea,GAG3C,EAoCT,OAjCc,IAAVnF,GACFjG,EAAOoG,cAAc,GACrBpG,EAAO0J,aAAa/C,GACpB3G,EAAO0I,kBAAkBlH,GACzBxB,EAAO6H,sBACP7H,EAAO/B,KAAK,wBAAyBgI,EAAOkE,GAC5CnK,EAAO6K,gBAAgBZ,EAAca,GACrC9K,EAAOlK,cAAcmU,EAAca,KAEnC9K,EAAOoG,cAAcH,GACrBjG,EAAO0J,aAAa/C,GACpB3G,EAAO0I,kBAAkBlH,GACzBxB,EAAO6H,sBACP7H,EAAO/B,KAAK,wBAAyBgI,EAAOkE,GAC5CnK,EAAO6K,gBAAgBZ,EAAca,GAChC9K,EAAOoK,YACVpK,EAAOoK,WAAY,EACdpK,EAAOsL,gCACVtL,EAAOsL,8BAAgC,SAAuBrX,GACvD+L,IAAUA,EAAO2K,WAClB1W,EAAEvH,SAAW+C,OACjBuQ,EAAOS,WAAW,GAAGpT,oBAAoB,gBAAiB2S,EAAOsL,+BACjEtL,EAAOS,WAAW,GAAGpT,oBAAoB,sBAAuB2S,EAAOsL,+BACvEtL,EAAOsL,8BAAgC,YAChCtL,EAAOsL,8BACdtL,EAAOlK,cAAcmU,EAAca,MAGvC9K,EAAOS,WAAW,GAAGrT,iBAAiB,gBAAiB4S,EAAOsL,+BAC9DtL,EAAOS,WAAW,GAAGrT,iBAAiB,sBAAuB4S,EAAOsL,kCAIjE,GA0KPC,YAvKF,SAAsBxT,EAAOkO,EAAOgE,EAAcE,QACjC,IAAVpS,IAAmBA,EAAQ,QACjB,IAAVkO,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IAAIjK,EAASvQ,KACT+b,EAAWzT,EAKf,OAJIiI,EAAOzE,OAAO0M,OAChBuD,GAAYxL,EAAOyL,cAGdzL,EAAOgL,QAAQQ,EAAUvF,EAAOgE,EAAcE,IA6JrDuB,UAzJF,SAAoBzF,EAAOgE,EAAcE,QACxB,IAAVlE,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IAAIjK,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB6O,EAAYpK,EAAOoK,UACnBuB,EAAY3L,EAAOsG,YAAc/K,EAAOoJ,mBAAqB,EAAIpJ,EAAOiI,eAC5E,GAAIjI,EAAO0M,KAAM,CACf,GAAImC,EAAa,OAAO,EACxBpK,EAAO4L,UAEP5L,EAAO6L,YAAc7L,EAAOS,WAAW,GAAG3J,WAE5C,OAAOkJ,EAAOgL,QAAQhL,EAAOsG,YAAcqF,EAAW1F,EAAOgE,EAAcE,IA4I3E2B,UAxIF,SAAoB7F,EAAOgE,EAAcE,QACxB,IAAVlE,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,GAE9C,IAAIjK,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB6O,EAAYpK,EAAOoK,UACnBhJ,EAAWpB,EAAOoB,SAClBC,EAAarB,EAAOqB,WACpBT,EAAeZ,EAAOY,aAE1B,GAAIrF,EAAO0M,KAAM,CACf,GAAImC,EAAa,OAAO,EACxBpK,EAAO4L,UAEP5L,EAAO6L,YAAc7L,EAAOS,WAAW,GAAG3J,WAG5C,SAASiV,EAAUC,GACjB,OAAIA,EAAM,GAAarJ,KAAKC,MAAMD,KAAK+B,IAAIsH,IACpCrJ,KAAKC,MAAMoJ,GAEpB,IAWIC,EAXAC,EAAsBH,EALVnL,EAAeZ,EAAO2G,WAAa3G,EAAO2G,WAMtDwF,EAAqB/K,EAAS1G,KAAI,SAAUsR,GAAO,OAAOD,EAAUC,MAIpEI,GAHuB/K,EAAW3G,KAAI,SAAUsR,GAAO,OAAOD,EAAUC,MAE1D5K,EAAS+K,EAAmBvb,QAAQsb,IACvC9K,EAAS+K,EAAmBvb,QAAQsb,GAAuB,IAW1E,YAVwB,IAAbE,GAA4B7Q,EAAOkG,SAC5CL,EAASvU,SAAQ,SAAUyY,IACpB8G,GAAYF,GAAuB5G,IAAQ8G,EAAW9G,WAIvC,IAAb8G,IACTH,EAAY5K,EAAWzQ,QAAQwb,IACf,IAAKH,EAAYjM,EAAOsG,YAAc,GAEjDtG,EAAOgL,QAAQiB,EAAWhG,EAAOgE,EAAcE,IAmGtDkC,WA/FF,SAAqBpG,EAAOgE,EAAcE,GAKxC,YAJe,IAAVlE,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,GAEjCxa,KACCub,QADDvb,KACgB6W,YAAaL,EAAOgE,EAAcE,IA2F/DmC,eAvFF,SAAyBrG,EAAOgE,EAAcE,EAAUoC,QACvC,IAAVtG,IAAmBA,EAAQxW,KAAK8L,OAAO0K,YACtB,IAAjBgE,IAA0BA,GAAe,QAC3B,IAAdsC,IAAuBA,EAAY,IAExC,IAAIvM,EAASvQ,KACTsI,EAAQiI,EAAOsG,YACf0C,EAAOrG,KAAKiB,IAAI5D,EAAOzE,OAAOoJ,mBAAoB5M,GAClD2N,EAAYsD,EAAOrG,KAAKC,OAAO7K,EAAQiR,GAAQhJ,EAAOzE,OAAOiI,gBAE7DmD,EAAY3G,EAAOY,aAAeZ,EAAO2G,WAAa3G,EAAO2G,UAEjE,GAAIA,GAAa3G,EAAOoB,SAASsE,GAAY,CAG3C,IAAI8G,EAAcxM,EAAOoB,SAASsE,GAE7BiB,EAAY6F,GADFxM,EAAOoB,SAASsE,EAAY,GACC8G,GAAeD,IACzDxU,GAASiI,EAAOzE,OAAOiI,oBAEpB,CAGL,IAAI4I,EAAWpM,EAAOoB,SAASsE,EAAY,GAEtCiB,EAAYyF,IADGpM,EAAOoB,SAASsE,GACW0G,GAAYG,IACzDxU,GAASiI,EAAOzE,OAAOiI,gBAM3B,OAHAzL,EAAQ4K,KAAKK,IAAIjL,EAAO,GACxBA,EAAQ4K,KAAKiB,IAAI7L,EAAOiI,EAAOqB,WAAWtU,OAAS,GAE5CiT,EAAOgL,QAAQjT,EAAOkO,EAAOgE,EAAcE,IAwDlDZ,oBArDF,WACE,IAMIxB,EANA/H,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WAEpBqC,EAAyC,SAAzBvH,EAAOuH,cAA2B9C,EAAOyM,uBAAyBlR,EAAOuH,cACzF4J,EAAe1M,EAAOsJ,aAE1B,GAAI/N,EAAO0M,KAAM,CACf,GAAIjI,EAAOoK,UAAa,OACxBrC,EAAYzH,SAASjQ,EAAE2P,EAAOqJ,cAAchX,KAAK,2BAA4B,IACzEkJ,EAAOkJ,eAENiI,EAAe1M,EAAOyL,aAAgB3I,EAAgB,GACnD4J,EAAgB1M,EAAOkB,OAAOnU,OAASiT,EAAOyL,aAAiB3I,EAAgB,GAEnF9C,EAAO4L,UACPc,EAAejM,EACZ1S,SAAU,IAAOwN,EAAiB,WAAI,6BAAgCwM,EAAY,WAAexM,EAA0B,oBAAI,KAC/HrD,GAAG,GACHH,QAEH8B,EAAMG,UAAS,WACbgG,EAAOgL,QAAQ0B,OAGjB1M,EAAOgL,QAAQ0B,GAERA,EAAe1M,EAAOkB,OAAOnU,OAAS+V,GAC/C9C,EAAO4L,UACPc,EAAejM,EACZ1S,SAAU,IAAOwN,EAAiB,WAAI,6BAAgCwM,EAAY,WAAexM,EAA0B,oBAAI,KAC/HrD,GAAG,GACHH,QAEH8B,EAAMG,UAAS,WACbgG,EAAOgL,QAAQ0B,OAGjB1M,EAAOgL,QAAQ0B,QAGjB1M,EAAOgL,QAAQ0B,KA6GnB,IAAIzE,EAAO,CACT0E,WAhGF,WACE,IAAI3M,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WAExBA,EAAW1S,SAAU,IAAOwN,EAAiB,WAAI,IAAOA,EAA0B,qBAAIvJ,SAEtF,IAAIkP,EAAST,EAAW1S,SAAU,IAAOwN,EAAiB,YAE1D,GAAIA,EAAOqR,uBAAwB,CACjC,IAAIC,EAAiBtR,EAAOiI,eAAkBtC,EAAOnU,OAASwO,EAAOiI,eACrE,GAAIqJ,IAAmBtR,EAAOiI,eAAgB,CAC5C,IAAK,IAAIpT,EAAI,EAAGA,EAAIyc,EAAgBzc,GAAK,EAAG,CAC1C,IAAI0c,EAAYzc,EAAErD,EAAIc,cAAc,QAAQ2D,SAAW8J,EAAiB,WAAI,IAAOA,EAAsB,iBACzGkF,EAAWrI,OAAO0U,GAEpB5L,EAAST,EAAW1S,SAAU,IAAOwN,EAAiB,aAI7B,SAAzBA,EAAOuH,eAA6BvH,EAAOkQ,eAAgBlQ,EAAOkQ,aAAevK,EAAOnU,QAE5FiT,EAAOyL,aAAe9I,KAAKE,KAAKtM,WAAWgF,EAAOkQ,cAAgBlQ,EAAOuH,cAAe,KACxF9C,EAAOyL,cAAgBlQ,EAAOwR,qBAC1B/M,EAAOyL,aAAevK,EAAOnU,SAC/BiT,EAAOyL,aAAevK,EAAOnU,QAG/B,IAAIigB,EAAgB,GAChBC,EAAe,GACnB/L,EAAO1J,MAAK,SAAUO,EAAOhF,GAC3B,IAAIqQ,EAAQ/S,EAAE0C,GACVgF,EAAQiI,EAAOyL,cAAgBwB,EAAalc,KAAKgC,GACjDgF,EAAQmJ,EAAOnU,QAAUgL,GAASmJ,EAAOnU,OAASiT,EAAOyL,cAAgBuB,EAAcjc,KAAKgC,GAChGqQ,EAAM/Q,KAAK,0BAA2B0F,MAExC,IAAK,IAAI+M,EAAM,EAAGA,EAAMmI,EAAalgB,OAAQ+X,GAAO,EAClDrE,EAAWrI,OAAO/H,EAAE4c,EAAanI,GAAKoI,WAAU,IAAOzb,SAAS8J,EAAO2M,sBAEzE,IAAK,IAAIlD,EAAMgI,EAAcjgB,OAAS,EAAGiY,GAAO,EAAGA,GAAO,EACxDvE,EAAWhI,QAAQpI,EAAE2c,EAAchI,GAAKkI,WAAU,IAAOzb,SAAS8J,EAAO2M,uBAyD3E0D,QArDF,WACE,IAAI5L,EAASvQ,KAEbuQ,EAAO/B,KAAK,iBAEZ,IAOIuN,EAPAlF,EAActG,EAAOsG,YACrBpF,EAASlB,EAAOkB,OAChBuK,EAAezL,EAAOyL,aACtBN,EAAiBnL,EAAOmL,eACxBD,EAAiBlL,EAAOkL,eACxB9J,EAAWpB,EAAOoB,SAClBT,EAAMX,EAAOY,aAEjBZ,EAAOmL,gBAAiB,EACxBnL,EAAOkL,gBAAiB,EAExB,IACIiC,GADiB/L,EAASkF,GACHtG,EAAO7F,eAG9BmM,EAAcmF,GAChBD,EAAYtK,EAAOnU,OAAyB,EAAf0e,EAAqBnF,EAClDkF,GAAYC,EACOzL,EAAOgL,QAAQQ,EAAU,GAAG,GAAO,IACzB,IAAT2B,GAClBnN,EAAO0J,cAAc/I,GAAOX,EAAO2G,UAAY3G,EAAO2G,WAAawG,IAE5D7G,GAAepF,EAAOnU,OAAS0e,IAExCD,GAAYtK,EAAOnU,OAASuZ,EAAcmF,EAC1CD,GAAYC,EACSzL,EAAOgL,QAAQQ,EAAU,GAAG,GAAO,IACzB,IAAT2B,GACpBnN,EAAO0J,cAAc/I,GAAOX,EAAO2G,UAAY3G,EAAO2G,WAAawG,IAGvEnN,EAAOmL,eAAiBA,EACxBnL,EAAOkL,eAAiBA,EAExBlL,EAAO/B,KAAK,YAeZmP,YAZF,WACE,IAAIpN,EAASvQ,KACTgR,EAAaT,EAAOS,WACpBlF,EAASyE,EAAOzE,OAChB2F,EAASlB,EAAOkB,OACpBT,EAAW1S,SAAU,IAAOwN,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,KAAQA,EAAiB,WAAI,IAAOA,EAAsB,iBAAIvJ,SACpJkP,EAAOtO,WAAW,6BAyBpB,IAAIya,EAAa,CACfC,cAjBF,SAAwBC,GACtB,IAAIvN,EAASvQ,KACb,KAAI8M,EAAQC,QAAUwD,EAAOzE,OAAOiS,eAAkBxN,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,UAAazN,EAAOzE,OAAOkG,SAAvH,CACA,IAAI1O,EAAKiN,EAAOjN,GAChBA,EAAG9E,MAAMyf,OAAS,OAClB3a,EAAG9E,MAAMyf,OAASH,EAAS,mBAAqB,eAChDxa,EAAG9E,MAAMyf,OAASH,EAAS,eAAiB,YAC5Cxa,EAAG9E,MAAMyf,OAASH,EAAS,WAAa,SAWxCI,gBARF,WACE,IAAI3N,EAASvQ,KACT8M,EAAQC,OAAUwD,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,UAAazN,EAAOzE,OAAOkG,UACvFzB,EAAOjN,GAAG9E,MAAMyf,OAAS,MAqK3B,IASME,EACAC,EAEAC,EAkBAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA1CFC,EAAe,CACjBC,YA9JF,SAAsB1N,GACpB,IAAIlB,EAASvQ,KACTgR,EAAaT,EAAOS,WACpBlF,EAASyE,EAAOzE,OAIpB,GAHIA,EAAO0M,MACTjI,EAAOoN,cAEa,iBAAXlM,GAAuB,WAAYA,EAC5C,IAAK,IAAI9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAClC8Q,EAAO9Q,IAAMqQ,EAAWrI,OAAO8I,EAAO9Q,SAG5CqQ,EAAWrI,OAAO8I,GAEhB3F,EAAO0M,MACTjI,EAAO2M,aAEHpR,EAAOsB,UAAYN,EAAQM,UAC/BmD,EAAOJ,UA6ITiP,aAzIF,SAAuB3N,GACrB,IAAIlB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WACpB6F,EAActG,EAAOsG,YAErB/K,EAAO0M,MACTjI,EAAOoN,cAET,IAAIzE,EAAiBrC,EAAc,EACnC,GAAsB,iBAAXpF,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAClC8Q,EAAO9Q,IAAMqQ,EAAWhI,QAAQyI,EAAO9Q,IAE7CuY,EAAiBrC,EAAcpF,EAAOnU,YAEtC0T,EAAWhI,QAAQyI,GAEjB3F,EAAO0M,MACTjI,EAAO2M,aAEHpR,EAAOsB,UAAYN,EAAQM,UAC/BmD,EAAOJ,SAETI,EAAOgL,QAAQrC,EAAgB,GAAG,IAkHlCmG,SA/GF,SAAmB/W,EAAOmJ,GACxB,IAAIlB,EAASvQ,KACTgR,EAAaT,EAAOS,WACpBlF,EAASyE,EAAOzE,OAEhBwT,EADc/O,EAAOsG,YAErB/K,EAAO0M,OACT8G,GAAqB/O,EAAOyL,aAC5BzL,EAAOoN,cACPpN,EAAOkB,OAAST,EAAW1S,SAAU,IAAOwN,EAAiB,aAE/D,IAAIyT,EAAahP,EAAOkB,OAAOnU,OAC/B,GAAIgL,GAAS,EACXiI,EAAO6O,aAAa3N,QAGtB,GAAInJ,GAASiX,EACXhP,EAAO4O,YAAY1N,OADrB,CAOA,IAHA,IAAIyH,EAAiBoG,EAAoBhX,EAAQgX,EAAoB,EAAIA,EAErEE,EAAe,GACV7e,EAAI4e,EAAa,EAAG5e,GAAK2H,EAAO3H,GAAK,EAAG,CAC/C,IAAI8e,EAAelP,EAAOkB,OAAOhJ,GAAG9H,GACpC8e,EAAald,SACbid,EAAa7a,QAAQ8a,GAGvB,GAAsB,iBAAXhO,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI4D,EAAM,EAAGA,EAAM5D,EAAOnU,OAAQ+X,GAAO,EACxC5D,EAAO4D,IAAQrE,EAAWrI,OAAO8I,EAAO4D,IAE9C6D,EAAiBoG,EAAoBhX,EAAQgX,EAAoB7N,EAAOnU,OAASgiB,OAEjFtO,EAAWrI,OAAO8I,GAGpB,IAAK,IAAI8D,EAAM,EAAGA,EAAMiK,EAAaliB,OAAQiY,GAAO,EAClDvE,EAAWrI,OAAO6W,EAAajK,IAG7BzJ,EAAO0M,MACTjI,EAAO2M,aAEHpR,EAAOsB,UAAYN,EAAQM,UAC/BmD,EAAOJ,SAELrE,EAAO0M,KACTjI,EAAOgL,QAAQrC,EAAiB3I,EAAOyL,aAAc,GAAG,GAExDzL,EAAOgL,QAAQrC,EAAgB,GAAG,KA6DpCwG,YAzDF,SAAsBC,GACpB,IAAIpP,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChBkF,EAAaT,EAAOS,WAGpBsO,EAFc/O,EAAOsG,YAGrB/K,EAAO0M,OACT8G,GAAqB/O,EAAOyL,aAC5BzL,EAAOoN,cACPpN,EAAOkB,OAAST,EAAW1S,SAAU,IAAOwN,EAAiB,aAE/D,IACI8T,EADA1G,EAAiBoG,EAGrB,GAA6B,iBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAIhf,EAAI,EAAGA,EAAIgf,EAAcriB,OAAQqD,GAAK,EAC7Cif,EAAgBD,EAAchf,GAC1B4P,EAAOkB,OAAOmO,IAAkBrP,EAAOkB,OAAOhJ,GAAGmX,GAAerd,SAChEqd,EAAgB1G,IAAkBA,GAAkB,GAE1DA,EAAiBhG,KAAKK,IAAI2F,EAAgB,QAE1C0G,EAAgBD,EACZpP,EAAOkB,OAAOmO,IAAkBrP,EAAOkB,OAAOhJ,GAAGmX,GAAerd,SAChEqd,EAAgB1G,IAAkBA,GAAkB,GACxDA,EAAiBhG,KAAKK,IAAI2F,EAAgB,GAGxCpN,EAAO0M,MACTjI,EAAO2M,aAGHpR,EAAOsB,UAAYN,EAAQM,UAC/BmD,EAAOJ,SAELrE,EAAO0M,KACTjI,EAAOgL,QAAQrC,EAAiB3I,EAAOyL,aAAc,GAAG,GAExDzL,EAAOgL,QAAQrC,EAAgB,GAAG,IAmBpC2G,gBAfF,WAIE,IAHA,IAEIF,EAAgB,GACXhf,EAAI,EAAGA,EAHHX,KAGcyR,OAAOnU,OAAQqD,GAAK,EAC7Cgf,EAAcre,KAAKX,GAJRX,KAMN0f,YAAYC,KAWjBG,GACE3B,EAAW7e,EAAIE,UAAU2e,SACzBC,EAAK9e,EAAIE,UAAUC,UAEnB4e,EAAS,CACX0B,KAAK,EACLvB,SAAS,EACTwB,eAAe,EACfC,SAAS,EACTtB,QAAQ,EACRD,MAAM,EACND,MAAM,EACNI,MAAM,EACND,IAAI,EACJE,SAAS,EACTG,OAAO,EACPF,SAAS,EACTmB,WAAY5gB,EAAI4gB,UAAW5gB,EAAI6gB,UAC/BA,YAAa7gB,EAAI4gB,UAAW5gB,EAAI6gB,UAChCnB,UAAU,GAGRV,EAAchf,EAAIe,OAAOgQ,MACzBkO,EAAejf,EAAIe,OAAOiQ,OAE1BkO,EAAUJ,EAAG7c,MAAM,+BACnBkd,EAAOL,EAAG7c,MAAM,wBAChBmd,EAAON,EAAG7c,MAAM,2BAChBod,GAAUF,GAAQL,EAAG7c,MAAM,8BAC3Bqd,EAAKR,EAAGjd,QAAQ,UAAY,GAAKid,EAAGjd,QAAQ,aAAe,EAC3D0d,EAAOT,EAAGjd,QAAQ,UAAY,EAC9B2d,EAAUV,EAAGjd,QAAQ,WAAa,GAAKid,EAAGjd,QAAQ,aAAe,EACjE4d,EAAuB,UAAbZ,EACVa,EAAWZ,EAAGgC,cAAcjf,QAAQ,aAAe,EACnD8d,EAAqB,aAAbd,GAGPM,GACAQ,GACAnS,EAAQC,QAEQ,OAAhBuR,GAAyC,OAAjBC,GACL,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,KAG7BE,EAAOL,EAAG7c,MAAM,uBAChB0d,GAAQ,GAGVZ,EAAOO,GAAKA,EACZP,EAAOQ,KAAOA,EACdR,EAAOS,QAAUA,EAGbN,IAAYO,IACdV,EAAOgC,GAAK,UACZhC,EAAOiC,UAAY9B,EAAQ,GAC3BH,EAAOG,SAAU,EACjBH,EAAO2B,cAAgB5B,EAAGgC,cAAcjf,QAAQ,WAAa,IAE3Dsd,GAAQE,GAAUD,KACpBL,EAAOgC,GAAK,MACZhC,EAAO0B,KAAM,GAGXpB,IAAWD,IACbL,EAAOiC,UAAY3B,EAAO,GAAGxT,QAAQ,KAAM,KAC3CkT,EAAOM,QAAS,GAEdF,IACFJ,EAAOiC,UAAY7B,EAAK,GAAGtT,QAAQ,KAAM,KACzCkT,EAAOI,MAAO,GAEZC,IACFL,EAAOiC,UAAY5B,EAAK,GAAKA,EAAK,GAAGvT,QAAQ,KAAM,KAAO,KAC1DkT,EAAOK,MAAO,GAGZL,EAAO0B,KAAO1B,EAAOiC,WAAalC,EAAGjd,QAAQ,aAAe,GACvB,OAAnCkd,EAAOiC,UAAU9e,MAAM,KAAK,KAC9B6c,EAAOiC,UAAYlC,EAAGgC,cAAc5e,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxE6c,EAAOkC,YAAc5B,GAAUF,GAAQC,KAAUN,EAAG7c,MAAM,gCAAiCjC,EAAIE,UAAUghB,aACnGlhB,EAAIkB,YAAclB,EAAIkB,WAAW,8BAA8B2H,QACrEkW,EAAOoC,QAAUpC,EAAOkC,QACxBlC,EAAOmC,WAAanC,EAAOkC,QAG3BlC,EAAO4B,UAAY5B,EAAO0B,KAAO1B,EAAOG,UAAYQ,EAChDX,EAAO4B,UACT5B,EAAOW,SAAWA,EAClBX,EAAOY,MAAQA,EACfZ,EAAOU,QAAUA,EACbV,EAAOY,QACTZ,EAAOgC,GAAK,SAEVhC,EAAOU,UACTV,EAAOgC,GAAK,YAKhBhC,EAAOqC,WAAaphB,EAAIqhB,kBAAoB,EAGrCtC,GAGT,SAASuC,EAActb,GACrB,IAAIiL,EAASvQ,KACTqD,EAAOkN,EAAOsQ,gBACd/U,EAASyE,EAAOzE,OAChBgV,EAAUvQ,EAAOuQ,QAErB,IAAIvQ,EAAOoK,YAAa7O,EAAO8O,+BAA/B,CAGA,IAAIpW,EAAIc,EACJd,EAAEuc,gBAAiBvc,EAAIA,EAAEuc,eAC7B,IAAIC,EAAYpgB,EAAE4D,EAAEvH,QAEpB,IAAiC,YAA7B6O,EAAOmV,mBACJD,EAAUpX,QAAQ2G,EAAO4J,WAAW7c,UAE3C+F,EAAK6d,aAA0B,eAAX1c,EAAE2c,MACjB9d,EAAK6d,gBAAgB,UAAW1c,IAAiB,IAAZA,EAAE4c,WACvC/d,EAAK6d,cAAgB,WAAY1c,GAAKA,EAAE6c,OAAS,GAClDhe,EAAKie,WAAaje,EAAKke,UAC3B,GAAIzV,EAAO0V,WAAaR,EAAUpX,QAAQkC,EAAO2V,kBAAoB3V,EAAO2V,kBAAqB,IAAO3V,EAAqB,gBAAI,GAC/HyE,EAAOmR,YAAa,OAGtB,IAAI5V,EAAO6V,cACJX,EAAUpX,QAAQkC,EAAO6V,cAAc,GAD9C,CAIAb,EAAQc,SAAsB,eAAXpd,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAGC,MAAQtd,EAAEsd,MAC1EhB,EAAQiB,SAAsB,eAAXvd,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAGG,MAAQxd,EAAEwd,MAC1E,IAAIC,EAASnB,EAAQc,SACjBM,EAASpB,EAAQiB,SAIjBI,EAAqBrW,EAAOqW,oBAAsBrW,EAAOsW,sBACzDC,EAAqBvW,EAAOuW,oBAAsBvW,EAAOwW,sBAC7D,IACEH,KACKF,GAAUI,GACXJ,GAAU3iB,EAAIe,OAAOgQ,MAAQgS,GAHnC,CAuBA,GAfAjY,EAAMpN,OAAOqG,EAAM,CACjBie,WAAW,EACXC,SAAS,EACTgB,qBAAqB,EACrBC,iBAAavd,EACbwd,iBAAaxd,IAGf6b,EAAQmB,OAASA,EACjBnB,EAAQoB,OAASA,EACjB7e,EAAKqf,eAAiBtY,EAAMK,MAC5B8F,EAAOmR,YAAa,EACpBnR,EAAOH,aACPG,EAAOoS,oBAAiB1d,EACpB6G,EAAOgR,UAAY,IAAKzZ,EAAKuf,oBAAqB,GACvC,eAAXpe,EAAE2c,KAAuB,CAC3B,IAAI0B,GAAiB,EACjB7B,EAAUpc,GAAGvB,EAAKyf,gBAAiBD,GAAiB,GAEtDtlB,EAAIM,eACD+C,EAAErD,EAAIM,eAAe+G,GAAGvB,EAAKyf,eAC7BvlB,EAAIM,gBAAkBmjB,EAAU,IAEnCzjB,EAAIM,cAAcC,OAGpB,IAAIilB,EAAuBF,GAAkBtS,EAAOyS,gBAAkBlX,EAAOmX,0BACzEnX,EAAOoX,+BAAiCH,IAC1Cve,EAAEqe,iBAGNtS,EAAO/B,KAAK,aAAchK,MAG5B,SAAS2e,EAAa7d,GACpB,IAAIiL,EAASvQ,KACTqD,EAAOkN,EAAOsQ,gBACd/U,EAASyE,EAAOzE,OAChBgV,EAAUvQ,EAAOuQ,QACjB5P,EAAMX,EAAOY,aACb3M,EAAIc,EAER,GADId,EAAEuc,gBAAiBvc,EAAIA,EAAEuc,eACxB1d,EAAKie,WAMV,IAAIje,EAAK6d,cAA2B,cAAX1c,EAAE2c,KAA3B,CACA,IAAIiC,EAAyB,cAAX5e,EAAE2c,MAAwB3c,EAAEqd,gBAAkBrd,EAAEqd,cAAc,IAAMrd,EAAE6e,eAAe,IACnGvB,EAAmB,cAAXtd,EAAE2c,KAAuBiC,EAAYtB,MAAQtd,EAAEsd,MACvDE,EAAmB,cAAXxd,EAAE2c,KAAuBiC,EAAYpB,MAAQxd,EAAEwd,MAC3D,GAAIxd,EAAE8e,wBAGJ,OAFAxC,EAAQmB,OAASH,OACjBhB,EAAQoB,OAASF,GAGnB,IAAKzR,EAAOyS,eAYV,OAVAzS,EAAOmR,YAAa,OAChBre,EAAKie,YACPlX,EAAMpN,OAAO8jB,EAAS,CACpBmB,OAAQH,EACRI,OAAQF,EACRJ,SAAUE,EACVC,SAAUC,IAEZ3e,EAAKqf,eAAiBtY,EAAMK,QAIhC,GAAIpH,EAAK6d,cAAgBpV,EAAOyX,sBAAwBzX,EAAO0M,KAC7D,GAAIjI,EAAOK,cAET,GACGoR,EAAQlB,EAAQoB,QAAU3R,EAAO2G,WAAa3G,EAAOwH,gBAClDiK,EAAQlB,EAAQoB,QAAU3R,EAAO2G,WAAa3G,EAAOgH,eAIzD,OAFAlU,EAAKie,WAAY,OACjBje,EAAKke,SAAU,QAGZ,GACJO,EAAQhB,EAAQmB,QAAU1R,EAAO2G,WAAa3G,EAAOwH,gBAClD+J,EAAQhB,EAAQmB,QAAU1R,EAAO2G,WAAa3G,EAAOgH,eAEzD,OAGJ,GAAIlU,EAAK6d,cAAgB3jB,EAAIM,eACvB2G,EAAEvH,SAAWM,EAAIM,eAAiB+C,EAAE4D,EAAEvH,QAAQ2H,GAAGvB,EAAKyf,cAGxD,OAFAzf,EAAKke,SAAU,OACfhR,EAAOmR,YAAa,GAOxB,GAHIre,EAAKkf,qBACPhS,EAAO/B,KAAK,YAAahK,KAEvBA,EAAEqd,eAAiBrd,EAAEqd,cAAcvkB,OAAS,GAAhD,CAEAwjB,EAAQc,SAAWE,EACnBhB,EAAQiB,SAAWC,EAEnB,IAKMwB,EALFC,EAAQ3C,EAAQc,SAAWd,EAAQmB,OACnCyB,EAAQ5C,EAAQiB,SAAWjB,EAAQoB,OACvC,KAAI3R,EAAOzE,OAAOgR,WAAa5J,KAAKyQ,KAAMzQ,KAAK0Q,IAAKH,EAAO,GAAQvQ,KAAK0Q,IAAKF,EAAO,IAAQnT,EAAOzE,OAAOgR,WAsB1G,QApBgC,IAArBzZ,EAAKmf,cAETjS,EAAOI,gBAAkBmQ,EAAQiB,WAAajB,EAAQoB,QAAY3R,EAAOK,cAAgBkQ,EAAQc,WAAad,EAAQmB,OACzH5e,EAAKmf,aAAc,EAGdiB,EAAQA,EAAUC,EAAQA,GAAU,KACvCF,EAA6D,IAA/CtQ,KAAK2Q,MAAM3Q,KAAK+B,IAAIyO,GAAQxQ,KAAK+B,IAAIwO,IAAiBvQ,KAAK4Q,GACzEzgB,EAAKmf,YAAcjS,EAAOI,eAAiB6S,EAAa1X,EAAO0X,WAAc,GAAKA,EAAa1X,EAAO0X,aAIxGngB,EAAKmf,aACPjS,EAAO/B,KAAK,oBAAqBhK,QAEH,IAArBnB,EAAKof,cACV3B,EAAQc,WAAad,EAAQmB,QAAUnB,EAAQiB,WAAajB,EAAQoB,SACtE7e,EAAKof,aAAc,IAGnBpf,EAAKmf,YACPnf,EAAKie,WAAY,OAGnB,GAAKje,EAAKof,YAAV,CAGAlS,EAAOmR,YAAa,GACf5V,EAAOkG,SAAWxN,EAAEyB,YACvBzB,EAAEqe,iBAEA/W,EAAOiY,2BAA6BjY,EAAOkY,QAC7Cxf,EAAEyf,kBAGC5gB,EAAKke,UACJzV,EAAO0M,MACTjI,EAAO4L,UAET9Y,EAAK6gB,eAAiB3T,EAAO7F,eAC7B6F,EAAOoG,cAAc,GACjBpG,EAAOoK,WACTpK,EAAOS,WAAWnL,QAAQ,qCAE5BxC,EAAK8gB,qBAAsB,GAEvBrY,EAAO8R,aAAyC,IAA1BrN,EAAOkL,iBAAqD,IAA1BlL,EAAOmL,gBACjEnL,EAAOsN,eAAc,GAEvBtN,EAAO/B,KAAK,kBAAmBhK,IAEjC+L,EAAO/B,KAAK,aAAchK,GAC1BnB,EAAKke,SAAU,EAEf,IAAI7D,EAAOnN,EAAOI,eAAiB8S,EAAQC,EAC3C5C,EAAQpD,KAAOA,EAEfA,GAAQ5R,EAAOsY,WACXlT,IAAOwM,GAAQA,GAEnBnN,EAAOoS,eAAiBjF,EAAO,EAAI,OAAS,OAC5Cra,EAAK2W,iBAAmB0D,EAAOra,EAAK6gB,eAEpC,IAAIG,GAAsB,EACtBC,EAAkBxY,EAAOwY,gBA0B7B,GAzBIxY,EAAOyX,sBACTe,EAAkB,GAEf5G,EAAO,GAAKra,EAAK2W,iBAAmBzJ,EAAOgH,gBAC9C8M,GAAsB,EAClBvY,EAAOyY,aAAclhB,EAAK2W,iBAAoBzJ,EAAOgH,eAAiB,EAAMrE,KAAK0Q,KAAOrT,EAAOgH,eAAiBlU,EAAK6gB,eAAiBxG,EAAO4G,KACxI5G,EAAO,GAAKra,EAAK2W,iBAAmBzJ,EAAOwH,iBACpDsM,GAAsB,EAClBvY,EAAOyY,aAAclhB,EAAK2W,iBAAoBzJ,EAAOwH,eAAiB,EAAM7E,KAAK0Q,IAAMrT,EAAOwH,eAAiB1U,EAAK6gB,eAAiBxG,EAAO4G,KAG9ID,IACF7f,EAAE8e,yBAA0B,IAIzB/S,EAAOkL,gBAA4C,SAA1BlL,EAAOoS,gBAA6Btf,EAAK2W,iBAAmB3W,EAAK6gB,iBAC7F7gB,EAAK2W,iBAAmB3W,EAAK6gB,iBAE1B3T,EAAOmL,gBAA4C,SAA1BnL,EAAOoS,gBAA6Btf,EAAK2W,iBAAmB3W,EAAK6gB,iBAC7F7gB,EAAK2W,iBAAmB3W,EAAK6gB,gBAK3BpY,EAAOgR,UAAY,EAAG,CACxB,KAAI5J,KAAK+B,IAAIyI,GAAQ5R,EAAOgR,WAAazZ,EAAKuf,oBAW5C,YADAvf,EAAK2W,iBAAmB3W,EAAK6gB,gBAT7B,IAAK7gB,EAAKuf,mBAMR,OALAvf,EAAKuf,oBAAqB,EAC1B9B,EAAQmB,OAASnB,EAAQc,SACzBd,EAAQoB,OAASpB,EAAQiB,SACzB1e,EAAK2W,iBAAmB3W,EAAK6gB,oBAC7BpD,EAAQpD,KAAOnN,EAAOI,eAAiBmQ,EAAQc,SAAWd,EAAQmB,OAASnB,EAAQiB,SAAWjB,EAAQoB,QASvGpW,EAAO0Y,eAAgB1Y,EAAOkG,WAG/BlG,EAAO2Y,UAAY3Y,EAAOsK,qBAAuBtK,EAAOuK,yBAC1D9F,EAAO0I,oBACP1I,EAAO6H,uBAELtM,EAAO2Y,WAEsB,IAA3BphB,EAAKqhB,WAAWpnB,QAClB+F,EAAKqhB,WAAWpjB,KAAK,CACnBqjB,SAAU7D,EAAQvQ,EAAOI,eAAiB,SAAW,UACrDiU,KAAMvhB,EAAKqf,iBAGfrf,EAAKqhB,WAAWpjB,KAAK,CACnBqjB,SAAU7D,EAAQvQ,EAAOI,eAAiB,WAAa,YACvDiU,KAAMxa,EAAMK,SAIhB8F,EAAOqH,eAAevU,EAAK2W,kBAE3BzJ,EAAO0J,aAAa5W,EAAK2W,2BAlMnB3W,EAAKof,aAAepf,EAAKmf,aAC3BjS,EAAO/B,KAAK,oBAAqBhK,GAoMvC,SAASqgB,EAAYvf,GACnB,IAAIiL,EAASvQ,KACTqD,EAAOkN,EAAOsQ,gBAEd/U,EAASyE,EAAOzE,OAChBgV,EAAUvQ,EAAOuQ,QACjB5P,EAAMX,EAAOY,aACbH,EAAaT,EAAOS,WACpBY,EAAarB,EAAOqB,WACpBD,EAAWpB,EAAOoB,SAClBnN,EAAIc,EAMR,GALId,EAAEuc,gBAAiBvc,EAAIA,EAAEuc,eACzB1d,EAAKkf,qBACPhS,EAAO/B,KAAK,WAAYhK,GAE1BnB,EAAKkf,qBAAsB,GACtBlf,EAAKie,UAMR,OALIje,EAAKke,SAAWzV,EAAO8R,YACzBrN,EAAOsN,eAAc,GAEvBxa,EAAKke,SAAU,OACfle,EAAKof,aAAc,GAIjB3W,EAAO8R,YAAcva,EAAKke,SAAWle,EAAKie,aAAwC,IAA1B/Q,EAAOkL,iBAAqD,IAA1BlL,EAAOmL,iBACnGnL,EAAOsN,eAAc,GAIvB,IA2BIiH,EA3BAC,EAAe3a,EAAMK,MACrBua,EAAWD,EAAe1hB,EAAKqf,eAgBnC,GAbInS,EAAOmR,aACTnR,EAAOmJ,mBAAmBlV,GAC1B+L,EAAO/B,KAAK,YAAahK,GACrBwgB,EAAW,KAAQD,EAAe1hB,EAAK4hB,cAAiB,KAC1D1U,EAAO/B,KAAK,wBAAyBhK,IAIzCnB,EAAK4hB,cAAgB7a,EAAMK,MAC3BL,EAAMG,UAAS,WACRgG,EAAO2K,YAAa3K,EAAOmR,YAAa,OAG1Cre,EAAKie,YAAcje,EAAKke,UAAYhR,EAAOoS,gBAAmC,IAAjB7B,EAAQpD,MAAcra,EAAK2W,mBAAqB3W,EAAK6gB,eAIrH,OAHA7gB,EAAKie,WAAY,EACjBje,EAAKke,SAAU,OACfle,EAAKof,aAAc,GAcrB,GAXApf,EAAKie,WAAY,EACjBje,EAAKke,SAAU,EACfle,EAAKof,aAAc,EAIjBqC,EADEhZ,EAAO0Y,aACItT,EAAMX,EAAO2G,WAAa3G,EAAO2G,WAEhC7T,EAAK2W,kBAGjBlO,EAAOkG,QAIX,GAAIlG,EAAO2Y,SAAX,CACE,GAAIK,GAAcvU,EAAOgH,eAEvB,YADAhH,EAAOgL,QAAQhL,EAAOsG,aAGxB,GAAIiO,GAAcvU,EAAOwH,eAMvB,YALIxH,EAAOkB,OAAOnU,OAASqU,EAASrU,OAClCiT,EAAOgL,QAAQ5J,EAASrU,OAAS,GAEjCiT,EAAOgL,QAAQhL,EAAOkB,OAAOnU,OAAS,IAK1C,GAAIwO,EAAOoZ,iBAAkB,CAC3B,GAAI7hB,EAAKqhB,WAAWpnB,OAAS,EAAG,CAC9B,IAAI6nB,EAAgB9hB,EAAKqhB,WAAWU,MAChCC,EAAgBhiB,EAAKqhB,WAAWU,MAEhCE,EAAWH,EAAcR,SAAWU,EAAcV,SAClDC,EAAOO,EAAcP,KAAOS,EAAcT,KAC9CrU,EAAOgV,SAAWD,EAAWV,EAC7BrU,EAAOgV,UAAY,EACfrS,KAAK+B,IAAI1E,EAAOgV,UAAYzZ,EAAO0Z,0BACrCjV,EAAOgV,SAAW,IAIhBX,EAAO,KAAQxa,EAAMK,MAAQ0a,EAAcP,KAAQ,OACrDrU,EAAOgV,SAAW,QAGpBhV,EAAOgV,SAAW,EAEpBhV,EAAOgV,UAAYzZ,EAAO2Z,8BAE1BpiB,EAAKqhB,WAAWpnB,OAAS,EACzB,IAAIooB,EAAmB,IAAO5Z,EAAO6Z,sBACjCC,EAAmBrV,EAAOgV,SAAWG,EAErCG,EAActV,EAAO2G,UAAY0O,EACjC1U,IAAO2U,GAAeA,GAE1B,IACIC,EAEAC,EAHAC,GAAW,EAEXC,EAA2C,GAA5B/S,KAAK+B,IAAI1E,EAAOgV,UAAiBzZ,EAAOoa,4BAE3D,GAAIL,EAActV,EAAOwH,eACnBjM,EAAOqa,wBACLN,EAActV,EAAOwH,gBAAkBkO,IACzCJ,EAActV,EAAOwH,eAAiBkO,GAExCH,EAAsBvV,EAAOwH,eAC7BiO,GAAW,EACX3iB,EAAK8gB,qBAAsB,GAE3B0B,EAActV,EAAOwH,eAEnBjM,EAAO0M,MAAQ1M,EAAOkJ,iBAAkB+Q,GAAe,QACtD,GAAIF,EAActV,EAAOgH,eAC1BzL,EAAOqa,wBACLN,EAActV,EAAOgH,eAAiB0O,IACxCJ,EAActV,EAAOgH,eAAiB0O,GAExCH,EAAsBvV,EAAOgH,eAC7ByO,GAAW,EACX3iB,EAAK8gB,qBAAsB,GAE3B0B,EAActV,EAAOgH,eAEnBzL,EAAO0M,MAAQ1M,EAAOkJ,iBAAkB+Q,GAAe,QACtD,GAAIja,EAAOsa,eAAgB,CAEhC,IADA,IAAIzN,EACKxW,EAAI,EAAGA,EAAIwP,EAASrU,OAAQ6E,GAAK,EACxC,GAAIwP,EAASxP,IAAM0jB,EAAa,CAC9BlN,EAAYxW,EACZ,MASJ0jB,IAJEA,EADE3S,KAAK+B,IAAItD,EAASgH,GAAakN,GAAe3S,KAAK+B,IAAItD,EAASgH,EAAY,GAAKkN,IAA0C,SAA1BtV,EAAOoS,eAC5FhR,EAASgH,GAEThH,EAASgH,EAAY,IAUvC,GANIoN,GACFxV,EAAOnC,KAAK,iBAAiB,WAC3BmC,EAAO4L,aAIa,IAApB5L,EAAOgV,UAMT,GAJEG,EADExU,EACiBgC,KAAK+B,MAAM4Q,EAActV,EAAO2G,WAAa3G,EAAOgV,UAEpDrS,KAAK+B,KAAK4Q,EAActV,EAAO2G,WAAa3G,EAAOgV,UAEpEzZ,EAAOsa,eAAgB,CAQzB,IAAIC,EAAenT,KAAK+B,KAAK/D,GAAO2U,EAAcA,GAAetV,EAAO2G,WACpEoP,EAAmB/V,EAAOsB,gBAAgBtB,EAAOsG,aAEnD6O,EADEW,EAAeC,EACExa,EAAO0K,MACjB6P,EAAe,EAAIC,EACM,IAAfxa,EAAO0K,MAEQ,IAAf1K,EAAO0K,YAGzB,GAAI1K,EAAOsa,eAEhB,YADA7V,EAAOsM,iBAIL/Q,EAAOqa,wBAA0BH,GACnCzV,EAAOqH,eAAekO,GACtBvV,EAAOoG,cAAc+O,GACrBnV,EAAO0J,aAAa4L,GACpBtV,EAAO6K,iBAAgB,EAAM7K,EAAOoS,gBACpCpS,EAAOoK,WAAY,EACnB3J,EAAW3K,eAAc,WAClBkK,IAAUA,EAAO2K,WAAc7X,EAAK8gB,sBACzC5T,EAAO/B,KAAK,kBACZ+B,EAAOoG,cAAc7K,EAAO0K,OAC5BlW,YAAW,WACTiQ,EAAO0J,aAAa6L,GACpB9U,EAAW3K,eAAc,WAClBkK,IAAUA,EAAO2K,WACtB3K,EAAOlK,qBAER,QAEIkK,EAAOgV,UAChBhV,EAAOqH,eAAeiO,GACtBtV,EAAOoG,cAAc+O,GACrBnV,EAAO0J,aAAa4L,GACpBtV,EAAO6K,iBAAgB,EAAM7K,EAAOoS,gBAC/BpS,EAAOoK,YACVpK,EAAOoK,WAAY,EACnB3J,EAAW3K,eAAc,WAClBkK,IAAUA,EAAO2K,WACtB3K,EAAOlK,qBAIXkK,EAAOqH,eAAeiO,GAGxBtV,EAAO0I,oBACP1I,EAAO6H,2BACF,GAAItM,EAAOsa,eAEhB,YADA7V,EAAOsM,mBAIJ/Q,EAAOoZ,kBAAoBF,GAAYlZ,EAAOya,gBACjDhW,EAAOqH,iBACPrH,EAAO0I,oBACP1I,EAAO6H,2BAtKX,CA8KA,IAFA,IAAIoO,EAAY,EACZC,EAAYlW,EAAOsB,gBAAgB,GAC9BlR,EAAI,EAAGA,EAAIiR,EAAWtU,OAAQqD,GAAMA,EAAImL,EAAOoJ,mBAAqB,EAAIpJ,EAAOiI,eAAiB,CACvG,IAAI2S,EAAe/lB,EAAImL,EAAOoJ,mBAAqB,EAAI,EAAIpJ,EAAOiI,oBACvB,IAAhCnC,EAAWjR,EAAI+lB,GACpB5B,GAAclT,EAAWjR,IAAMmkB,EAAalT,EAAWjR,EAAI+lB,KAC7DF,EAAY7lB,EACZ8lB,EAAY7U,EAAWjR,EAAI+lB,GAAe9U,EAAWjR,IAE9CmkB,GAAclT,EAAWjR,KAClC6lB,EAAY7lB,EACZ8lB,EAAY7U,EAAWA,EAAWtU,OAAS,GAAKsU,EAAWA,EAAWtU,OAAS,IAKnF,IAAIqpB,GAAS7B,EAAalT,EAAW4U,IAAcC,EAC/CvK,EAAasK,EAAY1a,EAAOoJ,mBAAqB,EAAI,EAAIpJ,EAAOiI,eAExE,GAAIiR,EAAWlZ,EAAOya,aAAc,CAElC,IAAKza,EAAO8a,WAEV,YADArW,EAAOgL,QAAQhL,EAAOsG,aAGM,SAA1BtG,EAAOoS,iBACLgE,GAAS7a,EAAO+a,gBAAmBtW,EAAOgL,QAAQiL,EAAYtK,GAC3D3L,EAAOgL,QAAQiL,IAEM,SAA1BjW,EAAOoS,iBACLgE,EAAS,EAAI7a,EAAO+a,gBAAoBtW,EAAOgL,QAAQiL,EAAYtK,GAChE3L,EAAOgL,QAAQiL,QAEnB,CAEL,IAAK1a,EAAOgb,YAEV,YADAvW,EAAOgL,QAAQhL,EAAOsG,cAGAtG,EAAOwW,YAAeviB,EAAEvH,SAAWsT,EAAOwW,WAAWC,QAAUxiB,EAAEvH,SAAWsT,EAAOwW,WAAWE,QAEtF,SAA1B1W,EAAOoS,gBACTpS,EAAOgL,QAAQiL,EAAYtK,GAEC,SAA1B3L,EAAOoS,gBACTpS,EAAOgL,QAAQiL,IAERhiB,EAAEvH,SAAWsT,EAAOwW,WAAWC,OACxCzW,EAAOgL,QAAQiL,EAAYtK,GAE3B3L,EAAOgL,QAAQiL,KAKrB,SAASU,IACP,IAAI3W,EAASvQ,KAET8L,EAASyE,EAAOzE,OAChBxI,EAAKiN,EAAOjN,GAEhB,IAAIA,GAAyB,IAAnBA,EAAGuD,YAAb,CAGIiF,EAAOqb,aACT5W,EAAO6W,gBAIT,IAAI3L,EAAiBlL,EAAOkL,eACxBC,EAAiBnL,EAAOmL,eACxB/J,EAAWpB,EAAOoB,SAGtBpB,EAAOkL,gBAAiB,EACxBlL,EAAOmL,gBAAiB,EAExBnL,EAAOH,aACPG,EAAOQ,eAEPR,EAAO6H,uBACuB,SAAzBtM,EAAOuH,eAA4BvH,EAAOuH,cAAgB,IAAM9C,EAAO0H,QAAU1H,EAAOyH,cAAgBzH,EAAOzE,OAAOkJ,eACzHzE,EAAOgL,QAAQhL,EAAOkB,OAAOnU,OAAS,EAAG,GAAG,GAAO,GAEnDiT,EAAOgL,QAAQhL,EAAOsG,YAAa,GAAG,GAAO,GAG3CtG,EAAO8W,UAAY9W,EAAO8W,SAASC,SAAW/W,EAAO8W,SAASE,QAChEhX,EAAO8W,SAASG,MAGlBjX,EAAOmL,eAAiBA,EACxBnL,EAAOkL,eAAiBA,EAEpBlL,EAAOzE,OAAOoK,eAAiBvE,IAAapB,EAAOoB,UACrDpB,EAAO4F,iBAIX,SAASsR,EAASjjB,GAChB,IAAI+L,EAASvQ,KACRuQ,EAAOmR,aACNnR,EAAOzE,OAAO4b,eAAiBljB,EAAEqe,iBACjCtS,EAAOzE,OAAO6b,0BAA4BpX,EAAOoK,YACnDnW,EAAEyf,kBACFzf,EAAEojB,6BAKR,SAASC,IACP,IAAItX,EAASvQ,KACTma,EAAY5J,EAAO4J,UACnBhJ,EAAeZ,EAAOY,aAC1BZ,EAAO+J,kBAAoB/J,EAAO2G,UAC9B3G,EAAOI,eAEPJ,EAAO2G,UADL/F,EACmBgJ,EAAUyB,YAAczB,EAAUtT,YAAesT,EAAU3S,YAE5D2S,EAAU3S,WAGhC+I,EAAO2G,WAAaiD,EAAU7S,WAGN,IAAtBiJ,EAAO2G,YAAoB3G,EAAO2G,UAAY,GAElD3G,EAAO0I,oBACP1I,EAAO6H,sBAGP,IAAIN,EAAiBvH,EAAOwH,eAAiBxH,EAAOgH,gBAC7B,IAAnBO,EACY,GAECvH,EAAO2G,UAAY3G,EAAOgH,gBAAkB,KAEzChH,EAAOoH,UACzBpH,EAAOqH,eAAezG,GAAgBZ,EAAO2G,UAAY3G,EAAO2G,WAGlE3G,EAAO/B,KAAK,eAAgB+B,EAAO2G,WAAW,GAGhD,IAAI4Q,GAAqB,EACzB,SAASC,KAwVT,IAEIC,EAAW,CACbC,MAAM,EACN5M,UAAW,aACX4F,kBAAmB,YACnBzF,aAAc,EACdhF,MAAO,IACPxE,SAAS,EACTkW,sBAAsB,EAEtBtN,gCAAgC,EAGhCuH,oBAAoB,EACpBE,mBAAoB,GAGpBoC,UAAU,EACVS,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBD,4BAA6B,EAC7BT,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzBhO,YAAY,EAGZpC,gBAAgB,EAGhB2E,kBAAkB,EAGlB5E,OAAQ,QAGRgS,iBAAaliB,EAGbsN,aAAc,EACdc,cAAe,EACfJ,gBAAiB,EACjBK,oBAAqB,SACrBS,eAAgB,EAChBmB,mBAAoB,EACpBF,gBAAgB,EAChBS,sBAAsB,EACtBvD,mBAAoB,EACpBE,kBAAmB,EACnBkH,qBAAqB,EACrBxD,0BAA0B,EAG1BI,eAAe,EAGf1B,cAAc,EAGd4P,WAAY,EACZZ,WAAY,GACZzF,eAAe,EACf+I,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBN,aAAc,IACd/B,cAAc,EACdxB,gBAAgB,EAChBlG,UAAW,EACXiH,0BAA0B,EAC1Bd,0BAA0B,EAC1BC,+BAA+B,EAC/BK,qBAAqB,EAGrB4E,mBAAmB,EAGnB5D,YAAY,EACZD,gBAAiB,IAGjBlO,qBAAqB,EACrBC,uBAAuB,EAGvBuH,YAAY,EAGZ8J,eAAe,EACfC,0BAA0B,EAC1B7N,qBAAqB,EAGrBsO,eAAe,EACfC,qBAAqB,EAGrB7P,MAAM,EACN8E,qBAAsB,EACtBtB,aAAc,KACdmB,wBAAwB,EAGxBzB,gBAAgB,EAChBD,gBAAgB,EAChBkG,aAAc,KACdH,WAAW,EACX8G,eAAgB,oBAChB7G,kBAAmB,KAGnB8G,kBAAkB,EAGlBC,uBAAwB,oBACxBC,WAAY,eACZC,gBAAiB,+BACjBnQ,iBAAkB,sBAClBG,0BAA2B,gCAC3BtB,kBAAmB,uBACnBqB,oBAAqB,yBACrBG,eAAgB,oBAChBG,wBAAyB,8BACzBD,eAAgB,oBAChBE,wBAAyB,8BACzB2P,aAAc,iBAGdlP,oBAAoB,GAKlBmP,EAAa,CACfzY,OAAQA,EACR+G,UAAWA,EACXvT,WAAYwX,EACZxH,MAAOA,EACP6E,KAAMA,EACNoF,WAAYA,EACZsB,aAAcA,EACdha,OAjYW,CACX2jB,aAxGF,WACE,IAAItY,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChBgd,EAAcvY,EAAOuY,YACrBxlB,EAAKiN,EAAOjN,GACZ6W,EAAY5J,EAAO4J,UAEvB5J,EAAOqQ,aAAeA,EAAatR,KAAKiB,GACxCA,EAAO4S,YAAcA,EAAY7T,KAAKiB,GACtCA,EAAOsU,WAAaA,EAAWvV,KAAKiB,GAChCzE,EAAOkG,UACTzB,EAAOsX,SAAWA,EAASvY,KAAKiB,IAGlCA,EAAOkX,QAAUA,EAAQnY,KAAKiB,GAE9B,IAAIjM,IAAYwH,EAAOkY,OAGvB,IAAKlX,EAAQC,OAASD,EAAQG,cAC5B3J,EAAG3F,iBAAiBmrB,EAAYC,MAAOxY,EAAOqQ,cAAc,GAC5DrjB,EAAII,iBAAiBmrB,EAAYE,KAAMzY,EAAO4S,YAAa7e,GAC3D/G,EAAII,iBAAiBmrB,EAAYG,IAAK1Y,EAAOsU,YAAY,OACpD,CACL,GAAI/X,EAAQC,MAAO,CACjB,IAAIM,IAAwC,eAAtByb,EAAYC,QAA0Bjc,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GAC3IhB,EAAG3F,iBAAiBmrB,EAAYC,MAAOxY,EAAOqQ,aAAcvT,GAC5D/J,EAAG3F,iBAAiBmrB,EAAYE,KAAMzY,EAAO4S,YAAarW,EAAQO,gBAAkB,CAAE6b,SAAS,EAAO5kB,QAASA,GAAYA,GAC3HhB,EAAG3F,iBAAiBmrB,EAAYG,IAAK1Y,EAAOsU,WAAYxX,GACpDyb,EAAYK,QACd7lB,EAAG3F,iBAAiBmrB,EAAYK,OAAQ5Y,EAAOsU,WAAYxX,GAExDya,IACHvqB,EAAII,iBAAiB,aAAcoqB,GACnCD,GAAqB,IAGpBhc,EAAOiS,gBAAkB+B,EAAOC,MAAQD,EAAOtB,SAAa1S,EAAOiS,gBAAkBjR,EAAQC,OAAS+S,EAAOC,OAChHzc,EAAG3F,iBAAiB,YAAa4S,EAAOqQ,cAAc,GACtDrjB,EAAII,iBAAiB,YAAa4S,EAAO4S,YAAa7e,GACtD/G,EAAII,iBAAiB,UAAW4S,EAAOsU,YAAY,KAInD/Y,EAAO4b,eAAiB5b,EAAO6b,2BACjCrkB,EAAG3F,iBAAiB,QAAS4S,EAAOkX,SAAS,GAE3C3b,EAAOkG,SACTmI,EAAUxc,iBAAiB,SAAU4S,EAAOsX,UAI1C/b,EAAOoc,qBACT3X,EAAOxM,GAAI+b,EAAOC,KAAOD,EAAOtB,QAAU,0CAA4C,wBAA0B0I,GAAU,GAE1H3W,EAAOxM,GAAG,iBAAkBmjB,GAAU,IAkDxCkC,aA9CF,WACE,IAAI7Y,EAASvQ,KAET8L,EAASyE,EAAOzE,OAChBgd,EAAcvY,EAAOuY,YACrBxlB,EAAKiN,EAAOjN,GACZ6W,EAAY5J,EAAO4J,UAEnB7V,IAAYwH,EAAOkY,OAGvB,IAAKlX,EAAQC,OAASD,EAAQG,cAC5B3J,EAAG1F,oBAAoBkrB,EAAYC,MAAOxY,EAAOqQ,cAAc,GAC/DrjB,EAAIK,oBAAoBkrB,EAAYE,KAAMzY,EAAO4S,YAAa7e,GAC9D/G,EAAIK,oBAAoBkrB,EAAYG,IAAK1Y,EAAOsU,YAAY,OACvD,CACL,GAAI/X,EAAQC,MAAO,CACjB,IAAIM,IAAwC,iBAAtByb,EAAYC,QAA4Bjc,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GAC7IhB,EAAG1F,oBAAoBkrB,EAAYC,MAAOxY,EAAOqQ,aAAcvT,GAC/D/J,EAAG1F,oBAAoBkrB,EAAYE,KAAMzY,EAAO4S,YAAa7e,GAC7DhB,EAAG1F,oBAAoBkrB,EAAYG,IAAK1Y,EAAOsU,WAAYxX,GACvDyb,EAAYK,QACd7lB,EAAG1F,oBAAoBkrB,EAAYK,OAAQ5Y,EAAOsU,WAAYxX,IAG7DvB,EAAOiS,gBAAkB+B,EAAOC,MAAQD,EAAOtB,SAAa1S,EAAOiS,gBAAkBjR,EAAQC,OAAS+S,EAAOC,OAChHzc,EAAG1F,oBAAoB,YAAa2S,EAAOqQ,cAAc,GACzDrjB,EAAIK,oBAAoB,YAAa2S,EAAO4S,YAAa7e,GACzD/G,EAAIK,oBAAoB,UAAW2S,EAAOsU,YAAY,KAItD/Y,EAAO4b,eAAiB5b,EAAO6b,2BACjCrkB,EAAG1F,oBAAoB,QAAS2S,EAAOkX,SAAS,GAG9C3b,EAAOkG,SACTmI,EAAUvc,oBAAoB,SAAU2S,EAAOsX,UAIjDtX,EAAO/K,IAAKsa,EAAOC,KAAOD,EAAOtB,QAAU,0CAA4C,wBAA0B0I,KAqYjHC,YA9RgB,CAAEC,cA/FpB,WACE,IAAI7W,EAASvQ,KACT6W,EAActG,EAAOsG,YACrB2C,EAAcjJ,EAAOiJ,YACrBwC,EAAezL,EAAOyL,kBAAoC,IAAjBA,IAA0BA,EAAe,GACtF,IAAIlQ,EAASyE,EAAOzE,OAChB0E,EAAMD,EAAOC,IACb2W,EAAcrb,EAAOqb,YACzB,GAAKA,KAAgBA,GAAmD,IAApCpqB,OAAOI,KAAKgqB,GAAa7pB,QAA7D,CAGA,IAAI+rB,EAAa9Y,EAAO+Y,cAAcnC,GAEtC,GAAIkC,GAAc9Y,EAAOgZ,oBAAsBF,EAAY,CACzD,IAAIG,EAAuBH,KAAclC,EAAcA,EAAYkC,QAAcpkB,EAC7EukB,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmBpsB,SAAQ,SAAU2O,GAC7G,IAAI0d,EAAaD,EAAqBzd,QACZ,IAAf0d,IAITD,EAAqBzd,GAHT,kBAAVA,GAA6C,SAAf0d,GAAwC,SAAfA,EAEtC,kBAAV1d,EACqBjF,WAAW2iB,GAEX5Y,SAAS4Y,EAAY,IAJrB,WASpC,IAAIC,EAAmBF,GAAwBjZ,EAAOoZ,eAClDC,EAAc9d,EAAOmH,gBAAkB,EACvC4W,EAAaH,EAAiBzW,gBAAkB,EAChD2W,IAAgBC,EAClBrZ,EAAIlO,YAAcwJ,EAA6B,uBAAI,YAAeA,EAA6B,uBAAI,oBACzF8d,GAAeC,IACzBrZ,EAAIxO,SAAW8J,EAA6B,uBAAI,YACH,WAAzC4d,EAAiBpW,qBACnB9C,EAAIxO,SAAW8J,EAA6B,uBAAI,oBAIpD,IAAIge,EAAmBJ,EAAiBrO,WAAaqO,EAAiBrO,YAAcvP,EAAOuP,UACvF0O,EAAcje,EAAO0M,OAASkR,EAAiBrW,gBAAkBvH,EAAOuH,eAAiByW,GAEzFA,GAAoBtQ,GACtBjJ,EAAOyZ,kBAGT5f,EAAMpN,OAAOuT,EAAOzE,OAAQ4d,GAE5Btf,EAAMpN,OAAOuT,EAAQ,CACnByS,eAAgBzS,EAAOzE,OAAOkX,eAC9BvH,eAAgBlL,EAAOzE,OAAO2P,eAC9BC,eAAgBnL,EAAOzE,OAAO4P,iBAGhCnL,EAAOgZ,kBAAoBF,EAEvBU,GAAevQ,IACjBjJ,EAAOoN,cACPpN,EAAO2M,aACP3M,EAAOQ,eACPR,EAAOgL,QAAS1E,EAAcmF,EAAgBzL,EAAOyL,aAAc,GAAG,IAGxEzL,EAAO/B,KAAK,aAAckb,MA8BoBJ,cA1BlD,SAAwBnC,GAEtB,GAAKA,EAAL,CACA,IAAIkC,GAAa,EAEbY,EAASltB,OAAOI,KAAKgqB,GAAalc,KAAI,SAAUif,GAClD,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAM/oB,QAAQ,KAAY,CACzD,IAAIgpB,EAAWrjB,WAAWojB,EAAME,OAAO,IAEvC,MAAO,CAAEtnB,MADGxD,EAAI+qB,YAAcF,EACPD,MAAOA,GAEhC,MAAO,CAAEpnB,MAAOonB,EAAOA,MAAOA,MAGhCD,EAAOK,MAAK,SAAUpf,EAAGqf,GAAK,OAAO1Z,SAAS3F,EAAEpI,MAAO,IAAM+N,SAAS0Z,EAAEznB,MAAO,OAC/E,IAAK,IAAInC,EAAI,EAAGA,EAAIspB,EAAO3sB,OAAQqD,GAAK,EAAG,CACzC,IAAI6pB,EAAMP,EAAOtpB,GACbupB,EAAQM,EAAIN,MACJM,EAAI1nB,OACHxD,EAAImrB,aACfpB,EAAaa,GAGjB,OAAOb,GAAc,SAkSrBlT,cApJoB,CAAEA,cAxBxB,WACE,IAAI5F,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB4e,EAAYna,EAAOyN,SACnB2M,EAAoBpa,EAAOkB,OAAOnU,OAAS,GAAMwO,EAAOoG,mBAAsBpG,EAAOyG,cAAgBhC,EAAOkB,OAAOnU,OAAS,GAAQiT,EAAOkB,OAAO,GAAe,YAAIlB,EAAOkB,OAAOnU,OAEnLwO,EAAOoG,oBAAsBpG,EAAOsG,mBAAqBuY,EAC3Dpa,EAAOyN,SAAW2M,GAAqBpa,EAAOO,KAE9CP,EAAOyN,SAAsC,IAA3BzN,EAAOoB,SAASrU,OAGpCiT,EAAOkL,gBAAkBlL,EAAOyN,SAChCzN,EAAOmL,gBAAkBnL,EAAOyN,SAG5B0M,IAAcna,EAAOyN,UAAYzN,EAAO/B,KAAK+B,EAAOyN,SAAW,OAAS,UAExE0M,GAAaA,IAAcna,EAAOyN,WACpCzN,EAAO0H,OAAQ,EACX1H,EAAOwW,YAAcxW,EAAOwW,WAAW5W,YAyJ7CjO,QA1OY,CAAE0oB,WApDhB,WACE,IAAIra,EAASvQ,KACT6qB,EAAata,EAAOsa,WACpB/e,EAASyE,EAAOzE,OAChBoF,EAAMX,EAAOW,IACbV,EAAMD,EAAOC,IACbsa,EAAW,GAEfA,EAASxpB,KAAK,eACdwpB,EAASxpB,KAAKwK,EAAOuP,WAEjBvP,EAAO2Y,UACTqG,EAASxpB,KAAK,aAEZwK,EAAO0L,YACTsT,EAASxpB,KAAK,cAEZ4P,GACF4Z,EAASxpB,KAAK,OAEZwK,EAAOmH,gBAAkB,IAC3B6X,EAASxpB,KAAK,YACqB,WAA/BwK,EAAOwH,qBACTwX,EAASxpB,KAAK,oBAGdwe,EAAOtB,SACTsM,EAASxpB,KAAK,WAEZwe,EAAOC,KACT+K,EAASxpB,KAAK,OAGZwK,EAAOkG,SACT8Y,EAASxpB,KAAK,YAGhBwpB,EAAS1tB,SAAQ,SAAU2tB,GACzBF,EAAWvpB,KAAKwK,EAAO0c,uBAAyBuC,MAGlDva,EAAIxO,SAAS6oB,EAAWzf,KAAK,OAWS4f,cARxC,WACE,IACIxa,EADSxQ,KACIwQ,IACbqa,EAFS7qB,KAEW6qB,WAExBra,EAAIlO,YAAYuoB,EAAWzf,KAAK,QA8OhC6f,OAnLW,CACXC,UAvDF,SAAoBC,EAASjuB,EAAKkuB,EAAQC,EAAOC,EAAkBhlB,GACjE,IAAIilB,EACJ,SAASC,IACHllB,GAAYA,IAEF1F,EAAEuqB,GAASzhB,OAAO,WAAW,IAEzByhB,EAAQM,UAAaH,EAmBvCE,IAlBItuB,IACFquB,EAAQ,IAAIjsB,EAAIa,OACVurB,OAASF,EACfD,EAAMI,QAAUH,EACZH,IACFE,EAAMF,MAAQA,GAEZD,IACFG,EAAMH,OAASA,GAEbluB,IACFquB,EAAMruB,IAAMA,IAGdsuB,KAkCJpD,cA1BF,WACE,IAAI7X,EAASvQ,KAEb,SAASwrB,IACH,MAAOjb,GAA8CA,IAAUA,EAAO2K,iBAC9CjW,IAAxBsL,EAAOqb,eAA8Brb,EAAOqb,cAAgB,GAC5Drb,EAAOqb,eAAiBrb,EAAOsb,aAAavuB,SAC1CiT,EAAOzE,OAAOuc,qBAAuB9X,EAAOJ,SAChDI,EAAO/B,KAAK,iBANhB+B,EAAOsb,aAAetb,EAAOC,IAAI3G,KAAK,OAStC,IAAK,IAAIlJ,EAAI,EAAGA,EAAI4P,EAAOsb,aAAavuB,OAAQqD,GAAK,EAAG,CACtD,IAAIwqB,EAAU5a,EAAOsb,aAAalrB,GAClC4P,EAAO2a,UACLC,EACAA,EAAQW,YAAcX,EAAQloB,aAAa,OAC3CkoB,EAAQC,QAAUD,EAAQloB,aAAa,UACvCkoB,EAAQE,OAASF,EAAQloB,aAAa,UACtC,EACAuoB,OA2LFO,EAAmB,GAEnBC,EAAuB,SAAUre,GACnC,SAASqe,IAIP,IAHA,IAAIhoB,EAIAV,EACAwI,EAHA7H,EAAO,GAAIC,EAAMlB,UAAU1F,OACvB4G,KAAQD,EAAMC,GAAQlB,UAAWkB,GAGrB,IAAhBD,EAAK3G,QAAgB2G,EAAK,GAAGnH,aAAemH,EAAK,GAAGnH,cAAgBC,OACtE+O,EAAS7H,EAAK,IAEEX,GAAfU,EAASC,GAAkB,GAAI6H,EAAS9H,EAAO,IAE7C8H,IAAUA,EAAS,IAExBA,EAAS1B,EAAMpN,OAAO,GAAI8O,GACtBxI,IAAOwI,EAAOxI,KAAMwI,EAAOxI,GAAKA,GAEpCqK,EAAYlH,KAAKzG,KAAM8L,GAEvB/O,OAAOI,KAAKyrB,GAAYxrB,SAAQ,SAAU6uB,GACxClvB,OAAOI,KAAKyrB,EAAWqD,IAAiB7uB,SAAQ,SAAU8uB,GACnDF,EAAOnqB,UAAUqqB,KACpBF,EAAOnqB,UAAUqqB,GAAetD,EAAWqD,GAAgBC,UAMjE,IAAI3b,EAASvQ,UACiB,IAAnBuQ,EAAOxB,UAChBwB,EAAOxB,QAAU,IAEnBhS,OAAOI,KAAKoT,EAAOxB,SAAS3R,SAAQ,SAAU4R,GAC5C,IAAItS,EAAS6T,EAAOxB,QAAQC,GAC5B,GAAItS,EAAOoP,OAAQ,CACjB,IAAIqgB,EAAkBpvB,OAAOI,KAAKT,EAAOoP,QAAQ,GAC7CqD,EAAezS,EAAOoP,OAAOqgB,GACjC,GAA4B,iBAAjBhd,GAA8C,OAAjBA,EAAyB,OACjE,KAAMgd,KAAmBrgB,MAAU,YAAaqD,GAAiB,QACjC,IAA5BrD,EAAOqgB,KACTrgB,EAAOqgB,GAAmB,CAAE5a,SAAS,IAGF,iBAA5BzF,EAAOqgB,IACT,YAAargB,EAAOqgB,KAEzBrgB,EAAOqgB,GAAiB5a,SAAU,GAE/BzF,EAAOqgB,KAAoBrgB,EAAOqgB,GAAmB,CAAE5a,SAAS,QAKzE,IAAI6a,EAAehiB,EAAMpN,OAAO,GAAIgrB,GACpCzX,EAAO3B,iBAAiBwd,GAGxB7b,EAAOzE,OAAS1B,EAAMpN,OAAO,GAAIovB,EAAcL,EAAkBjgB,GACjEyE,EAAOoZ,eAAiBvf,EAAMpN,OAAO,GAAIuT,EAAOzE,QAChDyE,EAAO8b,aAAejiB,EAAMpN,OAAO,GAAI8O,GAGvCyE,EAAO3P,EAAIA,EAGX,IAAI4P,EAAM5P,EAAE2P,EAAOzE,OAAOxI,IAG1B,GAFAA,EAAKkN,EAAI,GAET,CAIA,GAAIA,EAAIlT,OAAS,EAAG,CAClB,IAAIgvB,EAAU,GAKd,OAJA9b,EAAIzI,MAAK,SAAUO,EAAOikB,GACxB,IAAIC,EAAYpiB,EAAMpN,OAAO,GAAI8O,EAAQ,CAAExI,GAAIipB,IAC/CD,EAAQhrB,KAAK,IAAI0qB,EAAOQ,OAEnBF,EAOT,IAAItb,EAyDIjE,EACAkT,EAmER,OAjIA3c,EAAGiN,OAASA,EACZC,EAAInN,KAAK,SAAUkN,GAIfjN,GAAMA,EAAGmpB,YAAcnpB,EAAGmpB,WAAWzuB,eACvCgT,EAAapQ,EAAE0C,EAAGmpB,WAAWzuB,cAAe,IAAOuS,EAAOzE,OAAmB,gBAElExN,SAAW,SAAUouB,GAAW,OAAOlc,EAAIlS,SAASouB,IAE/D1b,EAAaR,EAAIlS,SAAU,IAAOiS,EAAOzE,OAAmB,cAG9D1B,EAAMpN,OAAOuT,EAAQ,CACnBC,IAAKA,EACLlN,GAAIA,EACJ0N,WAAYA,EACZmJ,UAAWnJ,EAAW,GAGtB6Z,WAAY,GAGZpZ,OAAQ7Q,IACRgR,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAGjBlB,aAAc,WACZ,MAAmC,eAA5BJ,EAAOzE,OAAOuP,WAEvBzK,WAAY,WACV,MAAmC,aAA5BL,EAAOzE,OAAOuP,WAGvBnK,IAA+B,QAAzB5N,EAAGgY,IAAI8E,eAAoD,QAAzB5P,EAAI5I,IAAI,aAChDuJ,aAA0C,eAA5BZ,EAAOzE,OAAOuP,YAAwD,QAAzB/X,EAAGgY,IAAI8E,eAAoD,QAAzB5P,EAAI5I,IAAI,cACrGwJ,SAAwC,gBAA9BJ,EAAWpJ,IAAI,WAGzBiP,YAAa,EACbyB,UAAW,EAGXN,aAAa,EACbC,OAAO,EAGPf,UAAW,EACXoD,kBAAmB,EACnB3C,SAAU,EACV4N,SAAU,EACV5K,WAAW,EAGXc,eAAgBlL,EAAOzE,OAAO2P,eAC9BC,eAAgBnL,EAAOzE,OAAO4P,eAG9BoN,aACM/b,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChDkT,EAAU,CAAC,YAAa,YAAa,WACrCnT,EAAQG,gBACVgT,EAAU,CAAC,cAAe,cAAe,cAE3C1P,EAAOoc,iBAAmB,CACxB5D,MAAOhc,EAAM,GACbic,KAAMjc,EAAM,GACZkc,IAAKlc,EAAM,GACXoc,OAAQpc,EAAM,IAEhBwD,EAAOqc,mBAAqB,CAC1B7D,MAAO9I,EAAQ,GACf+I,KAAM/I,EAAQ,GACdgJ,IAAKhJ,EAAQ,IAERnT,EAAQC,QAAUwD,EAAOzE,OAAOiS,cAAgBxN,EAAOoc,iBAAmBpc,EAAOqc,oBAE1F/L,gBAAiB,CACfS,eAAWrc,EACXsc,aAAStc,EACTsd,yBAAqBtd,EACrByd,oBAAgBzd,EAChBud,iBAAavd,EACb+U,sBAAkB/U,EAClBif,oBAAgBjf,EAChB2d,wBAAoB3d,EAEpB6d,aAAc,wDAEdmC,cAAe7a,EAAMK,MACrBoiB,kBAAc5nB,EAEdyf,WAAY,GACZP,yBAAqBlf,EACrBic,kBAAcjc,EACdwd,iBAAaxd,GAIfyc,YAAY,EAGZsB,eAAgBzS,EAAOzE,OAAOkX,eAE9BlC,QAAS,CACPmB,OAAQ,EACRC,OAAQ,EACRN,SAAU,EACVG,SAAU,EACVrE,KAAM,GAIRmO,aAAc,GACdD,aAAc,IAKhBrb,EAAOtB,aAGHsB,EAAOzE,OAAOmc,MAChB1X,EAAO0X,OAIF1X,GAGJ5C,IAAcqe,EAAOc,UAAYnf,GACtCqe,EAAOnqB,UAAY9E,OAAOyS,OAAQ7B,GAAeA,EAAY9L,WAC7DmqB,EAAOnqB,UAAU/E,YAAckvB,EAE/B,IAAIje,EAAkB,CAAEge,iBAAkB,CAAE9d,cAAc,GAAO+Z,SAAU,CAAE/Z,cAAc,GAAOnM,MAAO,CAAEmM,cAAc,GAAOrN,EAAG,CAAEqN,cAAc,IA2PnJ,OAzPA+d,EAAOnqB,UAAUmb,qBAAuB,WACtC,IAAIzM,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB2F,EAASlB,EAAOkB,OAChBG,EAAarB,EAAOqB,WACpBX,EAAaV,EAAOO,KACpB+F,EAActG,EAAOsG,YACrBkW,EAAM,EACV,GAAIjhB,EAAOkJ,eAAgB,CAGzB,IAFA,IACIgY,EADAra,EAAYlB,EAAOoF,GAAa9B,gBAE3BpU,EAAIkW,EAAc,EAAGlW,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAChD8Q,EAAO9Q,KAAOqsB,IAEhBD,GAAO,GADPpa,GAAalB,EAAO9Q,GAAGoU,iBAEP9D,IAAc+b,GAAY,IAG9C,IAAK,IAAI3X,EAAMwB,EAAc,EAAGxB,GAAO,EAAGA,GAAO,EAC3C5D,EAAO4D,KAAS2X,IAElBD,GAAO,GADPpa,GAAalB,EAAO4D,GAAKN,iBAET9D,IAAc+b,GAAY,SAI9C,IAAK,IAAIzX,EAAMsB,EAAc,EAAGtB,EAAM9D,EAAOnU,OAAQiY,GAAO,EACtD3D,EAAW2D,GAAO3D,EAAWiF,GAAe5F,IAC9C8b,GAAO,GAIb,OAAOA,GAGTf,EAAOnqB,UAAUsO,OAAS,WACxB,IAAII,EAASvQ,KACb,GAAKuQ,IAAUA,EAAO2K,UAAtB,CACA,IAAIvJ,EAAWpB,EAAOoB,SAClB7F,EAASyE,EAAOzE,OAEhBA,EAAOqb,aACT5W,EAAO6W,gBAET7W,EAAOH,aACPG,EAAOQ,eACPR,EAAOqH,iBACPrH,EAAO6H,sBAUH7H,EAAOzE,OAAO2Y,UAChBxK,IACI1J,EAAOzE,OAAO0L,YAChBjH,EAAOgG,sBAG4B,SAAhChG,EAAOzE,OAAOuH,eAA4B9C,EAAOzE,OAAOuH,cAAgB,IAAM9C,EAAO0H,QAAU1H,EAAOzE,OAAOkJ,eACnGzE,EAAOgL,QAAQhL,EAAOkB,OAAOnU,OAAS,EAAG,GAAG,GAAO,GAEnDiT,EAAOgL,QAAQhL,EAAOsG,YAAa,GAAG,GAAO,KAG1DoD,IAGAnO,EAAOoK,eAAiBvE,IAAapB,EAAOoB,UAC9CpB,EAAO4F,gBAET5F,EAAO/B,KAAK,UA1BZ,SAASyL,IACP,IAAIgT,EAAiB1c,EAAOY,cAAmC,EAApBZ,EAAO2G,UAAiB3G,EAAO2G,UACtE2D,EAAe3H,KAAKiB,IAAIjB,KAAKK,IAAI0Z,EAAgB1c,EAAOwH,gBAAiBxH,EAAOgH,gBACpFhH,EAAO0J,aAAaY,GACpBtK,EAAO0I,oBACP1I,EAAO6H,wBAwBX4T,EAAOnqB,UAAUmoB,gBAAkB,SAA0BkD,EAAcC,QACrD,IAAfA,IAAwBA,GAAa,GAE1C,IAAI5c,EAASvQ,KACTotB,EAAmB7c,EAAOzE,OAAOuP,UAKrC,OAJK6R,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE7DF,IAAiBE,GAAuC,eAAjBF,GAAkD,aAAjBA,IAI7E3c,EAAOC,IACJlO,YAAa,GAAMiO,EAAOzE,OAA6B,uBAAIshB,GAC3DprB,SAAU,GAAMuO,EAAOzE,OAA6B,uBAAIohB,GAE3D3c,EAAOzE,OAAOuP,UAAY6R,EAE1B3c,EAAOkB,OAAO1J,MAAK,SAAUgK,EAAYsb,GAClB,aAAjBH,EACFG,EAAQ7uB,MAAM6R,MAAQ,GAEtBgd,EAAQ7uB,MAAM8R,OAAS,MAI3BC,EAAO/B,KAAK,mBACR2e,GAAc5c,EAAOJ,UAlBhBI,GAuBXyb,EAAOnqB,UAAUomB,KAAO,WACtB,IAAI1X,EAASvQ,KACTuQ,EAAOiJ,cAEXjJ,EAAO/B,KAAK,cAGR+B,EAAOzE,OAAOqb,aAChB5W,EAAO6W,gBAIT7W,EAAOqa,aAGHra,EAAOzE,OAAO0M,MAChBjI,EAAO2M,aAIT3M,EAAOH,aAGPG,EAAOQ,eAEHR,EAAOzE,OAAOoK,eAChB3F,EAAO4F,gBAIL5F,EAAOzE,OAAO8R,YAChBrN,EAAOsN,gBAGLtN,EAAOzE,OAAOsc,eAChB7X,EAAO6X,gBAIL7X,EAAOzE,OAAO0M,KAChBjI,EAAOgL,QAAQhL,EAAOzE,OAAO0P,aAAejL,EAAOyL,aAAc,EAAGzL,EAAOzE,OAAO2N,oBAElFlJ,EAAOgL,QAAQhL,EAAOzE,OAAO0P,aAAc,EAAGjL,EAAOzE,OAAO2N,oBAI9DlJ,EAAOsY,eAGPtY,EAAOiJ,aAAc,EAGrBjJ,EAAO/B,KAAK,UAGdwd,EAAOnqB,UAAUyrB,QAAU,SAAkBC,EAAgBC,QACnC,IAAnBD,IAA4BA,GAAiB,QAC7B,IAAhBC,IAAyBA,GAAc,GAE5C,IAAIjd,EAASvQ,KACT8L,EAASyE,EAAOzE,OAChB0E,EAAMD,EAAOC,IACbQ,EAAaT,EAAOS,WACpBS,EAASlB,EAAOkB,OAEpB,YAA6B,IAAlBlB,EAAOzE,QAA0ByE,EAAO2K,YAInD3K,EAAO/B,KAAK,iBAGZ+B,EAAOiJ,aAAc,EAGrBjJ,EAAO6Y,eAGHtd,EAAO0M,MACTjI,EAAOoN,cAIL6P,IACFjd,EAAOya,gBACPxa,EAAIrN,WAAW,SACf6N,EAAW7N,WAAW,SAClBsO,GAAUA,EAAOnU,QACnBmU,EACGnP,YAAY,CACXwJ,EAAOsL,kBACPtL,EAAOyM,iBACPzM,EAAO8M,eACP9M,EAAOgN,gBAAiB1N,KAAK,MAC9BjI,WAAW,SACXA,WAAW,4BAIlBoN,EAAO/B,KAAK,WAGZzR,OAAOI,KAAKoT,EAAO1C,iBAAiBzQ,SAAQ,SAAU0Q,GACpDyC,EAAO/K,IAAIsI,OAGU,IAAnByf,IACFhd,EAAOC,IAAI,GAAGD,OAAS,KACvBA,EAAOC,IAAInN,KAAK,SAAU,MAC1B+G,EAAMC,YAAYkG,IAEpBA,EAAO2K,WAAY,GA7CV,MAkDX8Q,EAAOyB,eAAiB,SAAyBC,GAC/CtjB,EAAMpN,OAAO+uB,EAAkB2B,IAGjC3f,EAAgBge,iBAAiBte,IAAM,WACrC,OAAOse,GAGThe,EAAgBia,SAASva,IAAM,WAC7B,OAAOua,GAGTja,EAAgBjM,MAAM2L,IAAM,WAC1B,OAAOE,GAGTI,EAAgBnN,EAAE6M,IAAM,WACtB,OAAO7M,GAGT7D,OAAOmT,iBAAkB8b,EAAQje,GAE1Bie,EArdiB,CAsdxBre,GAEEggB,EAAW,CACb/d,KAAM,SACNC,MAAO,CACLwO,OAAQyB,GAEVhQ,OAAQ,CACNuO,OAAQyB,IAIR8N,EAAY,CACdhe,KAAM,UACNC,MAAO,CACLge,QAAS/gB,GAEXgD,OAAQ,CACN+d,QAAS/gB,IAITghB,EAKK,CACLC,SAAUzuB,EAAIE,UAAUC,UAAU8B,MAAM,SACxCysB,SANF,WACE,IAAI5P,EAAK9e,EAAIE,UAAUC,UAAU2gB,cACjC,OAAQhC,EAAGjd,QAAQ,WAAa,GAAKid,EAAGjd,QAAQ,UAAY,GAAKid,EAAGjd,QAAQ,WAAa,EAI/E6sB,GACVC,UAAW,+CAA+CC,KAAK5uB,EAAIE,UAAUC,YAI7E0uB,EAAY,CACdve,KAAM,UACNC,MAAO,CACLue,QAASN,GAEXhe,OAAQ,CACNse,QAASN,IAITO,EAAS,CACXze,KAAM,SACNJ,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB+d,OAAQ,CACNC,cAAe,WACRhe,IAAUA,EAAO2K,WAAc3K,EAAOiJ,cAC3CjJ,EAAO/B,KAAK,gBACZ+B,EAAO/B,KAAK,YAEdggB,yBAA0B,WACnBje,IAAUA,EAAO2K,WAAc3K,EAAOiJ,aAC3CjJ,EAAO/B,KAAK,0BAKpBzK,GAAI,CACFkkB,KAAM,WAGJ3oB,EAAI3B,iBAAiB,SAFRqC,KAEyBsuB,OAAOC,eAG7CjvB,EAAI3B,iBAAiB,oBALRqC,KAKoCsuB,OAAOE,2BAE1DlB,QAAS,WAEPhuB,EAAI1B,oBAAoB,SADXoC,KAC4BsuB,OAAOC,eAChDjvB,EAAI1B,oBAAoB,oBAFXoC,KAEuCsuB,OAAOE,6BAK7DC,EAAW,CACbC,KAAMpvB,EAAIqvB,kBAAoBrvB,EAAIsvB,uBAClCC,OAAQ,SAAgB5xB,EAAQyvB,QACb,IAAZA,IAAqBA,EAAU,IAEpC,IAAInc,EAASvQ,KAGToN,EAAW,IAAI0hB,EADAL,EAASC,OACI,SAAUK,GAIxC,GAAyB,IAArBA,EAAUzxB,OAAd,CAIA,IAAI0xB,EAAiB,WACnBze,EAAO/B,KAAK,iBAAkBugB,EAAU,KAGtCzvB,EAAI2vB,sBACN3vB,EAAI2vB,sBAAsBD,GAE1B1vB,EAAIgB,WAAW0uB,EAAgB,QAV/Bze,EAAO/B,KAAK,iBAAkBugB,EAAU,OAc5C3hB,EAAS8hB,QAAQjyB,EAAQ,CACvBkyB,gBAA0C,IAAvBzC,EAAQyC,YAAoCzC,EAAQyC,WACvEC,eAAwC,IAAtB1C,EAAQ0C,WAAmC1C,EAAQ0C,UACrEC,mBAAgD,IAA1B3C,EAAQ2C,eAAuC3C,EAAQ2C,gBAG/E9e,EAAOnD,SAASkiB,UAAUhuB,KAAK8L,IAEjC6a,KAAM,WACJ,IAAI1X,EAASvQ,KACb,GAAK8M,EAAQM,UAAamD,EAAOzE,OAAOsB,SAAxC,CACA,GAAImD,EAAOzE,OAAOyjB,eAEhB,IADA,IAAIC,EAAmBjf,EAAOC,IAAI1L,UACzBnE,EAAI,EAAGA,EAAI6uB,EAAiBlyB,OAAQqD,GAAK,EAChD4P,EAAOnD,SAASyhB,OAAOW,EAAiB7uB,IAI5C4P,EAAOnD,SAASyhB,OAAOte,EAAOC,IAAI,GAAI,CAAE4e,UAAW7e,EAAOzE,OAAO2jB,uBAGjElf,EAAOnD,SAASyhB,OAAOte,EAAOS,WAAW,GAAI,CAAEme,YAAY,MAE7D7B,QAAS,WACMttB,KACNoN,SAASkiB,UAAUlyB,SAAQ,SAAUgQ,GAC1CA,EAASsiB,gBAFE1vB,KAINoN,SAASkiB,UAAY,KAI5BK,GAAa,CACf/f,KAAM,WACN9D,OAAQ,CACNsB,UAAU,EACVmiB,gBAAgB,EAChBE,sBAAsB,GAExBjgB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBnD,SAAU,CACR6a,KAAMwG,EAASxG,KAAK3Y,KAAKiB,GACzBse,OAAQJ,EAASI,OAAOvf,KAAKiB,GAC7B+c,QAASmB,EAASnB,QAAQhe,KAAKiB,GAC/B+e,UAAW,OAIjBvrB,GAAI,CACFkkB,KAAM,WACSjoB,KACNoN,SAAS6a,QAElBqF,QAAS,WACMttB,KACNoN,SAASkgB,aAKlBsC,GAAU,CACZzf,OAAQ,SAAgB0f,GACtB,IAAItf,EAASvQ,KACTwqB,EAAMja,EAAOzE,OACbuH,EAAgBmX,EAAInX,cACpBU,EAAiByW,EAAIzW,eACrBiB,EAAiBwV,EAAIxV,eACrB8a,EAAQvf,EAAOzE,OAAOwF,QACtBye,EAAkBD,EAAMC,gBACxBC,EAAiBF,EAAME,eACvBC,EAAQ1f,EAAOe,QACf4e,EAAeD,EAAME,KACrBC,EAAaH,EAAM3jB,GACnBmF,EAASwe,EAAMxe,OACf4e,EAAqBJ,EAAMre,WAC3B0e,EAAcL,EAAMK,YACpBC,EAAiBN,EAAMhpB,OAC3BsJ,EAAO0I,oBACP,IAEIuX,EAIAC,EACAC,EAPA7Z,EAActG,EAAOsG,aAAe,EAGb2Z,EAAvBjgB,EAAOY,aAA6B,QACpBZ,EAAOI,eAAiB,OAAS,MAIjDqE,GACFyb,EAAcvd,KAAKC,MAAME,EAAgB,GAAKU,EAAiBgc,EAC/DW,EAAexd,KAAKC,MAAME,EAAgB,GAAKU,EAAiBic,IAEhES,EAAcpd,GAAiBU,EAAiB,GAAKgc,EACrDW,EAAe3c,EAAiBic,GAElC,IAAIG,EAAOjd,KAAKK,KAAKsD,GAAe,GAAK6Z,EAAc,GACnDpkB,EAAK4G,KAAKiB,KAAK0C,GAAe,GAAK4Z,EAAahf,EAAOnU,OAAS,GAChE2J,GAAUsJ,EAAOqB,WAAWue,IAAS,IAAM5f,EAAOqB,WAAW,IAAM,GASvE,SAAS+e,IACPpgB,EAAOQ,eACPR,EAAOqH,iBACPrH,EAAO6H,sBACH7H,EAAOqgB,MAAQrgB,EAAOzE,OAAO8kB,KAAKrf,SACpChB,EAAOqgB,KAAKC,OAIhB,GAhBAzmB,EAAMpN,OAAOuT,EAAOe,QAAS,CAC3B6e,KAAMA,EACN7jB,GAAIA,EACJrF,OAAQA,EACR2K,WAAYrB,EAAOqB,aAYjBse,IAAiBC,GAAQC,IAAe9jB,IAAOujB,EAKjD,OAJItf,EAAOqB,aAAeye,GAAsBppB,IAAWspB,GACzDhgB,EAAOkB,OAAO7J,IAAI4oB,EAAavpB,EAAS,WAE1CsJ,EAAOqH,iBAGT,GAAIrH,EAAOzE,OAAOwF,QAAQwf,eAcxB,OAbAvgB,EAAOzE,OAAOwF,QAAQwf,eAAerqB,KAAK8J,EAAQ,CAChDtJ,OAAQA,EACRkpB,KAAMA,EACN7jB,GAAIA,EACJmF,OAAS,WAEP,IADA,IAAIsf,EAAiB,GACZpwB,EAAIwvB,EAAMxvB,GAAK2L,EAAI3L,GAAK,EAC/BowB,EAAezvB,KAAKmQ,EAAO9Q,IAE7B,OAAOowB,EALD,UAQVJ,IAGF,IAAIK,EAAiB,GACjBC,EAAgB,GACpB,GAAIpB,EACFtf,EAAOS,WAAWnH,KAAM,IAAO0G,EAAOzE,OAAiB,YAAIvJ,cAE3D,IAAK,IAAI5B,EAAIuvB,EAAcvvB,GAAKyvB,EAAYzvB,GAAK,GAC3CA,EAAIwvB,GAAQxvB,EAAI2L,IAClBiE,EAAOS,WAAWnH,KAAM,IAAO0G,EAAOzE,OAAiB,WAAI,6BAAgCnL,EAAI,MAAQ4B,SAI7G,IAAK,IAAI8S,EAAM,EAAGA,EAAM5D,EAAOnU,OAAQ+X,GAAO,EACxCA,GAAO8a,GAAQ9a,GAAO/I,SACE,IAAf8jB,GAA8BP,EACvCoB,EAAc3vB,KAAK+T,IAEfA,EAAM+a,GAAca,EAAc3vB,KAAK+T,GACvCA,EAAM6a,GAAgBc,EAAe1vB,KAAK+T,KAIpD4b,EAAc7zB,SAAQ,SAAUkL,GAC9BiI,EAAOS,WAAWrI,OAAO2nB,EAAY7e,EAAOnJ,GAAQA,OAEtD0oB,EAAe1G,MAAK,SAAUpf,EAAGqf,GAAK,OAAOA,EAAIrf,KAAM9N,SAAQ,SAAUkL,GACvEiI,EAAOS,WAAWhI,QAAQsnB,EAAY7e,EAAOnJ,GAAQA,OAEvDiI,EAAOS,WAAW1S,SAAS,iBAAiBsJ,IAAI4oB,EAAavpB,EAAS,MACtE0pB,KAEFL,YAAa,SAAqB3c,EAAOrL,GACvC,IAAIiI,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOwF,QAC3B,GAAIxF,EAAOolB,OAAS3gB,EAAOe,QAAQ4f,MAAM5oB,GACvC,OAAOiI,EAAOe,QAAQ4f,MAAM5oB,GAE9B,IAAI6oB,EAAWrlB,EAAOwkB,YAClB1vB,EAAEkL,EAAOwkB,YAAY7pB,KAAK8J,EAAQoD,EAAOrL,IACzC1H,EAAG,eAAmB2P,EAAOzE,OAAiB,WAAI,8BAAkCxD,EAAQ,KAAQqL,EAAQ,UAGhH,OAFKwd,EAASvuB,KAAK,4BAA8BuuB,EAASvuB,KAAK,0BAA2B0F,GACtFwD,EAAOolB,QAAS3gB,EAAOe,QAAQ4f,MAAM5oB,GAAS6oB,GAC3CA,GAEThS,YAAa,SAAqB1N,GAChC,IAAIlB,EAASvQ,KACb,GAAsB,iBAAXyR,GAAuB,WAAYA,EAC5C,IAAK,IAAI9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAClC8Q,EAAO9Q,IAAM4P,EAAOe,QAAQG,OAAOnQ,KAAKmQ,EAAO9Q,SAGrD4P,EAAOe,QAAQG,OAAOnQ,KAAKmQ,GAE7BlB,EAAOe,QAAQnB,QAAO,IAExBiP,aAAc,SAAsB3N,GAClC,IAAIlB,EAASvQ,KACT6W,EAActG,EAAOsG,YACrBqC,EAAiBrC,EAAc,EAC/Bua,EAAoB,EAExB,GAAI3iB,MAAMC,QAAQ+C,GAAS,CACzB,IAAK,IAAI9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAClC8Q,EAAO9Q,IAAM4P,EAAOe,QAAQG,OAAO9M,QAAQ8M,EAAO9Q,IAExDuY,EAAiBrC,EAAcpF,EAAOnU,OACtC8zB,EAAoB3f,EAAOnU,YAE3BiT,EAAOe,QAAQG,OAAO9M,QAAQ8M,GAEhC,GAAIlB,EAAOzE,OAAOwF,QAAQ4f,MAAO,CAC/B,IAAIA,EAAQ3gB,EAAOe,QAAQ4f,MACvBG,EAAW,GACft0B,OAAOI,KAAK+zB,GAAO9zB,SAAQ,SAAUk0B,GACnC,IAAIC,EAAYL,EAAMI,GAClBE,EAAgBD,EAAU3uB,KAAK,2BAC/B4uB,GACFD,EAAU3uB,KAAK,0BAA2BiO,SAAS2gB,EAAe,IAAM,GAE1EH,EAASxgB,SAASygB,EAAa,IAAMF,GAAqBG,KAE5DhhB,EAAOe,QAAQ4f,MAAQG,EAEzB9gB,EAAOe,QAAQnB,QAAO,GACtBI,EAAOgL,QAAQrC,EAAgB,IAEjCwG,YAAa,SAAqBC,GAChC,IAAIpP,EAASvQ,KACb,GAAI,MAAO2f,EAAX,CACA,IAAI9I,EAActG,EAAOsG,YACzB,GAAIpI,MAAMC,QAAQiR,GAChB,IAAK,IAAIhf,EAAIgf,EAAcriB,OAAS,EAAGqD,GAAK,EAAGA,GAAK,EAClD4P,EAAOe,QAAQG,OAAO7L,OAAO+Z,EAAchf,GAAI,GAC3C4P,EAAOzE,OAAOwF,QAAQ4f,cACjB3gB,EAAOe,QAAQ4f,MAAMvR,EAAchf,IAExCgf,EAAchf,GAAKkW,IAAeA,GAAe,GACrDA,EAAc3D,KAAKK,IAAIsD,EAAa,QAGtCtG,EAAOe,QAAQG,OAAO7L,OAAO+Z,EAAe,GACxCpP,EAAOzE,OAAOwF,QAAQ4f,cACjB3gB,EAAOe,QAAQ4f,MAAMvR,GAE1BA,EAAgB9I,IAAeA,GAAe,GAClDA,EAAc3D,KAAKK,IAAIsD,EAAa,GAEtCtG,EAAOe,QAAQnB,QAAO,GACtBI,EAAOgL,QAAQ1E,EAAa,KAE9BgJ,gBAAiB,WACf,IAAItP,EAASvQ,KACbuQ,EAAOe,QAAQG,OAAS,GACpBlB,EAAOzE,OAAOwF,QAAQ4f,QACxB3gB,EAAOe,QAAQ4f,MAAQ,IAEzB3gB,EAAOe,QAAQnB,QAAO,GACtBI,EAAOgL,QAAQ,EAAG,KAIlBkW,GAAY,CACd7hB,KAAM,UACN9D,OAAQ,CACNwF,QAAS,CACPC,SAAS,EACTE,OAAQ,GACRyf,OAAO,EACPZ,YAAa,KACbQ,eAAgB,KAChBf,gBAAiB,EACjBC,eAAgB,IAGpBxgB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBe,QAAS,CACPnB,OAAQyf,GAAQzf,OAAOb,KAAKiB,GAC5B4O,YAAayQ,GAAQzQ,YAAY7P,KAAKiB,GACtC6O,aAAcwQ,GAAQxQ,aAAa9P,KAAKiB,GACxCmP,YAAakQ,GAAQlQ,YAAYpQ,KAAKiB,GACtCsP,gBAAiB+P,GAAQ/P,gBAAgBvQ,KAAKiB,GAC9C+f,YAAaV,GAAQU,YAAYhhB,KAAKiB,GACtCkB,OAAQlB,EAAOzE,OAAOwF,QAAQG,OAC9Byf,MAAO,OAIbntB,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOwF,QAAQC,QAA3B,CACAhB,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,WACjE,IAAI6lB,EAAkB,CACpBvb,qBAAqB,GAEvBhM,EAAMpN,OAAOuT,EAAOzE,OAAQ6lB,GAC5BvnB,EAAMpN,OAAOuT,EAAOoZ,eAAgBgI,GAE/BphB,EAAOzE,OAAO0P,cACjBjL,EAAOe,QAAQnB,WAGnB8J,aAAc,WACCja,KACD8L,OAAOwF,QAAQC,SADdvR,KAENsR,QAAQnB,YAKjByhB,GAAW,CACbC,OAAQ,SAAgBvsB,GACtB,IAAIiL,EAASvQ,KACTkR,EAAMX,EAAOY,aACb3M,EAAIc,EACJd,EAAEuc,gBAAiBvc,EAAIA,EAAEuc,eAC7B,IAAI+Q,EAAKttB,EAAEutB,SAAWvtB,EAAEwtB,SACpBC,EAAa1hB,EAAOzE,OAAOomB,SAASD,WACpCE,EAAWF,GAAqB,KAAPH,EACzBM,EAAaH,GAAqB,KAAPH,EAC3BO,EAAqB,KAAPP,EACdQ,EAAsB,KAAPR,EACfS,EAAmB,KAAPT,EACZU,EAAqB,KAAPV,EAElB,IAAKvhB,EAAOkL,iBAAoBlL,EAAOI,gBAAkB2hB,GAAkB/hB,EAAOK,cAAgB4hB,GAAgBJ,GAChH,OAAO,EAET,IAAK7hB,EAAOmL,iBAAoBnL,EAAOI,gBAAkB0hB,GAAiB9hB,EAAOK,cAAgB2hB,GAAcJ,GAC7G,OAAO,EAET,KAAI3tB,EAAEiuB,UAAYjuB,EAAEkuB,QAAUluB,EAAEmuB,SAAWnuB,EAAEouB,SAGzCr1B,EAAIM,eAAiBN,EAAIM,cAAcE,WAA0D,UAA7CR,EAAIM,cAAcE,SAASqiB,eAA0E,aAA7C7iB,EAAIM,cAAcE,SAASqiB,gBAA3I,CAGA,GAAI7P,EAAOzE,OAAOomB,SAASW,iBAAmBV,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIM,GAAS,EAEb,GAAIviB,EAAOC,IAAI1L,QAAS,IAAOyL,EAAOzE,OAAiB,YAAIxO,OAAS,GAA6E,IAAxEiT,EAAOC,IAAI1L,QAAS,IAAOyL,EAAOzE,OAAuB,kBAAIxO,OACpI,OAEF,IAAIy1B,EAAczzB,EAAImrB,WAClBuI,EAAe1zB,EAAI+qB,YACnB4I,EAAe1iB,EAAOC,IAAIvJ,SAC1BiK,IAAO+hB,EAAatrB,MAAQ4I,EAAOC,IAAI,GAAGhJ,YAM9C,IALA,IAAI0rB,EAAc,CAChB,CAACD,EAAatrB,KAAMsrB,EAAavrB,KACjC,CAACurB,EAAatrB,KAAO4I,EAAOF,MAAO4iB,EAAavrB,KAChD,CAACurB,EAAatrB,KAAMsrB,EAAavrB,IAAM6I,EAAOD,QAC9C,CAAC2iB,EAAatrB,KAAO4I,EAAOF,MAAO4iB,EAAavrB,IAAM6I,EAAOD,SACtD3P,EAAI,EAAGA,EAAIuyB,EAAY51B,OAAQqD,GAAK,EAAG,CAC9C,IAAIupB,EAAQgJ,EAAYvyB,GAEtBupB,EAAM,IAAM,GAAKA,EAAM,IAAM6I,GAC1B7I,EAAM,IAAM,GAAKA,EAAM,IAAM8I,IAEhCF,GAAS,GAGb,IAAKA,EAAU,OAEbviB,EAAOI,iBACLwhB,GAAYC,GAAcC,GAAeC,KACvC9tB,EAAEqe,eAAkBre,EAAEqe,iBACnBre,EAAE2uB,aAAc,KAEnBf,GAAcE,KAAkBphB,IAAUihB,GAAYE,IAAgBnhB,IAAQX,EAAO0L,cACrFkW,GAAYE,KAAiBnhB,IAAUkhB,GAAcE,IAAiBphB,IAAQX,EAAO8L,eAEvF8V,GAAYC,GAAcG,GAAaC,KACrChuB,EAAEqe,eAAkBre,EAAEqe,iBACnBre,EAAE2uB,aAAc,IAErBf,GAAcI,IAAejiB,EAAO0L,aACpCkW,GAAYI,IAAahiB,EAAO8L,aAEtC9L,EAAO/B,KAAK,WAAYsjB,KAG1BsB,OAAQ,WACN,IAAI7iB,EAASvQ,KACTuQ,EAAO2hB,SAAS3gB,UACpB3Q,EAAErD,GAAKwG,GAAG,UAAWwM,EAAO2hB,SAASL,QACrCthB,EAAO2hB,SAAS3gB,SAAU,IAE5B8hB,QAAS,WACP,IAAI9iB,EAASvQ,KACRuQ,EAAO2hB,SAAS3gB,UACrB3Q,EAAErD,GAAKiI,IAAI,UAAW+K,EAAO2hB,SAASL,QACtCthB,EAAO2hB,SAAS3gB,SAAU,KAI1B+hB,GAAa,CACf1jB,KAAM,WACN9D,OAAQ,CACNomB,SAAU,CACR3gB,SAAS,EACTshB,gBAAgB,EAChBZ,YAAY,IAGhBziB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB2hB,SAAU,CACR3gB,SAAS,EACT6hB,OAAQxB,GAASwB,OAAO9jB,KAAKiB,GAC7B8iB,QAASzB,GAASyB,QAAQ/jB,KAAKiB,GAC/BshB,OAAQD,GAASC,OAAOviB,KAAKiB,OAInCxM,GAAI,CACFkkB,KAAM,WACSjoB,KACF8L,OAAOomB,SAAS3gB,SADdvR,KAEJkyB,SAASkB,UAGpB9F,QAAS,WACMttB,KACFkyB,SAAS3gB,SADPvR,KAEJkyB,SAASmB,aA6BxB,IAAIE,GAAa,CACfC,eAAgBppB,EAAMK,MACtBgpB,yBAAqBxuB,EACrByuB,kBAAmB,GACnBpuB,MAAO,WACL,OAAIhG,EAAIE,UAAUC,UAAU0B,QAAQ,YAAc,EAAY,iBA5BlE,WACE,IAAI2M,EAAY,UACZ6lB,EAAc7lB,KAAavQ,EAE/B,IAAKo2B,EAAa,CAChB,IAAIC,EAAUr2B,EAAIc,cAAc,OAChCu1B,EAAQn1B,aAAaqP,EAAW,WAChC6lB,EAA4C,mBAAvBC,EAAiB,QAcxC,OAXKD,GACAp2B,EAAIs2B,gBACJt2B,EAAIs2B,eAAeC,aAGuB,IAA1Cv2B,EAAIs2B,eAAeC,WAAW,GAAI,MAGrCH,EAAcp2B,EAAIs2B,eAAeC,WAAW,eAAgB,QAGvDH,EAQEI,GAAqB,QAAU,cAExCzX,UAAW,SAAmB9X,GAE5B,IAIIwvB,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAuDT,MApDI,WAAY3vB,IACdyvB,EAAKzvB,EAAEuB,QAEL,eAAgBvB,IAClByvB,GAAMzvB,EAAE4vB,WAAa,KAEnB,gBAAiB5vB,IACnByvB,GAAMzvB,EAAE6vB,YAAc,KAEpB,gBAAiB7vB,IACnBwvB,GAAMxvB,EAAE8vB,YAAc,KAIpB,SAAU9vB,GAAKA,EAAEmG,OAASnG,EAAE+vB,kBAC9BP,EAAKC,EACLA,EAAK,GAGPC,EA7BiB,GA6BZF,EACLG,EA9BiB,GA8BZF,EAED,WAAYzvB,IACd2vB,EAAK3vB,EAAEgwB,QAEL,WAAYhwB,IACd0vB,EAAK1vB,EAAEiwB,QAGLjwB,EAAEiuB,WAAayB,IACjBA,EAAKC,EACLA,EAAK,IAGFD,GAAMC,IAAO3vB,EAAEkwB,YACE,IAAhBlwB,EAAEkwB,WACJR,GA7Cc,GA8CdC,GA9Cc,KAgDdD,GA/Cc,IAgDdC,GAhDc,MAqDdD,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAGhB,CACLQ,MAAOX,EACPY,MAAOX,EACPY,OAAQX,EACRY,OAAQX,IAGZY,iBAAkB,WACH/0B,KACNg1B,cAAe,GAExBC,iBAAkB,WACHj1B,KACNg1B,cAAe,GAExBnD,OAAQ,SAAgBvsB,GACtB,IAAId,EAAIc,EACJiL,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOopB,WAEvB3kB,EAAOzE,OAAOkG,SAChBxN,EAAEqe,iBAGJ,IAAI5lB,EAASsT,EAAOC,IAIpB,GAH8C,cAA1CD,EAAOzE,OAAOopB,WAAWC,eAC3Bl4B,EAAS2D,EAAE2P,EAAOzE,OAAOopB,WAAWC,gBAEjC5kB,EAAOykB,eAAiB/3B,EAAO,GAAGwF,SAAS+B,EAAEvH,UAAY6O,EAAOspB,eAAkB,OAAO,EAE1F5wB,EAAEuc,gBAAiBvc,EAAIA,EAAEuc,eAC7B,IAAIsU,EAAQ,EACRC,EAAY/kB,EAAOY,cAAgB,EAAI,EAEvC9N,EAAOkwB,GAAWjX,UAAU9X,GAEhC,GAAIsH,EAAOypB,YACT,GAAIhlB,EAAOI,eAAgB,CACzB,KAAIuC,KAAK+B,IAAI5R,EAAKwxB,QAAU3hB,KAAK+B,IAAI5R,EAAKyxB,SACnC,OAAO,EADuCO,GAAShyB,EAAKwxB,OAASS,MAEvE,MAAIpiB,KAAK+B,IAAI5R,EAAKyxB,QAAU5hB,KAAK+B,IAAI5R,EAAKwxB,SAC1C,OAAO,EAD8CQ,GAAShyB,EAAKyxB,YAG1EO,EAAQniB,KAAK+B,IAAI5R,EAAKwxB,QAAU3hB,KAAK+B,IAAI5R,EAAKyxB,SAAWzxB,EAAKwxB,OAASS,GAAajyB,EAAKyxB,OAG3F,GAAc,IAAVO,EAAe,OAAO,EAI1B,GAFIvpB,EAAO0pB,SAAUH,GAASA,GAEzB9kB,EAAOzE,OAAO2Y,SAoCZ,CAOL,IAAIgR,EAAa,CAAE7Q,KAAMxa,EAAMK,MAAO4qB,MAAOniB,KAAK+B,IAAIogB,GAAQha,UAAWnI,KAAKwiB,KAAKL,IAE/E5B,EADMljB,EAAO2kB,WACazB,oBAC1BkC,EAAoBlC,GACnBgC,EAAW7Q,KAAO6O,EAAoB7O,KAAO,KAC7C6Q,EAAWJ,OAAS5B,EAAoB4B,OACxCI,EAAWpa,YAAcoY,EAAoBpY,UAClD,IAAKsa,EAAmB,CACtBplB,EAAO2kB,WAAWzB,yBAAsBxuB,EAEpCsL,EAAOzE,OAAO0M,MAChBjI,EAAO4L,UAET,IAAIwI,EAAWpU,EAAO7F,eAAkB2qB,EAAQvpB,EAAO8pB,YACnD1d,EAAe3H,EAAOyH,YACtBG,EAAS5H,EAAO0H,MAepB,GAbI0M,GAAYpU,EAAOgH,iBAAkBoN,EAAWpU,EAAOgH,gBACvDoN,GAAYpU,EAAOwH,iBAAkB4M,EAAWpU,EAAOwH,gBAE3DxH,EAAOoG,cAAc,GACrBpG,EAAO0J,aAAa0K,GACpBpU,EAAOqH,iBACPrH,EAAO0I,oBACP1I,EAAO6H,wBAEDF,GAAgB3H,EAAOyH,cAAkBG,GAAU5H,EAAO0H,QAC9D1H,EAAO6H,sBAGL7H,EAAOzE,OAAOsa,eAAgB,CAYhC7lB,aAAagQ,EAAO2kB,WAAWW,SAC/BtlB,EAAO2kB,WAAWW,aAAU5wB,EAC5B,IAAI6wB,EAAsBvlB,EAAO2kB,WAAWxB,kBACxCoC,EAAoBx4B,QAAU,IAChCw4B,EAAoBC,QAEtB,IAAIC,EAAcF,EAAoBx4B,OAASw4B,EAAoBA,EAAoBx4B,OAAS,QAAK2H,EACjGgxB,EAAaH,EAAoB,GAErC,GADAA,EAAoBx0B,KAAKm0B,GACrBO,IAAgBP,EAAWJ,MAAQW,EAAYX,OAASI,EAAWpa,YAAc2a,EAAY3a,WAE/Fya,EAAoBlwB,OAAO,QACtB,GAAIkwB,EAAoBx4B,QAAU,IAClCm4B,EAAW7Q,KAAOqR,EAAWrR,KAAO,KACpCqR,EAAWZ,MAAQI,EAAWJ,OAAS,GACvCI,EAAWJ,OAAS,EACzB,CAOA,IAAIa,EAAkBb,EAAQ,EAAI,GAAM,GACxC9kB,EAAO2kB,WAAWzB,oBAAsBgC,EACxCK,EAAoBlwB,OAAO,GAC3B2K,EAAO2kB,WAAWW,QAAUzrB,EAAMG,UAAS,WACzCgG,EAAOsM,eAAetM,EAAOzE,OAAO0K,OAAO,OAAMvR,EAAWixB,KAC3D,GAEA3lB,EAAO2kB,WAAWW,UAIrBtlB,EAAO2kB,WAAWW,QAAUzrB,EAAMG,UAAS,WAEzCgG,EAAO2kB,WAAWzB,oBAAsBgC,EACxCK,EAAoBlwB,OAAO,GAC3B2K,EAAOsM,eAAetM,EAAOzE,OAAO0K,OAAO,OAAMvR,EAH3B,MAIrB,MAUP,GALK0wB,GAAqBplB,EAAO/B,KAAK,SAAUhK,GAG5C+L,EAAOzE,OAAOub,UAAY9W,EAAOzE,OAAOqqB,8BAAgC5lB,EAAO8W,SAAS+O,OAExFzR,IAAapU,EAAOgH,gBAAkBoN,IAAapU,EAAOwH,eAAkB,OAAO,OAtI9D,CAE3B,IAAIse,EAAW,CACbzR,KAAMxa,EAAMK,MACZ4qB,MAAOniB,KAAK+B,IAAIogB,GAChBha,UAAWnI,KAAKwiB,KAAKL,GACrBiB,IAAKhxB,GAIHouB,EAAoBnjB,EAAO2kB,WAAWxB,kBACtCA,EAAkBp2B,QAAU,GAC9Bo2B,EAAkBqC,QAEpB,IAAIQ,EAAY7C,EAAkBp2B,OAASo2B,EAAkBA,EAAkBp2B,OAAS,QAAK2H,EAmB7F,GAlBAyuB,EAAkBpyB,KAAK+0B,GAQnBE,GACEF,EAAShb,YAAckb,EAAUlb,WAAagb,EAAShB,MAAQkB,EAAUlB,OAASgB,EAASzR,KAAO2R,EAAU3R,KAAO,MACrHrU,EAAO2kB,WAAWsB,cAAcH,GAGlC9lB,EAAO2kB,WAAWsB,cAAcH,GAK9B9lB,EAAO2kB,WAAWuB,cAAcJ,GAClC,OAAO,EA0GX,OAFI7xB,EAAEqe,eAAkBre,EAAEqe,iBACnBre,EAAE2uB,aAAc,GAChB,GAETqD,cAAe,SAAuBH,GACpC,IAAI9lB,EAASvQ,KAIb,OAAIq2B,EAAShB,OAAS,GAAKjrB,EAAMK,MAAQ8F,EAAO2kB,WAAW1B,eAAiB,KAgBxE6C,EAAShb,UAAY,EACjB9K,EAAO0H,QAAS1H,EAAOzE,OAAO0M,MAAUjI,EAAOoK,YACnDpK,EAAO0L,YACP1L,EAAO/B,KAAK,SAAU6nB,EAASC,MAEtB/lB,EAAOyH,cAAezH,EAAOzE,OAAO0M,MAAUjI,EAAOoK,YAChEpK,EAAO8L,YACP9L,EAAO/B,KAAK,SAAU6nB,EAASC,MAGjC/lB,EAAO2kB,WAAW1B,gBAAiB,IAAKl0B,EAAIc,MAAQs2B,WAE7C,IAETD,cAAe,SAAuBJ,GACpC,IAAI9lB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOopB,WAC3B,GAAImB,EAAShb,UAAY,GACvB,GAAI9K,EAAO0H,QAAU1H,EAAOzE,OAAO0M,MAAQ1M,EAAOspB,eAEhD,OAAO,OAEJ,GAAI7kB,EAAOyH,cAAgBzH,EAAOzE,OAAO0M,MAAQ1M,EAAOspB,eAE7D,OAAO,EAET,OAAO,GAEThC,OAAQ,WACN,IAAI7iB,EAASvQ,KACTsF,EAAQiuB,GAAWjuB,QACvB,GAAIiL,EAAOzE,OAAOkG,QAEhB,OADAzB,EAAO4J,UAAUvc,oBAAoB0H,EAAOiL,EAAO2kB,WAAWrD,SACvD,EAET,IAAKvsB,EAAS,OAAO,EACrB,GAAIiL,EAAO2kB,WAAW3jB,QAAW,OAAO,EACxC,IAAItU,EAASsT,EAAOC,IAQpB,MAP8C,cAA1CD,EAAOzE,OAAOopB,WAAWC,eAC3Bl4B,EAAS2D,EAAE2P,EAAOzE,OAAOopB,WAAWC,eAEtCl4B,EAAO8G,GAAG,aAAcwM,EAAO2kB,WAAWH,kBAC1C93B,EAAO8G,GAAG,aAAcwM,EAAO2kB,WAAWD,kBAC1Ch4B,EAAO8G,GAAGuB,EAAOiL,EAAO2kB,WAAWrD,QACnCthB,EAAO2kB,WAAW3jB,SAAU,GACrB,GAET8hB,QAAS,WACP,IAAI9iB,EAASvQ,KACTsF,EAAQiuB,GAAWjuB,QACvB,GAAIiL,EAAOzE,OAAOkG,QAEhB,OADAzB,EAAO4J,UAAUxc,iBAAiB2H,EAAOiL,EAAO2kB,WAAWrD,SACpD,EAET,IAAKvsB,EAAS,OAAO,EACrB,IAAKiL,EAAO2kB,WAAW3jB,QAAW,OAAO,EACzC,IAAItU,EAASsT,EAAOC,IAMpB,MAL8C,cAA1CD,EAAOzE,OAAOopB,WAAWC,eAC3Bl4B,EAAS2D,EAAE2P,EAAOzE,OAAOopB,WAAWC,eAEtCl4B,EAAOuI,IAAIF,EAAOiL,EAAO2kB,WAAWrD,QACpCthB,EAAO2kB,WAAW3jB,SAAU,GACrB,IAoDPolB,GAAa,CACfxmB,OAAQ,WAEN,IAAII,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOib,WAE3B,IAAIxW,EAAOzE,OAAO0M,KAAlB,CACA,IAAIgS,EAAMja,EAAOwW,WACb6P,EAAUpM,EAAIoM,QACdC,EAAUrM,EAAIqM,QAEdA,GAAWA,EAAQv5B,OAAS,IAC1BiT,EAAOyH,YACT6e,EAAQ70B,SAAS8J,EAAOgrB,eAExBD,EAAQv0B,YAAYwJ,EAAOgrB,eAE7BD,EAAQtmB,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,SAAW,WAAa,eAAelS,EAAOirB,YAE1FH,GAAWA,EAAQt5B,OAAS,IAC1BiT,EAAO0H,MACT2e,EAAQ50B,SAAS8J,EAAOgrB,eAExBF,EAAQt0B,YAAYwJ,EAAOgrB,eAE7BF,EAAQrmB,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,SAAW,WAAa,eAAelS,EAAOirB,cAGhGC,YAAa,SAAqBxyB,GAChC,IAAI+L,EAASvQ,KACbwE,EAAEqe,iBACEtS,EAAOyH,cAAgBzH,EAAOzE,OAAO0M,MACzCjI,EAAO8L,aAET4a,YAAa,SAAqBzyB,GAChC,IAAI+L,EAASvQ,KACbwE,EAAEqe,iBACEtS,EAAO0H,QAAU1H,EAAOzE,OAAO0M,MACnCjI,EAAO0L,aAETgM,KAAM,WACJ,IAII2O,EACAC,EALAtmB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOib,YACrBjb,EAAOkb,QAAUlb,EAAOmb,UAI1Bnb,EAAOkb,SACT4P,EAAUh2B,EAAEkL,EAAOkb,QAEjBzW,EAAOzE,OAAOqc,mBACc,iBAAlBrc,EAAOkb,QACd4P,EAAQt5B,OAAS,GACyB,IAA1CiT,EAAOC,IAAI3G,KAAKiC,EAAOkb,QAAQ1pB,SAElCs5B,EAAUrmB,EAAOC,IAAI3G,KAAKiC,EAAOkb,UAGjClb,EAAOmb,SACT4P,EAAUj2B,EAAEkL,EAAOmb,QAEjB1W,EAAOzE,OAAOqc,mBACc,iBAAlBrc,EAAOmb,QACd4P,EAAQv5B,OAAS,GACyB,IAA1CiT,EAAOC,IAAI3G,KAAKiC,EAAOmb,QAAQ3pB,SAElCu5B,EAAUtmB,EAAOC,IAAI3G,KAAKiC,EAAOmb,UAIjC2P,GAAWA,EAAQt5B,OAAS,GAC9Bs5B,EAAQ7yB,GAAG,QAASwM,EAAOwW,WAAWkQ,aAEpCJ,GAAWA,EAAQv5B,OAAS,GAC9Bu5B,EAAQ9yB,GAAG,QAASwM,EAAOwW,WAAWiQ,aAGxC5sB,EAAMpN,OAAOuT,EAAOwW,WAAY,CAC9B6P,QAASA,EACT5P,OAAQ4P,GAAWA,EAAQ,GAC3BC,QAASA,EACT5P,OAAQ4P,GAAWA,EAAQ,OAG/BvJ,QAAS,WACP,IAAI/c,EAASvQ,KACTwqB,EAAMja,EAAOwW,WACb6P,EAAUpM,EAAIoM,QACdC,EAAUrM,EAAIqM,QACdD,GAAWA,EAAQt5B,SACrBs5B,EAAQpxB,IAAI,QAAS+K,EAAOwW,WAAWkQ,aACvCL,EAAQt0B,YAAYiO,EAAOzE,OAAOib,WAAW+P,gBAE3CD,GAAWA,EAAQv5B,SACrBu5B,EAAQrxB,IAAI,QAAS+K,EAAOwW,WAAWiQ,aACvCH,EAAQv0B,YAAYiO,EAAOzE,OAAOib,WAAW+P,kBAgF/CI,GAAa,CACf/mB,OAAQ,WAEN,IAAII,EAASvQ,KACTkR,EAAMX,EAAOW,IACbpF,EAASyE,EAAOzE,OAAOqrB,WAC3B,GAAKrrB,EAAOxI,IAAOiN,EAAO4mB,WAAW7zB,IAAOiN,EAAO4mB,WAAW3mB,KAAwC,IAAjCD,EAAO4mB,WAAW3mB,IAAIlT,OAA3F,CACA,IAGI85B,EAHA1lB,EAAenB,EAAOe,SAAWf,EAAOzE,OAAOwF,QAAQC,QAAUhB,EAAOe,QAAQG,OAAOnU,OAASiT,EAAOkB,OAAOnU,OAC9GkT,EAAMD,EAAO4mB,WAAW3mB,IAGxB6mB,EAAQ9mB,EAAOzE,OAAO0M,KAAOtF,KAAKE,MAAM1B,EAAsC,EAAtBnB,EAAOyL,cAAqBzL,EAAOzE,OAAOiI,gBAAkBxD,EAAOoB,SAASrU,OAcxI,GAbIiT,EAAOzE,OAAO0M,OAChB4e,EAAUlkB,KAAKE,MAAM7C,EAAOsG,YAActG,EAAOyL,cAAgBzL,EAAOzE,OAAOiI,iBACjErC,EAAe,EAA2B,EAAtBnB,EAAOyL,eACvCob,GAAY1lB,EAAsC,EAAtBnB,EAAOyL,cAEjCob,EAAUC,EAAQ,IAAKD,GAAWC,GAClCD,EAAU,GAAsC,YAAjC7mB,EAAOzE,OAAOwrB,iBAAgCF,EAAUC,EAAQD,IAEnFA,OADqC,IAArB7mB,EAAO0F,UACb1F,EAAO0F,UAEP1F,EAAOsG,aAAe,EAGd,YAAhB/K,EAAOqV,MAAsB5Q,EAAO4mB,WAAWI,SAAWhnB,EAAO4mB,WAAWI,QAAQj6B,OAAS,EAAG,CAClG,IACIk6B,EACAC,EACAC,EAHAH,EAAUhnB,EAAO4mB,WAAWI,QAoBhC,GAhBIzrB,EAAO6rB,iBACTpnB,EAAO4mB,WAAWS,WAAaL,EAAQ9uB,GAAG,GAAG8H,EAAOI,eAAiB,aAAe,gBAAe,GACnGH,EAAI5I,IAAI2I,EAAOI,eAAiB,QAAU,SAAYJ,EAAO4mB,WAAWS,YAAc9rB,EAAO+rB,mBAAqB,GAAM,MACpH/rB,EAAO+rB,mBAAqB,QAA8B5yB,IAAzBsL,EAAO4I,gBAC1C5I,EAAO4mB,WAAWW,oBAAuBV,EAAU7mB,EAAO4I,cACtD5I,EAAO4mB,WAAWW,mBAAsBhsB,EAAO+rB,mBAAqB,EACtEtnB,EAAO4mB,WAAWW,mBAAqBhsB,EAAO+rB,mBAAqB,EAC1DtnB,EAAO4mB,WAAWW,mBAAqB,IAChDvnB,EAAO4mB,WAAWW,mBAAqB,IAG3CN,EAAaJ,EAAU7mB,EAAO4mB,WAAWW,mBAEzCJ,IADAD,EAAYD,GAActkB,KAAKiB,IAAIojB,EAAQj6B,OAAQwO,EAAO+rB,oBAAsB,IACxDL,GAAc,GAExCD,EAAQj1B,YAAcwJ,EAAwB,kBAAI,IAAOA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAC3P0E,EAAIlT,OAAS,EACfi6B,EAAQxvB,MAAK,SAAUO,EAAOyvB,GAC5B,IAAIC,EAAUp3B,EAAEm3B,GACZE,EAAcD,EAAQ1vB,QACtB2vB,IAAgBb,GAClBY,EAAQh2B,SAAS8J,EAAOosB,mBAEtBpsB,EAAO6rB,iBACLM,GAAeT,GAAcS,GAAeR,GAC9CO,EAAQh2B,SAAW8J,EAAwB,kBAAI,SAE7CmsB,IAAgBT,GAClBQ,EACG1uB,OACAtH,SAAW8J,EAAwB,kBAAI,SACvCxC,OACAtH,SAAW8J,EAAwB,kBAAI,cAExCmsB,IAAgBR,GAClBO,EACG9uB,OACAlH,SAAW8J,EAAwB,kBAAI,SACvC5C,OACAlH,SAAW8J,EAAwB,kBAAI,sBAI3C,CACL,IAAIksB,EAAUT,EAAQ9uB,GAAG2uB,GACrBa,EAAcD,EAAQ1vB,QAE1B,GADA0vB,EAAQh2B,SAAS8J,EAAOosB,mBACpBpsB,EAAO6rB,eAAgB,CAGzB,IAFA,IAAIQ,EAAwBZ,EAAQ9uB,GAAG+uB,GACnCY,EAAuBb,EAAQ9uB,GAAGgvB,GAC7B92B,EAAI62B,EAAY72B,GAAK82B,EAAW92B,GAAK,EAC5C42B,EAAQ9uB,GAAG9H,GAAGqB,SAAW8J,EAAwB,kBAAI,SAEvD,GAAIyE,EAAOzE,OAAO0M,KAChB,GAAIyf,GAAeV,EAAQj6B,OAASwO,EAAO+rB,mBAAoB,CAC7D,IAAK,IAAIxiB,EAAMvJ,EAAO+rB,mBAAoBxiB,GAAO,EAAGA,GAAO,EACzDkiB,EAAQ9uB,GAAG8uB,EAAQj6B,OAAS+X,GAAKrT,SAAW8J,EAAwB,kBAAI,SAE1EyrB,EAAQ9uB,GAAG8uB,EAAQj6B,OAASwO,EAAO+rB,mBAAqB,GAAG71B,SAAW8J,EAAwB,kBAAI,cAElGqsB,EACG7uB,OACAtH,SAAW8J,EAAwB,kBAAI,SACvCxC,OACAtH,SAAW8J,EAAwB,kBAAI,cAC1CssB,EACGlvB,OACAlH,SAAW8J,EAAwB,kBAAI,SACvC5C,OACAlH,SAAW8J,EAAwB,kBAAI,mBAG5CqsB,EACG7uB,OACAtH,SAAW8J,EAAwB,kBAAI,SACvCxC,OACAtH,SAAW8J,EAAwB,kBAAI,cAC1CssB,EACGlvB,OACAlH,SAAW8J,EAAwB,kBAAI,SACvC5C,OACAlH,SAAW8J,EAAwB,kBAAI,eAIhD,GAAIA,EAAO6rB,eAAgB,CACzB,IAAIU,EAAuBnlB,KAAKiB,IAAIojB,EAAQj6B,OAAQwO,EAAO+rB,mBAAqB,GAC5ES,GAAmB/nB,EAAO4mB,WAAWS,WAAaS,EAAyB9nB,EAAO4mB,WAAqB,YAAK,EAAMO,EAAWnnB,EAAO4mB,WAAWS,WAC/IpH,EAAatf,EAAM,QAAU,OACjCqmB,EAAQ3vB,IAAI2I,EAAOI,eAAiB6f,EAAa,MAAQ8H,EAAgB,OAO7E,GAJoB,aAAhBxsB,EAAOqV,OACT3Q,EAAI3G,KAAM,IAAOiC,EAAmB,cAAI9D,KAAK8D,EAAOysB,sBAAsBnB,EAAU,IACpF5mB,EAAI3G,KAAM,IAAOiC,EAAiB,YAAI9D,KAAK8D,EAAO0sB,oBAAoBnB,KAEpD,gBAAhBvrB,EAAOqV,KAAwB,CACjC,IAAIsX,EAEFA,EADE3sB,EAAO4sB,oBACcnoB,EAAOI,eAAiB,WAAa,aAErCJ,EAAOI,eAAiB,aAAe,WAEhE,IAAIgoB,GAASvB,EAAU,GAAKC,EACxBuB,EAAS,EACTC,EAAS,EACgB,eAAzBJ,EACFG,EAASD,EAETE,EAASF,EAEXnoB,EAAI3G,KAAM,IAAOiC,EAA2B,sBAAItI,UAAW,6BAA+Bo1B,EAAS,YAAcC,EAAS,KAAMl1B,WAAW4M,EAAOzE,OAAO0K,OAEvI,WAAhB1K,EAAOqV,MAAqBrV,EAAOgtB,cACrCtoB,EAAIvP,KAAK6K,EAAOgtB,aAAavoB,EAAQ6mB,EAAU,EAAGC,IAClD9mB,EAAO/B,KAAK,mBAAoB+B,EAAQC,EAAI,KAE5CD,EAAO/B,KAAK,mBAAoB+B,EAAQC,EAAI,IAE9CA,EAAID,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,SAAW,WAAa,eAAelS,EAAOirB,aAE1FgC,OAAQ,WAEN,IAAIxoB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOqrB,WAC3B,GAAKrrB,EAAOxI,IAAOiN,EAAO4mB,WAAW7zB,IAAOiN,EAAO4mB,WAAW3mB,KAAwC,IAAjCD,EAAO4mB,WAAW3mB,IAAIlT,OAA3F,CACA,IAAIoU,EAAenB,EAAOe,SAAWf,EAAOzE,OAAOwF,QAAQC,QAAUhB,EAAOe,QAAQG,OAAOnU,OAASiT,EAAOkB,OAAOnU,OAE9GkT,EAAMD,EAAO4mB,WAAW3mB,IACxBwoB,EAAiB,GACrB,GAAoB,YAAhBltB,EAAOqV,KAAoB,CAE7B,IADA,IAAI8X,EAAkB1oB,EAAOzE,OAAO0M,KAAOtF,KAAKE,MAAM1B,EAAsC,EAAtBnB,EAAOyL,cAAqBzL,EAAOzE,OAAOiI,gBAAkBxD,EAAOoB,SAASrU,OACzIqD,EAAI,EAAGA,EAAIs4B,EAAiBt4B,GAAK,EACpCmL,EAAOotB,aACTF,GAAkBltB,EAAOotB,aAAazyB,KAAK8J,EAAQ5P,EAAGmL,EAAOqtB,aAE7DH,GAAkB,IAAOltB,EAAoB,cAAI,WAAeA,EAAkB,YAAI,OAAWA,EAAoB,cAAI,IAG7H0E,EAAIvP,KAAK+3B,GACTzoB,EAAO4mB,WAAWI,QAAU/mB,EAAI3G,KAAM,IAAOiC,EAAkB,aAE7C,aAAhBA,EAAOqV,OAEP6X,EADEltB,EAAOstB,eACQttB,EAAOstB,eAAe3yB,KAAK8J,EAAQzE,EAAOutB,aAAcvtB,EAAOwtB,YAE/D,gBAAoBxtB,EAAmB,aAAvC,4BAEKA,EAAiB,WAAI,YAE7C0E,EAAIvP,KAAK+3B,IAES,gBAAhBltB,EAAOqV,OAEP6X,EADEltB,EAAOytB,kBACQztB,EAAOytB,kBAAkB9yB,KAAK8J,EAAQzE,EAAO0tB,sBAE7C,gBAAoB1tB,EAA2B,qBAAI,YAEtE0E,EAAIvP,KAAK+3B,IAES,WAAhBltB,EAAOqV,MACT5Q,EAAO/B,KAAK,mBAAoB+B,EAAO4mB,WAAW3mB,IAAI,MAG1DyX,KAAM,WACJ,IAAI1X,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOqrB,WAC3B,GAAKrrB,EAAOxI,GAAZ,CAEA,IAAIkN,EAAM5P,EAAEkL,EAAOxI,IACA,IAAfkN,EAAIlT,SAGNiT,EAAOzE,OAAOqc,mBACU,iBAAdrc,EAAOxI,IACdkN,EAAIlT,OAAS,IAEhBkT,EAAMD,EAAOC,IAAI3G,KAAKiC,EAAOxI,KAGX,YAAhBwI,EAAOqV,MAAsBrV,EAAO2tB,WACtCjpB,EAAIxO,SAAS8J,EAAO4tB,gBAGtBlpB,EAAIxO,SAAS8J,EAAO6tB,cAAgB7tB,EAAOqV,MAEvB,YAAhBrV,EAAOqV,MAAsBrV,EAAO6rB,iBACtCnnB,EAAIxO,SAAU,GAAM8J,EAAoB,cAAKA,EAAW,KAAI,YAC5DyE,EAAO4mB,WAAWW,mBAAqB,EACnChsB,EAAO+rB,mBAAqB,IAC9B/rB,EAAO+rB,mBAAqB,IAGZ,gBAAhB/rB,EAAOqV,MAA0BrV,EAAO4sB,qBAC1CloB,EAAIxO,SAAS8J,EAAO8tB,0BAGlB9tB,EAAO2tB,WACTjpB,EAAIzM,GAAG,QAAU,IAAO+H,EAAkB,aAAI,SAAiBtH,GAC7DA,EAAEqe,iBACF,IAAIva,EAAQ1H,EAAEZ,MAAMsI,QAAUiI,EAAOzE,OAAOiI,eACxCxD,EAAOzE,OAAO0M,OAAQlQ,GAASiI,EAAOyL,cAC1CzL,EAAOgL,QAAQjT,MAInB8B,EAAMpN,OAAOuT,EAAO4mB,WAAY,CAC9B3mB,IAAKA,EACLlN,GAAIkN,EAAI,QAGZ8c,QAAS,WACP,IAAI/c,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOqrB,WAC3B,GAAKrrB,EAAOxI,IAAOiN,EAAO4mB,WAAW7zB,IAAOiN,EAAO4mB,WAAW3mB,KAAwC,IAAjCD,EAAO4mB,WAAW3mB,IAAIlT,OAA3F,CACA,IAAIkT,EAAMD,EAAO4mB,WAAW3mB,IAE5BA,EAAIlO,YAAYwJ,EAAO+tB,aACvBrpB,EAAIlO,YAAYwJ,EAAO6tB,cAAgB7tB,EAAOqV,MAC1C5Q,EAAO4mB,WAAWI,SAAWhnB,EAAO4mB,WAAWI,QAAQj1B,YAAYwJ,EAAOosB,mBAC1EpsB,EAAO2tB,WACTjpB,EAAIhL,IAAI,QAAU,IAAOsG,EAAkB,gBA0G7CguB,GAAY,CACd7f,aAAc,WACZ,IAAI1J,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOiuB,UAAUz2B,IAAOiN,EAAOwpB,UAAUz2B,GAArD,CACA,IAAIy2B,EAAYxpB,EAAOwpB,UACnB7oB,EAAMX,EAAOY,aACbwG,EAAWpH,EAAOoH,SAClBqiB,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBC,EAAUH,EAAUG,QACpB1pB,EAAMupB,EAAUvpB,IAChB1E,EAASyE,EAAOzE,OAAOiuB,UAEvBI,EAAUH,EACVI,GAAUH,EAAYD,GAAYriB,EAClCzG,GACFkpB,GAAUA,GACG,GACXD,EAAUH,EAAWI,EACrBA,EAAS,IACCA,EAASJ,EAAWC,IAC9BE,EAAUF,EAAYG,GAEfA,EAAS,GAClBD,EAAUH,EAAWI,EACrBA,EAAS,GACAA,EAASJ,EAAWC,IAC7BE,EAAUF,EAAYG,GAEpB7pB,EAAOI,gBACTupB,EAAQ12B,UAAW,eAAiB42B,EAAS,aAC7CF,EAAQ,GAAG17B,MAAM6R,MAAQ8pB,EAAU,OAEnCD,EAAQ12B,UAAW,oBAAsB42B,EAAS,UAClDF,EAAQ,GAAG17B,MAAM8R,OAAS6pB,EAAU,MAElCruB,EAAOuuB,OACT95B,aAAagQ,EAAOwpB,UAAUlE,SAC9BrlB,EAAI,GAAGhS,MAAM87B,QAAU,EACvB/pB,EAAOwpB,UAAUlE,QAAUv1B,YAAW,WACpCkQ,EAAI,GAAGhS,MAAM87B,QAAU,EACvB9pB,EAAI7M,WAAW,OACd,QAGPgT,cAAe,SAAuB/S,GACpC,IAAI2M,EAASvQ,KACRuQ,EAAOzE,OAAOiuB,UAAUz2B,IAAOiN,EAAOwpB,UAAUz2B,IACrDiN,EAAOwpB,UAAUG,QAAQv2B,WAAWC,IAEtCwM,WAAY,WACV,IAAIG,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOiuB,UAAUz2B,IAAOiN,EAAOwpB,UAAUz2B,GAArD,CAEA,IAAIy2B,EAAYxpB,EAAOwpB,UACnBG,EAAUH,EAAUG,QACpB1pB,EAAMupB,EAAUvpB,IAEpB0pB,EAAQ,GAAG17B,MAAM6R,MAAQ,GACzB6pB,EAAQ,GAAG17B,MAAM8R,OAAS,GAC1B,IAII0pB,EAJAC,EAAY1pB,EAAOI,eAAiBH,EAAI,GAAG3J,YAAc2J,EAAI,GAAGxJ,aAEhEuzB,EAAUhqB,EAAOO,KAAOP,EAAOqC,YAC/B4nB,EAAcD,GAAWN,EAAY1pB,EAAOO,MAG9CkpB,EADuC,SAArCzpB,EAAOzE,OAAOiuB,UAAUC,SACfC,EAAYM,EAEZ1pB,SAASN,EAAOzE,OAAOiuB,UAAUC,SAAU,IAGpDzpB,EAAOI,eACTupB,EAAQ,GAAG17B,MAAM6R,MAAQ2pB,EAAW,KAEpCE,EAAQ,GAAG17B,MAAM8R,OAAS0pB,EAAW,KAIrCxpB,EAAI,GAAGhS,MAAMi8B,QADXF,GAAW,EACU,OAEA,GAErBhqB,EAAOzE,OAAOiuB,UAAUM,OAC1B7pB,EAAI,GAAGhS,MAAM87B,QAAU,GAEzBlwB,EAAMpN,OAAO+8B,EAAW,CACtBE,UAAWA,EACXM,QAASA,EACTC,YAAaA,EACbR,SAAUA,IAEZD,EAAUvpB,IAAID,EAAOzE,OAAOoK,eAAiB3F,EAAOyN,SAAW,WAAa,eAAezN,EAAOzE,OAAOiuB,UAAUhD,aAErH2D,mBAAoB,SAA4Bl2B,GAE9C,OADaxE,KACF2Q,eACW,eAAXnM,EAAE2c,MAAoC,cAAX3c,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAG8Y,QAAUn2B,EAAEm2B,QAE3E,eAAXn2B,EAAE2c,MAAoC,cAAX3c,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAG+Y,QAAUp2B,EAAEo2B,SAE/FC,gBAAiB,SAAyBr2B,GACxC,IAQIs2B,EARAvqB,EAASvQ,KACT+5B,EAAYxpB,EAAOwpB,UACnB7oB,EAAMX,EAAOY,aACbX,EAAMupB,EAAUvpB,IAChBwpB,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBc,EAAehB,EAAUgB,aAG7BD,GAAkBf,EAAUW,mBAAmBl2B,GAAMgM,EAAIvJ,SAASsJ,EAAOI,eAAiB,OAAS,QAC7E,OAAjBoqB,EAAwBA,EAAef,EAAW,KAAOC,EAAYD,GAC1Ec,EAAgB5nB,KAAKK,IAAIL,KAAKiB,IAAI2mB,EAAe,GAAI,GACjD5pB,IACF4pB,EAAgB,EAAIA,GAGtB,IAAInW,EAAWpU,EAAOgH,gBAAmBhH,EAAOwH,eAAiBxH,EAAOgH,gBAAkBujB,EAE1FvqB,EAAOqH,eAAe+M,GACtBpU,EAAO0J,aAAa0K,GACpBpU,EAAO0I,oBACP1I,EAAO6H,uBAET4iB,YAAa,SAAqBx2B,GAChC,IAAI+L,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOiuB,UACvBA,EAAYxpB,EAAOwpB,UACnB/oB,EAAaT,EAAOS,WACpBR,EAAMupB,EAAUvpB,IAChB0pB,EAAUH,EAAUG,QACxB3pB,EAAOwpB,UAAUzY,WAAY,EAC7B/Q,EAAOwpB,UAAUgB,aAAgBv2B,EAAEvH,SAAWi9B,EAAQ,IAAM11B,EAAEvH,SAAWi9B,EACrEH,EAAUW,mBAAmBl2B,GAAKA,EAAEvH,OAAOkK,wBAAwBoJ,EAAOI,eAAiB,OAAS,OAAS,KACjHnM,EAAEqe,iBACFre,EAAEyf,kBAEFjT,EAAWrN,WAAW,KACtBu2B,EAAQv2B,WAAW,KACnBo2B,EAAUc,gBAAgBr2B,GAE1BjE,aAAagQ,EAAOwpB,UAAUkB,aAE9BzqB,EAAI7M,WAAW,GACXmI,EAAOuuB,MACT7pB,EAAI5I,IAAI,UAAW,GAEjB2I,EAAOzE,OAAOkG,SAChBzB,EAAOS,WAAWpJ,IAAI,mBAAoB,QAE5C2I,EAAO/B,KAAK,qBAAsBhK,IAEpC02B,WAAY,SAAoB12B,GAC9B,IAAI+L,EAASvQ,KACT+5B,EAAYxpB,EAAOwpB,UACnB/oB,EAAaT,EAAOS,WACpBR,EAAMupB,EAAUvpB,IAChB0pB,EAAUH,EAAUG,QAEnB3pB,EAAOwpB,UAAUzY,YAClB9c,EAAEqe,eAAkBre,EAAEqe,iBACnBre,EAAE2uB,aAAc,EACvB4G,EAAUc,gBAAgBr2B,GAC1BwM,EAAWrN,WAAW,GACtB6M,EAAI7M,WAAW,GACfu2B,EAAQv2B,WAAW,GACnB4M,EAAO/B,KAAK,oBAAqBhK,KAEnC22B,UAAW,SAAmB32B,GAC5B,IAAI+L,EAASvQ,KAET8L,EAASyE,EAAOzE,OAAOiuB,UACvBA,EAAYxpB,EAAOwpB,UACnB/oB,EAAaT,EAAOS,WACpBR,EAAMupB,EAAUvpB,IAEfD,EAAOwpB,UAAUzY,YACtB/Q,EAAOwpB,UAAUzY,WAAY,EACzB/Q,EAAOzE,OAAOkG,UAChBzB,EAAOS,WAAWpJ,IAAI,mBAAoB,IAC1CoJ,EAAWrN,WAAW,KAEpBmI,EAAOuuB,OACT95B,aAAagQ,EAAOwpB,UAAUkB,aAC9B1qB,EAAOwpB,UAAUkB,YAAc7wB,EAAMG,UAAS,WAC5CiG,EAAI5I,IAAI,UAAW,GACnB4I,EAAI7M,WAAW,OACd,MAEL4M,EAAO/B,KAAK,mBAAoBhK,GAC5BsH,EAAOsvB,eACT7qB,EAAOsM,mBAGXwe,gBAAiB,WACf,IAAI9qB,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOiuB,UAAUz2B,GAA7B,CACA,IAAIy2B,EAAYxpB,EAAOwpB,UACnBpN,EAAmBpc,EAAOoc,iBAC1BC,EAAqBrc,EAAOqc,mBAC5B9gB,EAASyE,EAAOzE,OAEhB7O,EADM88B,EAAUvpB,IACH,GACb8qB,KAAiBxuB,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAO5kB,SAAS,GACjG+I,KAAkBP,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GAChGwI,EAAQC,OAKX9P,EAAOU,iBAAiBgvB,EAAiB5D,MAAOxY,EAAOwpB,UAAUiB,YAAaM,GAC9Er+B,EAAOU,iBAAiBgvB,EAAiB3D,KAAMzY,EAAOwpB,UAAUmB,WAAYI,GAC5Er+B,EAAOU,iBAAiBgvB,EAAiB1D,IAAK1Y,EAAOwpB,UAAUoB,UAAW9tB,KAN1EpQ,EAAOU,iBAAiBivB,EAAmB7D,MAAOxY,EAAOwpB,UAAUiB,YAAaM,GAChF/9B,EAAII,iBAAiBivB,EAAmB5D,KAAMzY,EAAOwpB,UAAUmB,WAAYI,GAC3E/9B,EAAII,iBAAiBivB,EAAmB3D,IAAK1Y,EAAOwpB,UAAUoB,UAAW9tB,MAO7EkuB,iBAAkB,WAChB,IAAIhrB,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOiuB,UAAUz2B,GAA7B,CACA,IAAIy2B,EAAYxpB,EAAOwpB,UACnBpN,EAAmBpc,EAAOoc,iBAC1BC,EAAqBrc,EAAOqc,mBAC5B9gB,EAASyE,EAAOzE,OAEhB7O,EADM88B,EAAUvpB,IACH,GACb8qB,KAAiBxuB,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAO5kB,SAAS,GACjG+I,KAAkBP,EAAQO,kBAAmBvB,EAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GAChGwI,EAAQC,OAKX9P,EAAOW,oBAAoB+uB,EAAiB5D,MAAOxY,EAAOwpB,UAAUiB,YAAaM,GACjFr+B,EAAOW,oBAAoB+uB,EAAiB3D,KAAMzY,EAAOwpB,UAAUmB,WAAYI,GAC/Er+B,EAAOW,oBAAoB+uB,EAAiB1D,IAAK1Y,EAAOwpB,UAAUoB,UAAW9tB,KAN7EpQ,EAAOW,oBAAoBgvB,EAAmB7D,MAAOxY,EAAOwpB,UAAUiB,YAAaM,GACnF/9B,EAAIK,oBAAoBgvB,EAAmB5D,KAAMzY,EAAOwpB,UAAUmB,WAAYI,GAC9E/9B,EAAIK,oBAAoBgvB,EAAmB3D,IAAK1Y,EAAOwpB,UAAUoB,UAAW9tB,MAOhF4a,KAAM,WACJ,IAAI1X,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOiuB,UAAUz2B,GAA7B,CACA,IAAIy2B,EAAYxpB,EAAOwpB,UACnByB,EAAYjrB,EAAOC,IACnB1E,EAASyE,EAAOzE,OAAOiuB,UAEvBvpB,EAAM5P,EAAEkL,EAAOxI,IACfiN,EAAOzE,OAAOqc,mBAA0C,iBAAdrc,EAAOxI,IAAmBkN,EAAIlT,OAAS,GAA0C,IAArCk+B,EAAU3xB,KAAKiC,EAAOxI,IAAIhG,SAClHkT,EAAMgrB,EAAU3xB,KAAKiC,EAAOxI,KAG9B,IAAI42B,EAAU1pB,EAAI3G,KAAM,IAAO0G,EAAOzE,OAAOiuB,UAAmB,WACzC,IAAnBG,EAAQ58B,SACV48B,EAAUt5B,EAAG,eAAmB2P,EAAOzE,OAAOiuB,UAAmB,UAAI,YACrEvpB,EAAI7H,OAAOuxB,IAGb9vB,EAAMpN,OAAO+8B,EAAW,CACtBvpB,IAAKA,EACLlN,GAAIkN,EAAI,GACR0pB,QAASA,EACTuB,OAAQvB,EAAQ,KAGdpuB,EAAO4vB,WACT3B,EAAUsB,oBAGd/N,QAAS,WACMttB,KACN+5B,UAAUwB,qBAyEjBI,GAAW,CACbC,aAAc,SAAsBt4B,EAAIqU,GACtC,IACIzG,EADSlR,KACIkR,IAEbV,EAAM5P,EAAE0C,GACRgyB,EAAYpkB,GAAO,EAAI,EAEvB2qB,EAAIrrB,EAAI5N,KAAK,yBAA2B,IACxCwX,EAAI5J,EAAI5N,KAAK,0BACbyX,EAAI7J,EAAI5N,KAAK,0BACb+1B,EAAQnoB,EAAI5N,KAAK,8BACjB03B,EAAU9pB,EAAI5N,KAAK,gCAwBvB,GAtBIwX,GAAKC,GACPD,EAAIA,GAAK,IACTC,EAAIA,GAAK,KAdEra,KAeK2Q,gBAChByJ,EAAIyhB,EACJxhB,EAAI,MAEJA,EAAIwhB,EACJzhB,EAAI,KAIJA,EADE,EAAIjZ,QAAQ,MAAQ,EACjB0P,SAASuJ,EAAG,IAAMzC,EAAW2d,EAAa,IAE1Clb,EAAIzC,EAAW2d,EAAa,KAGjCjb,EADE,EAAIlZ,QAAQ,MAAQ,EACjB0P,SAASwJ,EAAG,IAAM1C,EAAY,IAE9B0C,EAAI1C,EAAY,KAGnB,MAAO2iB,EAA6C,CACtD,IAAIwB,EAAiBxB,GAAYA,EAAU,IAAM,EAAIpnB,KAAK+B,IAAI0C,IAC9DnH,EAAI,GAAGhS,MAAM87B,QAAUwB,EAEzB,GAAI,MAAOnD,EACTnoB,EAAIhN,UAAW,eAAiB4W,EAAI,KAAOC,EAAI,cAC1C,CACL,IAAI0hB,EAAepD,GAAUA,EAAQ,IAAM,EAAIzlB,KAAK+B,IAAI0C,IACxDnH,EAAIhN,UAAW,eAAiB4W,EAAI,KAAOC,EAAI,gBAAkB0hB,EAAe,OAGpF9hB,aAAc,WACZ,IAAI1J,EAASvQ,KACTwQ,EAAMD,EAAOC,IACbiB,EAASlB,EAAOkB,OAChBkG,EAAWpH,EAAOoH,SAClBhG,EAAWpB,EAAOoB,SACtBnB,EAAIlS,SAAS,4IACVyJ,MAAK,SAAUO,EAAOhF,GACrBiN,EAAOyrB,SAASJ,aAAat4B,EAAIqU,MAErClG,EAAO1J,MAAK,SAAUgK,EAAYsb,GAChC,IAAI/V,EAAgB+V,EAAQ1V,SACxBpH,EAAOzE,OAAOiI,eAAiB,GAAqC,SAAhCxD,EAAOzE,OAAOuH,gBACpDiE,GAAiBpE,KAAKE,KAAKrB,EAAa,GAAM4F,GAAYhG,EAASrU,OAAS,IAE9Ega,EAAgBpE,KAAKiB,IAAIjB,KAAKK,IAAI+D,GAAgB,GAAI,GACtD1W,EAAEysB,GAASxjB,KAAK,4IACb9B,MAAK,SAAUO,EAAOhF,GACrBiN,EAAOyrB,SAASJ,aAAat4B,EAAIgU,UAIzCX,cAAe,SAAuB/S,QAClB,IAAbA,IAAsBA,EAAW5D,KAAK8L,OAAO0K,OAErCxW,KACIwQ,IACb3G,KAAK,4IACN9B,MAAK,SAAUO,EAAO2zB,GACrB,IAAIC,EAAct7B,EAAEq7B,GAChBE,EAAmBtrB,SAASqrB,EAAYt5B,KAAK,iCAAkC,KAAOgB,EACzE,IAAbA,IAAkBu4B,EAAmB,GACzCD,EAAYv4B,WAAWw4B,QA+C3BC,GAAO,CAETC,0BAA2B,SAAmC73B,GAC5D,GAAIA,EAAEqd,cAAcvkB,OAAS,EAAK,OAAO,EACzC,IAAIg/B,EAAK93B,EAAEqd,cAAc,GAAGC,MACxBya,EAAK/3B,EAAEqd,cAAc,GAAGG,MACxBwa,EAAKh4B,EAAEqd,cAAc,GAAGC,MACxB2a,EAAKj4B,EAAEqd,cAAc,GAAGG,MAE5B,OADe9O,KAAKyQ,KAAMzQ,KAAK0Q,IAAM4Y,EAAKF,EAAK,GAAQppB,KAAK0Q,IAAM6Y,EAAKF,EAAK,KAI9EG,eAAgB,SAAwBl4B,GACtC,IAAI+L,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAO6wB,KACvBA,EAAOpsB,EAAOosB,KACdC,EAAUD,EAAKC,QAGnB,GAFAD,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,GACnBhwB,EAAQY,SAAU,CACrB,GAAe,eAAXlJ,EAAE2c,MAAqC,eAAX3c,EAAE2c,MAAyB3c,EAAEqd,cAAcvkB,OAAS,EAClF,OAEFq/B,EAAKE,oBAAqB,EAC1BD,EAAQG,WAAaX,GAAKC,0BAA0B73B,GAEjDo4B,EAAQzL,UAAayL,EAAQzL,SAAS7zB,SACzCs/B,EAAQzL,SAAWvwB,EAAE4D,EAAEvH,QAAQ2M,QAAS,IAAO2G,EAAOzE,OAAiB,YACvC,IAA5B8wB,EAAQzL,SAAS7zB,SAAgBs/B,EAAQzL,SAAW5gB,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,cAChF+lB,EAAQI,SAAWJ,EAAQzL,SAAStnB,KAAK,kDACzC+yB,EAAQK,aAAeL,EAAQI,SAAStzB,OAAQ,IAAOoC,EAAqB,gBAC5E8wB,EAAQM,SAAWN,EAAQK,aAAar6B,KAAK,qBAAuBkJ,EAAOoxB,SACvC,IAAhCN,EAAQK,aAAa3/B,SAKvBs/B,EAAQI,UACVJ,EAAQI,SAASr5B,WAAW,GAE9B4M,EAAOosB,KAAKQ,WAAY,GAPpBP,EAAQI,cAAW/3B,GASzBm4B,gBAAiB,SAAyB54B,GACxC,IACIsH,EADS9L,KACO8L,OAAO6wB,KACvBA,EAFS38B,KAEK28B,KACdC,EAAUD,EAAKC,QACnB,IAAK9vB,EAAQY,SAAU,CACrB,GAAe,cAAXlJ,EAAE2c,MAAoC,cAAX3c,EAAE2c,MAAwB3c,EAAEqd,cAAcvkB,OAAS,EAChF,OAEFq/B,EAAKG,kBAAmB,EACxBF,EAAQS,UAAYjB,GAAKC,0BAA0B73B,GAEhDo4B,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SAExCq/B,EAAKhE,MADH7rB,EAAQY,SACGlJ,EAAEm0B,MAAQgE,EAAKZ,aAEda,EAAQS,UAAYT,EAAQG,WAAcJ,EAAKZ,aAE3DY,EAAKhE,MAAQiE,EAAQM,WACvBP,EAAKhE,MAASiE,EAAQM,SAAW,EAAMhqB,KAAK0Q,IAAO+Y,EAAKhE,MAAQiE,EAAQM,SAAY,EAAI,KAEtFP,EAAKhE,MAAQ7sB,EAAOqe,WACtBwS,EAAKhE,MAAS7sB,EAAOqe,SAAW,EAAMjX,KAAK0Q,IAAO9X,EAAOqe,SAAWwS,EAAKhE,MAAS,EAAI,KAExFiE,EAAQI,SAASx5B,UAAW,4BAA+Bm5B,EAAU,MAAI,OAE3EW,aAAc,SAAsB94B,GAClC,IAAI+L,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAO6wB,KACvBA,EAAOpsB,EAAOosB,KACdC,EAAUD,EAAKC,QACnB,IAAK9vB,EAAQY,SAAU,CACrB,IAAKivB,EAAKE,qBAAuBF,EAAKG,iBACpC,OAEF,GAAe,aAAXt4B,EAAE2c,MAAmC,aAAX3c,EAAE2c,MAAuB3c,EAAE6e,eAAe/lB,OAAS,IAAMwiB,EAAOtB,QAC5F,OAEFme,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,EAErBF,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SAC1Cq/B,EAAKhE,MAAQzlB,KAAKK,IAAIL,KAAKiB,IAAIwoB,EAAKhE,MAAOiE,EAAQM,UAAWpxB,EAAOqe,UACrEyS,EAAQI,SAASr5B,WAAW4M,EAAOzE,OAAO0K,OAAOhT,UAAW,4BAA+Bm5B,EAAU,MAAI,KACzGA,EAAKZ,aAAeY,EAAKhE,MACzBgE,EAAKQ,WAAY,EACE,IAAfR,EAAKhE,QAAeiE,EAAQzL,cAAWlsB,KAE7C2b,aAAc,SAAsBpc,GAClC,IACIm4B,EADS38B,KACK28B,KACdC,EAAUD,EAAKC,QACfrR,EAAQoR,EAAKpR,MACZqR,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SACtCiuB,EAAMjK,YACNxB,EAAOtB,SAAWha,EAAEyB,YAAczB,EAAEqe,iBACxC0I,EAAMjK,WAAY,EAClBiK,EAAMgS,aAAanjB,EAAe,eAAX5V,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAGC,MAAQtd,EAAEsd,MAC9EyJ,EAAMgS,aAAaljB,EAAe,eAAX7V,EAAE2c,KAAwB3c,EAAEqd,cAAc,GAAGG,MAAQxd,EAAEwd,SAEhFmB,YAAa,SAAqB3e,GAChC,IAAI+L,EAASvQ,KACT28B,EAAOpsB,EAAOosB,KACdC,EAAUD,EAAKC,QACfrR,EAAQoR,EAAKpR,MACbhG,EAAWoX,EAAKpX,SACpB,GAAKqX,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SAC1CiT,EAAOmR,YAAa,EACf6J,EAAMjK,WAAcsb,EAAQzL,UAAjC,CAEK5F,EAAMhK,UACTgK,EAAMlb,MAAQusB,EAAQI,SAAS,GAAGn2B,YAClC0kB,EAAMjb,OAASssB,EAAQI,SAAS,GAAGh2B,aACnCukB,EAAMtJ,OAAS7X,EAAMM,aAAakyB,EAAQK,aAAa,GAAI,MAAQ,EACnE1R,EAAMrJ,OAAS9X,EAAMM,aAAakyB,EAAQK,aAAa,GAAI,MAAQ,EACnEL,EAAQY,WAAaZ,EAAQzL,SAAS,GAAGtqB,YACzC+1B,EAAQa,YAAcb,EAAQzL,SAAS,GAAGnqB,aAC1C41B,EAAQK,aAAat5B,WAAW,GAC5B4M,EAAOW,MACTqa,EAAMtJ,QAAUsJ,EAAMtJ,OACtBsJ,EAAMrJ,QAAUqJ,EAAMrJ,SAI1B,IAAIwb,EAAcnS,EAAMlb,MAAQssB,EAAKhE,MACjCgF,EAAepS,EAAMjb,OAASqsB,EAAKhE,MAEvC,KAAI+E,EAAcd,EAAQY,YAAcG,EAAef,EAAQa,aAA/D,CAUA,GARAlS,EAAMqS,KAAO1qB,KAAKiB,IAAMyoB,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtEnS,EAAMsS,MAAQtS,EAAMqS,KACpBrS,EAAMuS,KAAO5qB,KAAKiB,IAAMyoB,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxEpS,EAAMwS,MAAQxS,EAAMuS,KAEpBvS,EAAMyS,eAAe5jB,EAAe,cAAX5V,EAAE2c,KAAuB3c,EAAEqd,cAAc,GAAGC,MAAQtd,EAAEsd,MAC/EyJ,EAAMyS,eAAe3jB,EAAe,cAAX7V,EAAE2c,KAAuB3c,EAAEqd,cAAc,GAAGG,MAAQxd,EAAEwd,OAE1EuJ,EAAMhK,UAAYob,EAAKQ,UAAW,CACrC,GACE5sB,EAAOI,iBAEJuC,KAAKC,MAAMoY,EAAMqS,QAAU1qB,KAAKC,MAAMoY,EAAMtJ,SAAWsJ,EAAMyS,eAAe5jB,EAAImR,EAAMgS,aAAanjB,GAChGlH,KAAKC,MAAMoY,EAAMsS,QAAU3qB,KAAKC,MAAMoY,EAAMtJ,SAAWsJ,EAAMyS,eAAe5jB,EAAImR,EAAMgS,aAAanjB,GAIzG,YADAmR,EAAMjK,WAAY,GAElB,IACC/Q,EAAOI,iBAELuC,KAAKC,MAAMoY,EAAMuS,QAAU5qB,KAAKC,MAAMoY,EAAMrJ,SAAWqJ,EAAMyS,eAAe3jB,EAAIkR,EAAMgS,aAAaljB,GAChGnH,KAAKC,MAAMoY,EAAMwS,QAAU7qB,KAAKC,MAAMoY,EAAMrJ,SAAWqJ,EAAMyS,eAAe3jB,EAAIkR,EAAMgS,aAAaljB,GAIzG,YADAkR,EAAMjK,WAAY,GAIlB9c,EAAEyB,YACJzB,EAAEqe,iBAEJre,EAAEyf,kBAEFsH,EAAMhK,SAAU,EAChBgK,EAAM3J,SAAY2J,EAAMyS,eAAe5jB,EAAImR,EAAMgS,aAAanjB,EAAKmR,EAAMtJ,OACzEsJ,EAAMxJ,SAAYwJ,EAAMyS,eAAe3jB,EAAIkR,EAAMgS,aAAaljB,EAAKkR,EAAMrJ,OAErEqJ,EAAM3J,SAAW2J,EAAMqS,OACzBrS,EAAM3J,SAAY2J,EAAMqS,KAAO,EAAM1qB,KAAK0Q,IAAO2H,EAAMqS,KAAOrS,EAAM3J,SAAY,EAAI,KAElF2J,EAAM3J,SAAW2J,EAAMsS,OACzBtS,EAAM3J,SAAY2J,EAAMsS,KAAO,EAAM3qB,KAAK0Q,IAAO2H,EAAM3J,SAAW2J,EAAMsS,KAAQ,EAAI,KAGlFtS,EAAMxJ,SAAWwJ,EAAMuS,OACzBvS,EAAMxJ,SAAYwJ,EAAMuS,KAAO,EAAM5qB,KAAK0Q,IAAO2H,EAAMuS,KAAOvS,EAAMxJ,SAAY,EAAI,KAElFwJ,EAAMxJ,SAAWwJ,EAAMwS,OACzBxS,EAAMxJ,SAAYwJ,EAAMwS,KAAO,EAAM7qB,KAAK0Q,IAAO2H,EAAMxJ,SAAWwJ,EAAMwS,KAAQ,EAAI,KAIjFxY,EAAS0Y,gBAAiB1Y,EAAS0Y,cAAgB1S,EAAMyS,eAAe5jB,GACxEmL,EAAS2Y,gBAAiB3Y,EAAS2Y,cAAgB3S,EAAMyS,eAAe3jB,GACxEkL,EAAS4Y,WAAY5Y,EAAS4Y,SAAW/9B,KAAKqK,OACnD8a,EAASnL,GAAKmR,EAAMyS,eAAe5jB,EAAImL,EAAS0Y,gBAAkB79B,KAAKqK,MAAQ8a,EAAS4Y,UAAY,EACpG5Y,EAASlL,GAAKkR,EAAMyS,eAAe3jB,EAAIkL,EAAS2Y,gBAAkB99B,KAAKqK,MAAQ8a,EAAS4Y,UAAY,EAChGjrB,KAAK+B,IAAIsW,EAAMyS,eAAe5jB,EAAImL,EAAS0Y,eAAiB,IAAK1Y,EAASnL,EAAI,GAC9ElH,KAAK+B,IAAIsW,EAAMyS,eAAe3jB,EAAIkL,EAAS2Y,eAAiB,IAAK3Y,EAASlL,EAAI,GAClFkL,EAAS0Y,cAAgB1S,EAAMyS,eAAe5jB,EAC9CmL,EAAS2Y,cAAgB3S,EAAMyS,eAAe3jB,EAC9CkL,EAAS4Y,SAAW/9B,KAAKqK,MAEzBmyB,EAAQK,aAAaz5B,UAAW,eAAkB+nB,EAAc,SAAI,OAAUA,EAAc,SAAI,YAElG1G,WAAY,WACV,IACI8X,EADS38B,KACK28B,KACdC,EAAUD,EAAKC,QACfrR,EAAQoR,EAAKpR,MACbhG,EAAWoX,EAAKpX,SACpB,GAAKqX,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,OAA1C,CACA,IAAKiuB,EAAMjK,YAAciK,EAAMhK,QAG7B,OAFAgK,EAAMjK,WAAY,OAClBiK,EAAMhK,SAAU,GAGlBgK,EAAMjK,WAAY,EAClBiK,EAAMhK,SAAU,EAChB,IAAI6c,EAAoB,IACpBC,EAAoB,IACpBC,EAAoB/Y,EAASnL,EAAIgkB,EACjCG,EAAehT,EAAM3J,SAAW0c,EAChCE,EAAoBjZ,EAASlL,EAAIgkB,EACjCI,EAAelT,EAAMxJ,SAAWyc,EAGjB,IAAfjZ,EAASnL,IAAWgkB,EAAoBlrB,KAAK+B,KAAKspB,EAAehT,EAAM3J,UAAY2D,EAASnL,IAC7E,IAAfmL,EAASlL,IAAWgkB,EAAoBnrB,KAAK+B,KAAKwpB,EAAelT,EAAMxJ,UAAYwD,EAASlL,IAChG,IAAIqL,EAAmBxS,KAAKK,IAAI6qB,EAAmBC,GAEnD9S,EAAM3J,SAAW2c,EACjBhT,EAAMxJ,SAAW0c,EAGjB,IAAIf,EAAcnS,EAAMlb,MAAQssB,EAAKhE,MACjCgF,EAAepS,EAAMjb,OAASqsB,EAAKhE,MACvCpN,EAAMqS,KAAO1qB,KAAKiB,IAAMyoB,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtEnS,EAAMsS,MAAQtS,EAAMqS,KACpBrS,EAAMuS,KAAO5qB,KAAKiB,IAAMyoB,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxEpS,EAAMwS,MAAQxS,EAAMuS,KACpBvS,EAAM3J,SAAW1O,KAAKK,IAAIL,KAAKiB,IAAIoX,EAAM3J,SAAU2J,EAAMsS,MAAOtS,EAAMqS,MACtErS,EAAMxJ,SAAW7O,KAAKK,IAAIL,KAAKiB,IAAIoX,EAAMxJ,SAAUwJ,EAAMwS,MAAOxS,EAAMuS,MAEtElB,EAAQK,aAAat5B,WAAW+hB,GAAkBliB,UAAW,eAAkB+nB,EAAc,SAAI,OAAUA,EAAc,SAAI,WAE/HmT,gBAAiB,WACf,IAAInuB,EAASvQ,KACT28B,EAAOpsB,EAAOosB,KACdC,EAAUD,EAAKC,QACfA,EAAQzL,UAAY5gB,EAAO4I,gBAAkB5I,EAAOsG,cAClD+lB,EAAQI,UACVJ,EAAQI,SAASx5B,UAAU,+BAEzBo5B,EAAQK,cACVL,EAAQK,aAAaz5B,UAAU,sBAGjCm5B,EAAKhE,MAAQ,EACbgE,EAAKZ,aAAe,EAEpBa,EAAQzL,cAAWlsB,EACnB23B,EAAQI,cAAW/3B,EACnB23B,EAAQK,kBAAeh4B,IAI3BtC,OAAQ,SAAgB6B,GACtB,IACIm4B,EADS38B,KACK28B,KAEdA,EAAKhE,OAAwB,IAAfgE,EAAKhE,MAErBgE,EAAKgC,MAGLhC,EAAKiC,GAAGp6B,IAGZo6B,GAAI,SAAcp6B,GAChB,IAoBIq6B,EACAC,EAGArb,EACAC,EACAqb,EACAC,EACAC,EACAC,EACAxB,EACAC,EACAwB,EACAC,EACAC,EACAC,EACA9B,EACAC,EArCAltB,EAASvQ,KAET28B,EAAOpsB,EAAOosB,KACd7wB,EAASyE,EAAOzE,OAAO6wB,KACvBC,EAAUD,EAAKC,QACfrR,EAAQoR,EAAKpR,MAEZqR,EAAQzL,WACP5gB,EAAOzE,OAAOwF,SAAWf,EAAOzE,OAAOwF,QAAQC,SAAWhB,EAAOe,QACnEsrB,EAAQzL,SAAW5gB,EAAOS,WAAW1S,SAAU,IAAOiS,EAAOzE,OAAuB,kBAEpF8wB,EAAQzL,SAAW5gB,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAE7C+lB,EAAQI,SAAWJ,EAAQzL,SAAStnB,KAAK,kDACzC+yB,EAAQK,aAAeL,EAAQI,SAAStzB,OAAQ,IAAOoC,EAAqB,iBAEzE8wB,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SAE1Cs/B,EAAQzL,SAASnvB,SAAU,GAAM8J,EAAuB,uBAqBpB,IAAzByf,EAAMgS,aAAanjB,GAAqB5V,GACjDq6B,EAAoB,aAAXr6B,EAAE2c,KAAsB3c,EAAE6e,eAAe,GAAGvB,MAAQtd,EAAEsd,MAC/Dgd,EAAoB,aAAXt6B,EAAE2c,KAAsB3c,EAAE6e,eAAe,GAAGrB,MAAQxd,EAAEwd,QAE/D6c,EAAStT,EAAMgS,aAAanjB,EAC5B0kB,EAASvT,EAAMgS,aAAaljB,GAG9BsiB,EAAKhE,MAAQiE,EAAQK,aAAar6B,KAAK,qBAAuBkJ,EAAOoxB,SACrEP,EAAKZ,aAAea,EAAQK,aAAar6B,KAAK,qBAAuBkJ,EAAOoxB,SACxE14B,GACFg5B,EAAaZ,EAAQzL,SAAS,GAAGtqB,YACjC42B,EAAcb,EAAQzL,SAAS,GAAGnqB,aAGlCyc,EAFUmZ,EAAQzL,SAASlqB,SAASU,KAEhB61B,EAAa,EAAMqB,EACvCnb,EAFUkZ,EAAQzL,SAASlqB,SAASS,IAEhB+1B,EAAc,EAAMqB,EAExCG,EAAarC,EAAQI,SAAS,GAAGn2B,YACjCq4B,EAActC,EAAQI,SAAS,GAAGh2B,aAClC02B,EAAcuB,EAAatC,EAAKhE,MAChCgF,EAAeuB,EAAcvC,EAAKhE,MAIlC0G,IAFAF,EAAgBjsB,KAAKiB,IAAMqpB,EAAa,EAAME,EAAc,EAAK,IAGjE4B,IAFAF,EAAgBlsB,KAAKiB,IAAMspB,EAAc,EAAME,EAAe,EAAK,KAInEoB,EAAatb,EAAQkZ,EAAKhE,OAGTwG,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,IANfL,EAAatb,EAAQiZ,EAAKhE,OASTyG,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,KAGfP,EAAa,EACbC,EAAa,GAEfpC,EAAQK,aAAat5B,WAAW,KAAKH,UAAW,eAAiBu7B,EAAa,OAASC,EAAa,SACpGpC,EAAQI,SAASr5B,WAAW,KAAKH,UAAW,4BAA+Bm5B,EAAU,MAAI,OAE3FgC,IAAK,WACH,IAAIpuB,EAASvQ,KAET28B,EAAOpsB,EAAOosB,KACd7wB,EAASyE,EAAOzE,OAAO6wB,KACvBC,EAAUD,EAAKC,QAEdA,EAAQzL,WACP5gB,EAAOzE,OAAOwF,SAAWf,EAAOzE,OAAOwF,QAAQC,SAAWhB,EAAOe,QACnEsrB,EAAQzL,SAAW5gB,EAAOS,WAAW1S,SAAU,IAAOiS,EAAOzE,OAAuB,kBAEpF8wB,EAAQzL,SAAW5gB,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAE7C+lB,EAAQI,SAAWJ,EAAQzL,SAAStnB,KAAK,kDACzC+yB,EAAQK,aAAeL,EAAQI,SAAStzB,OAAQ,IAAOoC,EAAqB,iBAEzE8wB,EAAQI,UAAwC,IAA5BJ,EAAQI,SAAS1/B,SAE1Cq/B,EAAKhE,MAAQ,EACbgE,EAAKZ,aAAe,EACpBa,EAAQK,aAAat5B,WAAW,KAAKH,UAAU,sBAC/Co5B,EAAQI,SAASr5B,WAAW,KAAKH,UAAU,+BAC3Co5B,EAAQzL,SAAS7uB,YAAa,GAAMwJ,EAAuB,kBAC3D8wB,EAAQzL,cAAWlsB,IAGrBmuB,OAAQ,WACN,IAAI7iB,EAASvQ,KACT28B,EAAOpsB,EAAOosB,KAClB,IAAIA,EAAKprB,QAAT,CACAorB,EAAKprB,SAAU,EAEf,IAAIlE,IAA+C,eAA7BkD,EAAOuY,YAAYC,QAA0Bjc,EAAQO,kBAAmBkD,EAAOzE,OAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GACrJi7B,GAA4BzyB,EAAQO,iBAAkB,CAAE6b,SAAS,EAAO5kB,SAAS,GAEjFk7B,EAAgB,IAAOjvB,EAAOzE,OAAiB,WAG/CgB,EAAQY,UACV6C,EAAOS,WAAWjN,GAAG,eAAgBy7B,EAAe7C,EAAKD,eAAgBrvB,GACzEkD,EAAOS,WAAWjN,GAAG,gBAAiBy7B,EAAe7C,EAAKS,gBAAiB/vB,GAC3EkD,EAAOS,WAAWjN,GAAG,aAAcy7B,EAAe7C,EAAKW,aAAcjwB,IAC/B,eAA7BkD,EAAOuY,YAAYC,QAC5BxY,EAAOS,WAAWjN,GAAGwM,EAAOuY,YAAYC,MAAOyW,EAAe7C,EAAKD,eAAgBrvB,GACnFkD,EAAOS,WAAWjN,GAAGwM,EAAOuY,YAAYE,KAAMwW,EAAe7C,EAAKS,gBAAiBmC,GACnFhvB,EAAOS,WAAWjN,GAAGwM,EAAOuY,YAAYG,IAAKuW,EAAe7C,EAAKW,aAAcjwB,GAC3EkD,EAAOuY,YAAYK,QACrB5Y,EAAOS,WAAWjN,GAAGwM,EAAOuY,YAAYK,OAAQqW,EAAe7C,EAAKW,aAAcjwB,IAKtFkD,EAAOS,WAAWjN,GAAGwM,EAAOuY,YAAYE,KAAO,IAAOzY,EAAOzE,OAAO6wB,KAAmB,eAAIA,EAAKxZ,YAAaoc,KAE/GlM,QAAS,WACP,IAAI9iB,EAASvQ,KACT28B,EAAOpsB,EAAOosB,KAClB,GAAKA,EAAKprB,QAAV,CAEAhB,EAAOosB,KAAKprB,SAAU,EAEtB,IAAIlE,IAA+C,eAA7BkD,EAAOuY,YAAYC,QAA0Bjc,EAAQO,kBAAmBkD,EAAOzE,OAAOyc,mBAAmB,CAAEW,SAAS,EAAM5kB,SAAS,GACrJi7B,GAA4BzyB,EAAQO,iBAAkB,CAAE6b,SAAS,EAAO5kB,SAAS,GAEjFk7B,EAAgB,IAAOjvB,EAAOzE,OAAiB,WAG/CgB,EAAQY,UACV6C,EAAOS,WAAWxL,IAAI,eAAgBg6B,EAAe7C,EAAKD,eAAgBrvB,GAC1EkD,EAAOS,WAAWxL,IAAI,gBAAiBg6B,EAAe7C,EAAKS,gBAAiB/vB,GAC5EkD,EAAOS,WAAWxL,IAAI,aAAcg6B,EAAe7C,EAAKW,aAAcjwB,IAChC,eAA7BkD,EAAOuY,YAAYC,QAC5BxY,EAAOS,WAAWxL,IAAI+K,EAAOuY,YAAYC,MAAOyW,EAAe7C,EAAKD,eAAgBrvB,GACpFkD,EAAOS,WAAWxL,IAAI+K,EAAOuY,YAAYE,KAAMwW,EAAe7C,EAAKS,gBAAiBmC,GACpFhvB,EAAOS,WAAWxL,IAAI+K,EAAOuY,YAAYG,IAAKuW,EAAe7C,EAAKW,aAAcjwB,GAC5EkD,EAAOuY,YAAYK,QACrB5Y,EAAOS,WAAWxL,IAAI+K,EAAOuY,YAAYK,OAAQqW,EAAe7C,EAAKW,aAAcjwB,IAKvFkD,EAAOS,WAAWxL,IAAI+K,EAAOuY,YAAYE,KAAO,IAAOzY,EAAOzE,OAAO6wB,KAAmB,eAAIA,EAAKxZ,YAAaoc,MAwH9GE,GAAO,CACTC,YAAa,SAAqBp3B,EAAOq3B,QACd,IAApBA,IAA6BA,GAAkB,GAEpD,IAAIpvB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAO8kB,KAC3B,QAAqB,IAAVtoB,GACkB,IAAzBiI,EAAOkB,OAAOnU,OAAlB,CACA,IAEI6zB,EAFY5gB,EAAOe,SAAWf,EAAOzE,OAAOwF,QAAQC,QAGpDhB,EAAOS,WAAW1S,SAAU,IAAOiS,EAAOzE,OAAiB,WAAI,6BAAgCxD,EAAQ,MACvGiI,EAAOkB,OAAOhJ,GAAGH,GAEjBs3B,EAAUzO,EAAStnB,KAAM,IAAOiC,EAAmB,aAAI,SAAYA,EAAkB,YAAI,UAAaA,EAAmB,aAAI,MAC7HqlB,EAAS3uB,SAASsJ,EAAO+zB,eAAkB1O,EAAS3uB,SAASsJ,EAAOg0B,cAAiB3O,EAAS3uB,SAASsJ,EAAOi0B,gBAChHH,EAAUA,EAAQv9B,IAAI8uB,EAAS,KAEV,IAAnByO,EAAQtiC,QAEZsiC,EAAQ73B,MAAK,SAAUi4B,EAAY7U,GACjC,IAAI6R,EAAWp8B,EAAEuqB,GACjB6R,EAASh7B,SAAS8J,EAAOi0B,cAEzB,IAAIE,EAAajD,EAASp6B,KAAK,mBAC3B1F,EAAM8/B,EAASp6B,KAAK,YACpBwoB,EAAS4R,EAASp6B,KAAK,eACvByoB,EAAQ2R,EAASp6B,KAAK,cACtBs9B,EAAalD,EAAStzB,OAAO,WAEjC6G,EAAO2a,UAAU8R,EAAS,GAAK9/B,GAAO+iC,EAAa7U,EAAQC,GAAO,GAAO,WACvE,GAAI,MAAO9a,GAA8CA,KAAWA,GAAWA,EAAOzE,UAAWyE,EAAO2K,UAAxG,CA+BA,GA9BI+kB,GACFjD,EAASp1B,IAAI,mBAAqB,QAAWq4B,EAAa,MAC1DjD,EAAS75B,WAAW,qBAEhBioB,IACF4R,EAASp6B,KAAK,SAAUwoB,GACxB4R,EAAS75B,WAAW,gBAElBkoB,IACF2R,EAASp6B,KAAK,QAASyoB,GACvB2R,EAAS75B,WAAW,eAElB+8B,EAAW5iC,QACb4iC,EAAW5hC,SAAS,UAAUyJ,MAAK,SAAUo4B,EAAaC,GACxD,IAAIC,EAAUz/B,EAAEw/B,GAEZC,EAAQz9B,KAAK,iBACfy9B,EAAQz9B,KAAK,SAAUy9B,EAAQz9B,KAAK,gBACpCy9B,EAAQl9B,WAAW,mBAIrBjG,IACF8/B,EAASp6B,KAAK,MAAO1F,GACrB8/B,EAAS75B,WAAW,cAIxB65B,EAASh7B,SAAS8J,EAAOg0B,aAAax9B,YAAYwJ,EAAOi0B,cACzD5O,EAAStnB,KAAM,IAAOiC,EAAqB,gBAAIvJ,SAC3CgO,EAAOzE,OAAO0M,MAAQmnB,EAAiB,CACzC,IAAIW,EAAqBnP,EAASvuB,KAAK,2BACvC,GAAIuuB,EAAS3uB,SAAS+N,EAAOzE,OAAO2M,qBAAsB,CACxD,IAAI8nB,EAAgBhwB,EAAOS,WAAW1S,SAAU,6BAAgCgiC,EAAqB,WAAe/vB,EAAOzE,OAA0B,oBAAI,KACzJyE,EAAOqgB,KAAK8O,YAAYa,EAAcj4B,SAAS,OAC1C,CACL,IAAIk4B,EAAkBjwB,EAAOS,WAAW1S,SAAU,IAAOiS,EAAOzE,OAA0B,oBAAI,6BAAgCw0B,EAAqB,MACnJ/vB,EAAOqgB,KAAK8O,YAAYc,EAAgBl4B,SAAS,IAGrDiI,EAAO/B,KAAK,iBAAkB2iB,EAAS,GAAI6L,EAAS,IAChDzsB,EAAOzE,OAAO0L,YAChBjH,EAAOgG,uBAIXhG,EAAO/B,KAAK,gBAAiB2iB,EAAS,GAAI6L,EAAS,SAGvDnM,KAAM,WACJ,IAAItgB,EAASvQ,KACTgR,EAAaT,EAAOS,WACpBob,EAAe7b,EAAOzE,OACtB2F,EAASlB,EAAOkB,OAChBoF,EAActG,EAAOsG,YACrBxF,EAAYd,EAAOe,SAAW8a,EAAa9a,QAAQC,QACnDzF,EAASsgB,EAAawE,KAEtBvd,EAAgB+Y,EAAa/Y,cAKjC,SAASotB,EAAWn4B,GAClB,GAAI+I,GACF,GAAIL,EAAW1S,SAAU,IAAO8tB,EAAuB,WAAI,6BAAgC9jB,EAAQ,MAAQhL,OACzG,OAAO,OAEJ,GAAImU,EAAOnJ,GAAU,OAAO,EACnC,OAAO,EAGT,SAASyJ,EAAWsb,GAClB,OAAIhc,EACKzQ,EAAEysB,GAASzqB,KAAK,2BAElBhC,EAAEysB,GAAS/kB,QAIpB,GArBsB,SAAlB+K,IACFA,EAAgB,GAmBb9C,EAAOqgB,KAAK8P,qBAAsBnwB,EAAOqgB,KAAK8P,oBAAqB,GACpEnwB,EAAOzE,OAAOuK,sBAChBrF,EAAW1S,SAAU,IAAO8tB,EAA8B,mBAAIrkB,MAAK,SAAU44B,EAAStT,GACpF,IAAI/kB,EAAQ+I,EAAYzQ,EAAEysB,GAASzqB,KAAK,2BAA6BhC,EAAEysB,GAAS/kB,QAChFiI,EAAOqgB,KAAK8O,YAAYp3B,WAErB,GAAI+K,EAAgB,EACzB,IAAK,IAAI1S,EAAIkW,EAAalW,EAAIkW,EAAcxD,EAAe1S,GAAK,EAC1D8/B,EAAW9/B,IAAM4P,EAAOqgB,KAAK8O,YAAY/+B,QAG/C4P,EAAOqgB,KAAK8O,YAAY7oB,GAE1B,GAAI/K,EAAO80B,aACT,GAAIvtB,EAAgB,GAAMvH,EAAO+0B,oBAAsB/0B,EAAO+0B,mBAAqB,EAAI,CAMrF,IALA,IAAIC,EAASh1B,EAAO+0B,mBAChB9T,EAAM1Z,EACN0tB,EAAW7tB,KAAKiB,IAAI0C,EAAckW,EAAM7Z,KAAKK,IAAIutB,EAAQ/T,GAAMtb,EAAOnU,QACtE0jC,EAAW9tB,KAAKK,IAAIsD,EAAc3D,KAAKK,IAAIwZ,EAAK+T,GAAS,GAEpDzrB,EAAMwB,EAAcxD,EAAegC,EAAM0rB,EAAU1rB,GAAO,EAC7DorB,EAAWprB,IAAQ9E,EAAOqgB,KAAK8O,YAAYrqB,GAGjD,IAAK,IAAIE,EAAMyrB,EAAUzrB,EAAMsB,EAAatB,GAAO,EAC7CkrB,EAAWlrB,IAAQhF,EAAOqgB,KAAK8O,YAAYnqB,OAE5C,CACL,IAAIoD,EAAY3H,EAAW1S,SAAU,IAAO8tB,EAA2B,gBACnEzT,EAAUrb,OAAS,GAAKiT,EAAOqgB,KAAK8O,YAAY3tB,EAAW4G,IAE/D,IAAIE,EAAY7H,EAAW1S,SAAU,IAAO8tB,EAA2B,gBACnEvT,EAAUvb,OAAS,GAAKiT,EAAOqgB,KAAK8O,YAAY3tB,EAAW8G,OAuFnEooB,GAAa,CACfC,aAAc,SAAsB9mB,EAAGC,GACrC,IACM0mB,EACAC,EACAG,EAqBFC,EACAC,EAaJ,OApBArhC,KAAKoa,EAAIA,EACTpa,KAAKqa,EAAIA,EACTra,KAAKy3B,UAAYrd,EAAE9c,OAAS,EAO5B0C,KAAKshC,YAAc,SAAqB9E,GACtC,OAAKA,GAGL6E,EA3BO,SAAUE,EAAOhlB,GAGtB,IAFAykB,GAAY,EACZD,EAAWQ,EAAMjkC,OACVyjC,EAAWC,EAAW,GAEvBO,EADJJ,EAAQJ,EAAWC,GAAY,IACXzkB,EAClBykB,EAAWG,EAEXJ,EAAWI,EAGf,OAAOJ,EAgBJS,CAAaxhC,KAAKoa,EAAGoiB,GAC1B4E,EAAKC,EAAK,GAIA7E,EAAKx8B,KAAKoa,EAAEgnB,KAAQphC,KAAKqa,EAAEgnB,GAAMrhC,KAAKqa,EAAE+mB,KAASphC,KAAKoa,EAAEinB,GAAMrhC,KAAKoa,EAAEgnB,IAAQphC,KAAKqa,EAAE+mB,IAR5E,GAUbphC,MAGTyhC,uBAAwB,SAAgCC,GACtD,IAAInxB,EAASvQ,KACRuQ,EAAOoxB,WAAWC,SACrBrxB,EAAOoxB,WAAWC,OAASrxB,EAAOzE,OAAO0M,KACrC,IAAIyoB,GAAWC,aAAa3wB,EAAOqB,WAAY8vB,EAAE9vB,YACjD,IAAIqvB,GAAWC,aAAa3wB,EAAOoB,SAAU+vB,EAAE/vB,YAGvDsI,aAAc,SAAsB4nB,EAAgB3nB,GAClD,IAEIrC,EACAiqB,EAHAvxB,EAASvQ,KACT+hC,EAAaxxB,EAAOoxB,WAAWK,QAGnC,SAASC,EAAuBP,GAK9B,IAAIxqB,EAAY3G,EAAOY,cAAgBZ,EAAO2G,UAAY3G,EAAO2G,UAC7B,UAAhC3G,EAAOzE,OAAO61B,WAAWO,KAC3B3xB,EAAOoxB,WAAWF,uBAAuBC,GAGzCI,GAAuBvxB,EAAOoxB,WAAWC,OAAON,aAAapqB,IAG1D4qB,GAAuD,cAAhCvxB,EAAOzE,OAAO61B,WAAWO,KACnDrqB,GAAc6pB,EAAE3pB,eAAiB2pB,EAAEnqB,iBAAmBhH,EAAOwH,eAAiBxH,EAAOgH,gBACrFuqB,GAAwB5qB,EAAY3G,EAAOgH,gBAAkBM,EAAc6pB,EAAEnqB,gBAG3EhH,EAAOzE,OAAO61B,WAAWQ,UAC3BL,EAAsBJ,EAAE3pB,eAAiB+pB,GAE3CJ,EAAE9pB,eAAekqB,GACjBJ,EAAEznB,aAAa6nB,EAAqBvxB,GACpCmxB,EAAEzoB,oBACFyoB,EAAEtpB,sBAEJ,GAAI3J,MAAMC,QAAQqzB,GAChB,IAAK,IAAIphC,EAAI,EAAGA,EAAIohC,EAAWzkC,OAAQqD,GAAK,EACtCohC,EAAWphC,KAAOuZ,GAAgB6nB,EAAWphC,aAAcqrB,GAC7DiW,EAAuBF,EAAWphC,SAG7BohC,aAAsB/V,GAAU9R,IAAiB6nB,GAC1DE,EAAuBF,IAG3BprB,cAAe,SAAuB/S,EAAUsW,GAC9C,IAEIvZ,EAFA4P,EAASvQ,KACT+hC,EAAaxxB,EAAOoxB,WAAWK,QAEnC,SAASI,EAAwBV,GAC/BA,EAAE/qB,cAAc/S,EAAU2M,GACT,IAAb3M,IACF89B,EAAEtmB,kBACEsmB,EAAE51B,OAAO0L,YACXpN,EAAMG,UAAS,WACbm3B,EAAEnrB,sBAGNmrB,EAAE1wB,WAAW3K,eAAc,WACpB07B,IACDL,EAAE51B,OAAO0M,MAAwC,UAAhCjI,EAAOzE,OAAO61B,WAAWO,IAC5CR,EAAEvlB,UAEJulB,EAAEr7B,qBAIR,GAAIoI,MAAMC,QAAQqzB,GAChB,IAAKphC,EAAI,EAAGA,EAAIohC,EAAWzkC,OAAQqD,GAAK,EAClCohC,EAAWphC,KAAOuZ,GAAgB6nB,EAAWphC,aAAcqrB,GAC7DoW,EAAwBL,EAAWphC,SAG9BohC,aAAsB/V,GAAU9R,IAAiB6nB,GAC1DK,EAAwBL,KA8D1BM,GAAO,CACTC,gBAAiB,SAAyB9xB,GAExC,OADAA,EAAI5N,KAAK,WAAY,KACd4N,GAET+xB,mBAAoB,SAA4B/xB,GAE9C,OADAA,EAAI5N,KAAK,WAAY,MACd4N,GAETgyB,UAAW,SAAmBhyB,EAAKiyB,GAEjC,OADAjyB,EAAI5N,KAAK,OAAQ6/B,GACVjyB,GAETkyB,WAAY,SAAoBlyB,EAAKmyB,GAEnC,OADAnyB,EAAI5N,KAAK,aAAc+/B,GAChBnyB,GAEToyB,UAAW,SAAmBpyB,GAE5B,OADAA,EAAI5N,KAAK,iBAAiB,GACnB4N,GAETqyB,SAAU,SAAkBryB,GAE1B,OADAA,EAAI5N,KAAK,iBAAiB,GACnB4N,GAETsyB,WAAY,SAAoBt+B,GAC9B,IAAI+L,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOu2B,KAC3B,GAAkB,KAAd79B,EAAEutB,QAAN,CACA,IAAI/Q,EAAYpgB,EAAE4D,EAAEvH,QAChBsT,EAAOwW,YAAcxW,EAAOwW,WAAW6P,SAAW5V,EAAUpc,GAAG2L,EAAOwW,WAAW6P,WAC7ErmB,EAAO0H,QAAU1H,EAAOzE,OAAO0M,MACnCjI,EAAO0L,YAEL1L,EAAO0H,MACT1H,EAAO8xB,KAAKU,OAAOj3B,EAAOk3B,kBAE1BzyB,EAAO8xB,KAAKU,OAAOj3B,EAAOm3B,mBAG1B1yB,EAAOwW,YAAcxW,EAAOwW,WAAW8P,SAAW7V,EAAUpc,GAAG2L,EAAOwW,WAAW8P,WAC7EtmB,EAAOyH,cAAgBzH,EAAOzE,OAAO0M,MACzCjI,EAAO8L,YAEL9L,EAAOyH,YACTzH,EAAO8xB,KAAKU,OAAOj3B,EAAOo3B,mBAE1B3yB,EAAO8xB,KAAKU,OAAOj3B,EAAOq3B,mBAG1B5yB,EAAO4mB,YAAcnW,EAAUpc,GAAI,IAAO2L,EAAOzE,OAAOqrB,WAAsB,cAChFnW,EAAU,GAAGoiB,UAGjBL,OAAQ,SAAgBM,GACtB,IACIC,EADStjC,KACaqiC,KAAKkB,WACH,IAAxBD,EAAahmC,SACjBgmC,EAAariC,KAAK,IAClBqiC,EAAariC,KAAKoiC,KAEpBG,iBAAkB,WAChB,IAAIjzB,EAASvQ,KAEb,IAAIuQ,EAAOzE,OAAO0M,MAASjI,EAAOwW,WAAlC,CACA,IAAIyD,EAAMja,EAAOwW,WACb6P,EAAUpM,EAAIoM,QACdC,EAAUrM,EAAIqM,QAEdA,GAAWA,EAAQv5B,OAAS,IAC1BiT,EAAOyH,aACTzH,EAAO8xB,KAAKO,UAAU/L,GACtBtmB,EAAO8xB,KAAKE,mBAAmB1L,KAE/BtmB,EAAO8xB,KAAKQ,SAAShM,GACrBtmB,EAAO8xB,KAAKC,gBAAgBzL,KAG5BD,GAAWA,EAAQt5B,OAAS,IAC1BiT,EAAO0H,OACT1H,EAAO8xB,KAAKO,UAAUhM,GACtBrmB,EAAO8xB,KAAKE,mBAAmB3L,KAE/BrmB,EAAO8xB,KAAKQ,SAASjM,GACrBrmB,EAAO8xB,KAAKC,gBAAgB1L,OAIlC6M,iBAAkB,WAChB,IAAIlzB,EAASvQ,KACT8L,EAASyE,EAAOzE,OAAOu2B,KACvB9xB,EAAO4mB,YAAc5mB,EAAOzE,OAAOqrB,WAAWsC,WAAalpB,EAAO4mB,WAAWI,SAAWhnB,EAAO4mB,WAAWI,QAAQj6B,QACpHiT,EAAO4mB,WAAWI,QAAQxvB,MAAK,SAAUkwB,EAAayL,GACpD,IAAIC,EAAY/iC,EAAE8iC,GAClBnzB,EAAO8xB,KAAKC,gBAAgBqB,GAC5BpzB,EAAO8xB,KAAKG,UAAUmB,EAAW,UACjCpzB,EAAO8xB,KAAKK,WAAWiB,EAAW73B,EAAO83B,wBAAwBz4B,QAAQ,gBAAiBw4B,EAAUr7B,QAAU,QAIpH2f,KAAM,WACJ,IAAI1X,EAASvQ,KAEbuQ,EAAOC,IAAI7H,OAAO4H,EAAO8xB,KAAKkB,YAG9B,IACI3M,EACAC,EAFA/qB,EAASyE,EAAOzE,OAAOu2B,KAGvB9xB,EAAOwW,YAAcxW,EAAOwW,WAAW6P,UACzCA,EAAUrmB,EAAOwW,WAAW6P,SAE1BrmB,EAAOwW,YAAcxW,EAAOwW,WAAW8P,UACzCA,EAAUtmB,EAAOwW,WAAW8P,SAE1BD,IACFrmB,EAAO8xB,KAAKC,gBAAgB1L,GAC5BrmB,EAAO8xB,KAAKG,UAAU5L,EAAS,UAC/BrmB,EAAO8xB,KAAKK,WAAW9L,EAAS9qB,EAAOm3B,kBACvCrM,EAAQ7yB,GAAG,UAAWwM,EAAO8xB,KAAKS,aAEhCjM,IACFtmB,EAAO8xB,KAAKC,gBAAgBzL,GAC5BtmB,EAAO8xB,KAAKG,UAAU3L,EAAS,UAC/BtmB,EAAO8xB,KAAKK,WAAW7L,EAAS/qB,EAAOq3B,kBACvCtM,EAAQ9yB,GAAG,UAAWwM,EAAO8xB,KAAKS,aAIhCvyB,EAAO4mB,YAAc5mB,EAAOzE,OAAOqrB,WAAWsC,WAAalpB,EAAO4mB,WAAWI,SAAWhnB,EAAO4mB,WAAWI,QAAQj6B,QACpHiT,EAAO4mB,WAAW3mB,IAAIzM,GAAG,UAAY,IAAOwM,EAAOzE,OAAOqrB,WAAsB,YAAI5mB,EAAO8xB,KAAKS,aAGpGxV,QAAS,WACP,IAGIsJ,EACAC,EAJAtmB,EAASvQ,KACTuQ,EAAO8xB,KAAKkB,YAAchzB,EAAO8xB,KAAKkB,WAAWjmC,OAAS,GAAKiT,EAAO8xB,KAAKkB,WAAWhhC,SAItFgO,EAAOwW,YAAcxW,EAAOwW,WAAW6P,UACzCA,EAAUrmB,EAAOwW,WAAW6P,SAE1BrmB,EAAOwW,YAAcxW,EAAOwW,WAAW8P,UACzCA,EAAUtmB,EAAOwW,WAAW8P,SAE1BD,GACFA,EAAQpxB,IAAI,UAAW+K,EAAO8xB,KAAKS,YAEjCjM,GACFA,EAAQrxB,IAAI,UAAW+K,EAAO8xB,KAAKS,YAIjCvyB,EAAO4mB,YAAc5mB,EAAOzE,OAAOqrB,WAAWsC,WAAalpB,EAAO4mB,WAAWI,SAAWhnB,EAAO4mB,WAAWI,QAAQj6B,QACpHiT,EAAO4mB,WAAW3mB,IAAIhL,IAAI,UAAY,IAAO+K,EAAOzE,OAAOqrB,WAAsB,YAAI5mB,EAAO8xB,KAAKS,cA0DnGe,GAAU,CACZ5b,KAAM,WACJ,IAAI1X,EAASvQ,KACb,GAAKuQ,EAAOzE,OAAOpM,QAAnB,CACA,IAAKJ,EAAII,UAAYJ,EAAII,QAAQE,UAG/B,OAFA2Q,EAAOzE,OAAOpM,QAAQ6R,SAAU,OAChChB,EAAOzE,OAAOg4B,eAAevyB,SAAU,GAGzC,IAAI7R,EAAU6Q,EAAO7Q,QACrBA,EAAQ8Z,aAAc,EACtB9Z,EAAQqkC,MAAQF,GAAQG,iBACnBtkC,EAAQqkC,MAAM1mC,KAAQqC,EAAQqkC,MAAMjhC,SACzCpD,EAAQukC,cAAc,EAAGvkC,EAAQqkC,MAAMjhC,MAAOyN,EAAOzE,OAAO2N,oBACvDlJ,EAAOzE,OAAOpM,QAAQC,cACzBL,EAAI3B,iBAAiB,WAAY4S,EAAO7Q,QAAQwkC,uBAGpD5W,QAAS,WACMttB,KACD8L,OAAOpM,QAAQC,cACzBL,EAAI1B,oBAAoB,WAFboC,KAEgCN,QAAQwkC,qBAGvDA,mBAAoB,WAClB,IAAI3zB,EAASvQ,KACbuQ,EAAO7Q,QAAQqkC,MAAQF,GAAQG,gBAC/BzzB,EAAO7Q,QAAQukC,cAAc1zB,EAAOzE,OAAO0K,MAAOjG,EAAO7Q,QAAQqkC,MAAMjhC,OAAO,IAEhFkhC,cAAe,WACb,IAAIG,EAAY7kC,EAAIT,SAASM,SAASwP,MAAM,GAAGnN,MAAM,KAAK0E,QAAO,SAAUk+B,GAAQ,MAAgB,KAATA,KACtF/M,EAAQ8M,EAAU7mC,OAGtB,MAAO,CAAED,IAFC8mC,EAAU9M,EAAQ,GAETv0B,MADPqhC,EAAU9M,EAAQ,KAGhCgN,WAAY,SAAoBhnC,EAAKiL,GACnC,IAAIiI,EAASvQ,KACb,GAAKuQ,EAAO7Q,QAAQ8Z,aAAgBjJ,EAAOzE,OAAOpM,QAAQ6R,QAA1D,CACA,IAAIoC,EAAQpD,EAAOkB,OAAOhJ,GAAGH,GACzBxF,EAAQ+gC,GAAQS,QAAQ3wB,EAAM/Q,KAAK,iBAClCtD,EAAIT,SAASM,SAASolC,SAASlnC,KAClCyF,EAAQzF,EAAM,IAAMyF,GAEtB,IAAI0hC,EAAellC,EAAII,QAAQ+kC,MAC3BD,GAAgBA,EAAa1hC,QAAUA,IAGvCyN,EAAOzE,OAAOpM,QAAQC,aACxBL,EAAII,QAAQC,aAAa,CAAEmD,MAAOA,GAAS,KAAMA,GAEjDxD,EAAII,QAAQE,UAAU,CAAEkD,MAAOA,GAAS,KAAMA,MAGlDwhC,QAAS,SAAiBt8B,GACxB,OAAOA,EAAKyD,WACTN,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,KAEpB84B,cAAe,SAAuBztB,EAAO1T,EAAO0X,GAClD,IAAIjK,EAASvQ,KACb,GAAI8C,EACF,IAAK,IAAInC,EAAI,EAAGrD,EAASiT,EAAOkB,OAAOnU,OAAQqD,EAAIrD,EAAQqD,GAAK,EAAG,CACjE,IAAIgT,EAAQpD,EAAOkB,OAAOhJ,GAAG9H,GAE7B,GADmBkjC,GAAQS,QAAQ3wB,EAAM/Q,KAAK,mBACzBE,IAAU6Q,EAAMnR,SAAS+N,EAAOzE,OAAO2M,qBAAsB,CAChF,IAAInQ,EAAQqL,EAAMrL,QAClBiI,EAAOgL,QAAQjT,EAAOkO,EAAOgE,SAIjCjK,EAAOgL,QAAQ,EAAG/E,EAAOgE,KAsD3BkqB,GAAiB,CACnBC,YAAa,WACX,IAAIp0B,EAASvQ,KACbuQ,EAAO/B,KAAK,cACZ,IAAIo2B,EAAUrnC,EAAIsB,SAASC,KAAKqM,QAAQ,IAAK,IAE7C,GAAIy5B,IADkBr0B,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAAajU,KAAK,aAC/B,CAC/B,IAAImZ,EAAWxL,EAAOS,WAAW1S,SAAU,IAAOiS,EAAOzE,OAAiB,WAAI,eAAkB84B,EAAU,MAAQt8B,QAClH,QAAwB,IAAbyT,EAA4B,OACvCxL,EAAOgL,QAAQQ,KAGnB8oB,QAAS,WACP,IAAIt0B,EAASvQ,KACb,GAAKuQ,EAAOuzB,eAAetqB,aAAgBjJ,EAAOzE,OAAOg4B,eAAevyB,QACxE,GAAIhB,EAAOzE,OAAOg4B,eAAenkC,cAAgBL,EAAII,SAAWJ,EAAII,QAAQC,aAC1EL,EAAII,QAAQC,aAAa,KAAM,KAAQ,IAAO4Q,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAAajU,KAAK,cAAkB,GAC1G2N,EAAO/B,KAAK,eACP,CACL,IAAImF,EAAQpD,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aAChC/X,EAAO6U,EAAM/Q,KAAK,cAAgB+Q,EAAM/Q,KAAK,gBACjDrF,EAAIsB,SAASC,KAAOA,GAAQ,GAC5ByR,EAAO/B,KAAK,aAGhByZ,KAAM,WACJ,IAAI1X,EAASvQ,KACb,MAAKuQ,EAAOzE,OAAOg4B,eAAevyB,SAAYhB,EAAOzE,OAAOpM,SAAW6Q,EAAOzE,OAAOpM,QAAQ6R,SAA7F,CACAhB,EAAOuzB,eAAetqB,aAAc,EACpC,IAAI1a,EAAOvB,EAAIsB,SAASC,KAAKqM,QAAQ,IAAK,IAC1C,GAAIrM,EAEF,IADA,IACS6B,EAAI,EAAGrD,EAASiT,EAAOkB,OAAOnU,OAAQqD,EAAIrD,EAAQqD,GAAK,EAAG,CACjE,IAAIgT,EAAQpD,EAAOkB,OAAOhJ,GAAG9H,GAE7B,IADgBgT,EAAM/Q,KAAK,cAAgB+Q,EAAM/Q,KAAK,mBACpC9D,IAAS6U,EAAMnR,SAAS+N,EAAOzE,OAAO2M,qBAAsB,CAC5E,IAAInQ,EAAQqL,EAAMrL,QAClBiI,EAAOgL,QAAQjT,EANP,EAMqBiI,EAAOzE,OAAO2N,oBAAoB,IAIjElJ,EAAOzE,OAAOg4B,eAAegB,YAC/BlkC,EAAEtB,GAAKyE,GAAG,aAAcwM,EAAOuzB,eAAea,eAGlDrX,QAAS,WACMttB,KACF8L,OAAOg4B,eAAegB,YAC/BlkC,EAAEtB,GAAKkG,IAAI,aAFAxF,KAEqB8jC,eAAea,eAuDjDI,GAAW,CACbvd,IAAK,WACH,IAAIjX,EAASvQ,KACTglC,EAAiBz0B,EAAOkB,OAAOhJ,GAAG8H,EAAOsG,aACzCrM,EAAQ+F,EAAOzE,OAAOub,SAAS7c,MAC/Bw6B,EAAepiC,KAAK,0BACtB4H,EAAQw6B,EAAepiC,KAAK,yBAA2B2N,EAAOzE,OAAOub,SAAS7c,OAEhFjK,aAAagQ,EAAO8W,SAASwO,SAC7BtlB,EAAO8W,SAASwO,QAAUzrB,EAAMG,UAAS,WACnCgG,EAAOzE,OAAOub,SAAS4d,iBACrB10B,EAAOzE,OAAO0M,MAChBjI,EAAO4L,UACP5L,EAAO8L,UAAU9L,EAAOzE,OAAO0K,OAAO,GAAM,GAC5CjG,EAAO/B,KAAK,aACF+B,EAAOyH,YAGPzH,EAAOzE,OAAOub,SAAS6d,gBAIjC30B,EAAO8W,SAAS+O,QAHhB7lB,EAAOgL,QAAQhL,EAAOkB,OAAOnU,OAAS,EAAGiT,EAAOzE,OAAO0K,OAAO,GAAM,GACpEjG,EAAO/B,KAAK,cAJZ+B,EAAO8L,UAAU9L,EAAOzE,OAAO0K,OAAO,GAAM,GAC5CjG,EAAO/B,KAAK,aAOL+B,EAAOzE,OAAO0M,MACvBjI,EAAO4L,UACP5L,EAAO0L,UAAU1L,EAAOzE,OAAO0K,OAAO,GAAM,GAC5CjG,EAAO/B,KAAK,aACF+B,EAAO0H,MAGP1H,EAAOzE,OAAOub,SAAS6d,gBAIjC30B,EAAO8W,SAAS+O,QAHhB7lB,EAAOgL,QAAQ,EAAGhL,EAAOzE,OAAO0K,OAAO,GAAM,GAC7CjG,EAAO/B,KAAK,cAJZ+B,EAAO0L,UAAU1L,EAAOzE,OAAO0K,OAAO,GAAM,GAC5CjG,EAAO/B,KAAK,aAOV+B,EAAOzE,OAAOkG,SAAWzB,EAAO8W,SAASC,SAAW/W,EAAO8W,SAASG,QACvEhd,IAELue,MAAO,WACL,IAAIxY,EAASvQ,KACb,YAAuC,IAA5BuQ,EAAO8W,SAASwO,UACvBtlB,EAAO8W,SAASC,UACpB/W,EAAO8W,SAASC,SAAU,EAC1B/W,EAAO/B,KAAK,iBACZ+B,EAAO8W,SAASG,OACT,IAET4O,KAAM,WACJ,IAAI7lB,EAASvQ,KACb,QAAKuQ,EAAO8W,SAASC,cACkB,IAA5B/W,EAAO8W,SAASwO,UAEvBtlB,EAAO8W,SAASwO,UAClBt1B,aAAagQ,EAAO8W,SAASwO,SAC7BtlB,EAAO8W,SAASwO,aAAU5wB,GAE5BsL,EAAO8W,SAASC,SAAU,EAC1B/W,EAAO/B,KAAK,iBACL,IAET22B,MAAO,SAAe3uB,GACpB,IAAIjG,EAASvQ,KACRuQ,EAAO8W,SAASC,UACjB/W,EAAO8W,SAASE,SAChBhX,EAAO8W,SAASwO,SAAWt1B,aAAagQ,EAAO8W,SAASwO,SAC5DtlB,EAAO8W,SAASE,QAAS,EACX,IAAV/Q,GAAgBjG,EAAOzE,OAAOub,SAAS+d,mBAIzC70B,EAAOS,WAAW,GAAGrT,iBAAiB,gBAAiB4S,EAAO8W,SAASqX,iBACvEnuB,EAAOS,WAAW,GAAGrT,iBAAiB,sBAAuB4S,EAAO8W,SAASqX,mBAJ7EnuB,EAAO8W,SAASE,QAAS,EACzBhX,EAAO8W,SAASG,WAkGlB6d,GAAO,CACTprB,aAAc,WAGZ,IAFA,IAAI1J,EAASvQ,KACTyR,EAASlB,EAAOkB,OACX9Q,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAAG,CACzC,IAAIwwB,EAAW5gB,EAAOkB,OAAOhJ,GAAG9H,GAE5B2kC,GADSnU,EAAS,GAAGra,kBAEpBvG,EAAOzE,OAAOiO,mBAAoBurB,GAAM/0B,EAAO2G,WACpD,IAAIquB,EAAK,EACJh1B,EAAOI,iBACV40B,EAAKD,EACLA,EAAK,GAEP,IAAIE,EAAej1B,EAAOzE,OAAO25B,WAAWC,UACxCxyB,KAAKK,IAAI,EAAIL,KAAK+B,IAAIkc,EAAS,GAAGxZ,UAAW,GAC7C,EAAIzE,KAAKiB,IAAIjB,KAAKK,IAAI4d,EAAS,GAAGxZ,UAAW,GAAI,GACrDwZ,EACGvpB,IAAI,CACH0yB,QAASkL,IAEVhiC,UAAW,eAAiB8hC,EAAK,OAASC,EAAK,cAGtD5uB,cAAe,SAAuB/S,GACpC,IAAI2M,EAASvQ,KACTyR,EAASlB,EAAOkB,OAChBT,EAAaT,EAAOS,WAExB,GADAS,EAAO9N,WAAWC,GACd2M,EAAOzE,OAAOiO,kBAAiC,IAAbnW,EAAgB,CACpD,IAAI+hC,GAAiB,EACrBl0B,EAAOpL,eAAc,WACnB,IAAIs/B,GACCp1B,IAAUA,EAAO2K,UAAtB,CACAyqB,GAAiB,EACjBp1B,EAAOoK,WAAY,EAEnB,IADA,IAAIirB,EAAgB,CAAC,sBAAuB,iBACnCjlC,EAAI,EAAGA,EAAIilC,EAActoC,OAAQqD,GAAK,EAC7CqQ,EAAWnL,QAAQ+/B,EAAcjlC,WAoDvCklC,GAAO,CACT5rB,aAAc,WACZ,IAYI6rB,EAZAv1B,EAASvQ,KACTwQ,EAAMD,EAAOC,IACbQ,EAAaT,EAAOS,WACpBS,EAASlB,EAAOkB,OAChBs0B,EAAcx1B,EAAOF,MACrB21B,EAAez1B,EAAOD,OACtBY,EAAMX,EAAOY,aACbF,EAAaV,EAAOO,KACpBhF,EAASyE,EAAOzE,OAAOm6B,WACvBt1B,EAAeJ,EAAOI,eACtBU,EAAYd,EAAOe,SAAWf,EAAOzE,OAAOwF,QAAQC,QACpD20B,EAAgB,EAEhBp6B,EAAOq6B,SACLx1B,GAE2B,KAD7Bm1B,EAAgB90B,EAAWnH,KAAK,wBACdvM,SAChBwoC,EAAgBllC,EAAE,0CAClBoQ,EAAWrI,OAAOm9B,IAEpBA,EAAcl+B,IAAI,CAAE0I,OAASy1B,EAAc,QAGd,KAD7BD,EAAgBt1B,EAAI3G,KAAK,wBACPvM,SAChBwoC,EAAgBllC,EAAE,0CAClB4P,EAAI7H,OAAOm9B,KAIjB,IAAK,IAAInlC,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAAG,CACzC,IAAIwwB,EAAW1f,EAAOhJ,GAAG9H,GACrBoR,EAAapR,EACb0Q,IACFU,EAAalB,SAASsgB,EAASvuB,KAAK,2BAA4B,KAElE,IAAIwjC,EAA0B,GAAbr0B,EACbs0B,EAAQnzB,KAAKC,MAAMizB,EAAa,KAChCl1B,IACFk1B,GAAcA,EACdC,EAAQnzB,KAAKC,OAAOizB,EAAa,MAEnC,IAAIzuB,EAAWzE,KAAKK,IAAIL,KAAKiB,IAAIgd,EAAS,GAAGxZ,SAAU,IAAK,GACxD2tB,EAAK,EACLC,EAAK,EACLe,EAAK,EACLv0B,EAAa,GAAM,GACrBuzB,EAAc,GAARe,EAAYp1B,EAClBq1B,EAAK,IACKv0B,EAAa,GAAK,GAAM,GAClCuzB,EAAK,EACLgB,EAAc,GAARD,EAAYp1B,IACRc,EAAa,GAAK,GAAM,GAClCuzB,EAAKr0B,EAAsB,EAARo1B,EAAYp1B,EAC/Bq1B,EAAKr1B,IACKc,EAAa,GAAK,GAAM,IAClCuzB,GAAMr0B,EACNq1B,EAAM,EAAIr1B,EAA4B,EAAbA,EAAiBo1B,GAExCn1B,IACFo0B,GAAMA,GAGH30B,IACH40B,EAAKD,EACLA,EAAK,GAGP,IAAI9hC,EAAY,YAAcmN,EAAe,GAAKy1B,GAAc,iBAAmBz1B,EAAey1B,EAAa,GAAK,oBAAsBd,EAAK,OAASC,EAAK,OAASe,EAAK,MAM3K,GALI3uB,GAAY,GAAKA,GAAY,IAC/BuuB,EAA8B,GAAbn0B,EAA+B,GAAX4F,EACjCzG,IAAOg1B,EAA+B,IAAbn0B,EAA+B,GAAX4F,IAEnDwZ,EAAS3tB,UAAUA,GACfsI,EAAOy6B,aAAc,CAEvB,IAAIC,EAAe71B,EAAewgB,EAAStnB,KAAK,6BAA+BsnB,EAAStnB,KAAK,4BACzF48B,EAAc91B,EAAewgB,EAAStnB,KAAK,8BAAgCsnB,EAAStnB,KAAK,+BACjE,IAAxB28B,EAAalpC,SACfkpC,EAAe5lC,EAAG,oCAAuC+P,EAAe,OAAS,OAAS,YAC1FwgB,EAASxoB,OAAO69B,IAES,IAAvBC,EAAYnpC,SACdmpC,EAAc7lC,EAAG,oCAAuC+P,EAAe,QAAU,UAAY,YAC7FwgB,EAASxoB,OAAO89B,IAEdD,EAAalpC,SAAUkpC,EAAa,GAAGhoC,MAAM87B,QAAUpnB,KAAKK,KAAKoE,EAAU,IAC3E8uB,EAAYnpC,SAAUmpC,EAAY,GAAGjoC,MAAM87B,QAAUpnB,KAAKK,IAAIoE,EAAU,KAUhF,GAPA3G,EAAWpJ,IAAI,CACb,2BAA6B,YAAeqJ,EAAa,EAAK,KAC9D,wBAA0B,YAAeA,EAAa,EAAK,KAC3D,uBAAyB,YAAeA,EAAa,EAAK,KAC1D,mBAAqB,YAAeA,EAAa,EAAK,OAGpDnF,EAAOq6B,OACT,GAAIx1B,EACFm1B,EAActiC,UAAW,qBAAwBuiC,EAAc,EAAKj6B,EAAO46B,cAAgB,QAAWX,EAAc,EAAK,0CAA6Cj6B,EAAkB,YAAI,SACvL,CACL,IAAI66B,EAAczzB,KAAK+B,IAAIixB,GAA6D,GAA3ChzB,KAAKC,MAAMD,KAAK+B,IAAIixB,GAAiB,IAC9EruB,EAAa,KACd3E,KAAK0zB,IAAmB,EAAdD,EAAkBzzB,KAAK4Q,GAAM,KAAO,EAC5C5Q,KAAK2zB,IAAmB,EAAdF,EAAkBzzB,KAAK4Q,GAAM,KAAO,GAE/CgjB,EAASh7B,EAAOi7B,YAChBC,EAASl7B,EAAOi7B,YAAclvB,EAC9B5Q,EAAS6E,EAAO46B,aACpBZ,EAActiC,UAAW,WAAasjC,EAAS,QAAUE,EAAS,uBAA0BhB,EAAe,EAAK/+B,GAAU,QAAW++B,EAAe,EAAIgB,EAAU,uBAGtK,IAAIC,EAAWnZ,EAAQE,UAAYF,EAAQG,WAAehd,EAAa,EAAK,EAC5ED,EACGxN,UAAW,qBAAuByjC,EAAU,gBAAkB12B,EAAOI,eAAiB,EAAIu1B,GAAiB,iBAAmB31B,EAAOI,gBAAkBu1B,EAAgB,GAAK,SAEjLvvB,cAAe,SAAuB/S,GACpC,IAAI2M,EAASvQ,KACTwQ,EAAMD,EAAOC,IACJD,EAAOkB,OAEjB9N,WAAWC,GACXiG,KAAK,gHACLlG,WAAWC,GACV2M,EAAOzE,OAAOm6B,WAAWE,SAAW51B,EAAOI,gBAC7CH,EAAI3G,KAAK,uBAAuBlG,WAAWC,KAwD7CsjC,GAAO,CACTjtB,aAAc,WAIZ,IAHA,IAAI1J,EAASvQ,KACTyR,EAASlB,EAAOkB,OAChBP,EAAMX,EAAOY,aACRxQ,EAAI,EAAGA,EAAI8Q,EAAOnU,OAAQqD,GAAK,EAAG,CACzC,IAAIwwB,EAAW1f,EAAOhJ,GAAG9H,GACrBgX,EAAWwZ,EAAS,GAAGxZ,SACvBpH,EAAOzE,OAAOq7B,WAAWC,gBAC3BzvB,EAAWzE,KAAKK,IAAIL,KAAKiB,IAAIgd,EAAS,GAAGxZ,SAAU,IAAK,IAE1D,IAEI0vB,GADU,IAAM1vB,EAEhB2vB,EAAU,EACVhC,GAJSnU,EAAS,GAAGra,kBAKrByuB,EAAK,EAYT,GAXKh1B,EAAOI,eAKDO,IACTm2B,GAAWA,IALX9B,EAAKD,EACLA,EAAK,EACLgC,GAAWD,EACXA,EAAU,GAKZlW,EAAS,GAAG3yB,MAAM+oC,QAAUr0B,KAAK+B,IAAI/B,KAAKmzB,MAAM1uB,IAAalG,EAAOnU,OAEhEiT,EAAOzE,OAAOq7B,WAAWZ,aAAc,CAEzC,IAAIC,EAAej2B,EAAOI,eAAiBwgB,EAAStnB,KAAK,6BAA+BsnB,EAAStnB,KAAK,4BAClG48B,EAAcl2B,EAAOI,eAAiBwgB,EAAStnB,KAAK,8BAAgCsnB,EAAStnB,KAAK,+BAC1E,IAAxB28B,EAAalpC,SACfkpC,EAAe5lC,EAAG,oCAAuC2P,EAAOI,eAAiB,OAAS,OAAS,YACnGwgB,EAASxoB,OAAO69B,IAES,IAAvBC,EAAYnpC,SACdmpC,EAAc7lC,EAAG,oCAAuC2P,EAAOI,eAAiB,QAAU,UAAY,YACtGwgB,EAASxoB,OAAO89B,IAEdD,EAAalpC,SAAUkpC,EAAa,GAAGhoC,MAAM87B,QAAUpnB,KAAKK,KAAKoE,EAAU,IAC3E8uB,EAAYnpC,SAAUmpC,EAAY,GAAGjoC,MAAM87B,QAAUpnB,KAAKK,IAAIoE,EAAU,IAE9EwZ,EACG3tB,UAAW,eAAiB8hC,EAAK,OAASC,EAAK,oBAAsB+B,EAAU,gBAAkBD,EAAU,UAGlH1wB,cAAe,SAAuB/S,GACpC,IAAI2M,EAASvQ,KACTyR,EAASlB,EAAOkB,OAChBoF,EAActG,EAAOsG,YACrB7F,EAAaT,EAAOS,WAKxB,GAJAS,EACG9N,WAAWC,GACXiG,KAAK,gHACLlG,WAAWC,GACV2M,EAAOzE,OAAOiO,kBAAiC,IAAbnW,EAAgB,CACpD,IAAI+hC,GAAiB,EAErBl0B,EAAOhJ,GAAGoO,GAAaxQ,eAAc,WACnC,IAAIs/B,GACCp1B,IAAUA,EAAO2K,UAAtB,CAEAyqB,GAAiB,EACjBp1B,EAAOoK,WAAY,EAEnB,IADA,IAAIirB,EAAgB,CAAC,sBAAuB,iBACnCjlC,EAAI,EAAGA,EAAIilC,EAActoC,OAAQqD,GAAK,EAC7CqQ,EAAWnL,QAAQ+/B,EAAcjlC,WAsDvC6mC,GAAY,CACdvtB,aAAc,WAcZ,IAbA,IAAI1J,EAASvQ,KACT+lC,EAAcx1B,EAAOF,MACrB21B,EAAez1B,EAAOD,OACtBmB,EAASlB,EAAOkB,OAChBT,EAAaT,EAAOS,WACpBa,EAAkBtB,EAAOsB,gBACzB/F,EAASyE,EAAOzE,OAAO27B,gBACvB92B,EAAeJ,EAAOI,eACtBnN,EAAY+M,EAAO2G,UACnBwwB,EAAS/2B,EAA6Bo1B,EAAc,EAA3BviC,EAA8CwiC,EAAe,EAA5BxiC,EAC1DmkC,EAASh3B,EAAe7E,EAAO67B,QAAU77B,EAAO67B,OAChDzwB,EAAYpL,EAAO87B,MAEdjnC,EAAI,EAAGrD,EAASmU,EAAOnU,OAAQqD,EAAIrD,EAAQqD,GAAK,EAAG,CAC1D,IAAIwwB,EAAW1f,EAAOhJ,GAAG9H,GACrBgS,EAAYd,EAAgBlR,GAE5BknC,GAAqBH,EADPvW,EAAS,GAAGra,kBACmBnE,EAAY,GAAMA,EAAa7G,EAAOg8B,SAEnFT,EAAU12B,EAAeg3B,EAASE,EAAmB,EACrDP,EAAU32B,EAAe,EAAIg3B,EAASE,EAEtCE,GAAc7wB,EAAYhE,KAAK+B,IAAI4yB,GAEnCG,EAAUl8B,EAAOk8B,QAEE,iBAAZA,IAAkD,IAA1BA,EAAQ7mC,QAAQ,OACjD6mC,EAAYlhC,WAAWgF,EAAOk8B,SAAW,IAAOr1B,GAElD,IAAIqsB,EAAaruB,EAAe,EAAIq3B,EAAU,EAC1CjJ,EAAapuB,EAAeq3B,EAAU,EAAqB,EAE3DrP,EAAQ,GAAK,EAAI7sB,EAAO6sB,OAASzlB,KAAK+B,IAAI4yB,GAG1C30B,KAAK+B,IAAI8pB,GAAc,OAASA,EAAa,GAC7C7rB,KAAK+B,IAAI+pB,GAAc,OAASA,EAAa,GAC7C9rB,KAAK+B,IAAI8yB,GAAc,OAASA,EAAa,GAC7C70B,KAAK+B,IAAIoyB,GAAW,OAASA,EAAU,GACvCn0B,KAAK+B,IAAIqyB,GAAW,OAASA,EAAU,GACvCp0B,KAAK+B,IAAI0jB,GAAS,OAASA,EAAQ,GAEvC,IAAIsP,EAAiB,eAAiBlJ,EAAa,MAAQC,EAAa,MAAQ+I,EAAa,gBAAkBT,EAAU,gBAAkBD,EAAU,cAAgB1O,EAAQ,IAI7K,GAFAxH,EAAS3tB,UAAUykC,GACnB9W,EAAS,GAAG3yB,MAAM+oC,OAAmD,EAAzCr0B,KAAK+B,IAAI/B,KAAKmzB,MAAMwB,IAC5C/7B,EAAOy6B,aAAc,CAEvB,IAAI2B,EAAkBv3B,EAAewgB,EAAStnB,KAAK,6BAA+BsnB,EAAStnB,KAAK,4BAC5Fs+B,EAAiBx3B,EAAewgB,EAAStnB,KAAK,8BAAgCsnB,EAAStnB,KAAK,+BACjE,IAA3Bq+B,EAAgB5qC,SAClB4qC,EAAkBtnC,EAAG,oCAAuC+P,EAAe,OAAS,OAAS,YAC7FwgB,EAASxoB,OAAOu/B,IAEY,IAA1BC,EAAe7qC,SACjB6qC,EAAiBvnC,EAAG,oCAAuC+P,EAAe,QAAU,UAAY,YAChGwgB,EAASxoB,OAAOw/B,IAEdD,EAAgB5qC,SAAU4qC,EAAgB,GAAG1pC,MAAM87B,QAAUuN,EAAmB,EAAIA,EAAmB,GACvGM,EAAe7qC,SAAU6qC,EAAe,GAAG3pC,MAAM87B,SAAYuN,EAAoB,GAAKA,EAAmB,KAK7G/6B,EAAQG,eAAiBH,EAAQs7B,yBAC1Bp3B,EAAW,GAAGxS,MACpB6pC,kBAAoBX,EAAS,WAGpC/wB,cAAe,SAAuB/S,GACvB5D,KACNyR,OACJ9N,WAAWC,GACXiG,KAAK,gHACLlG,WAAWC,KAiDd0kC,GAAS,CACXrgB,KAAM,WACJ,IAAI1X,EAASvQ,KAETuoC,EADMh4B,EAAOzE,OACM08B,OACnB76B,EAAc4C,EAAOzT,YACrByrC,EAAah4B,kBAAkB5C,GACjC4C,EAAOi4B,OAAOj4B,OAASg4B,EAAah4B,OACpCnG,EAAMpN,OAAOuT,EAAOi4B,OAAOj4B,OAAOoZ,eAAgB,CAChDvT,qBAAqB,EACrB0D,qBAAqB,IAEvB1P,EAAMpN,OAAOuT,EAAOi4B,OAAOj4B,OAAOzE,OAAQ,CACxCsK,qBAAqB,EACrB0D,qBAAqB,KAEd1P,EAAMxN,SAAS2rC,EAAah4B,UACrCA,EAAOi4B,OAAOj4B,OAAS,IAAI5C,EAAYvD,EAAMpN,OAAO,GAAIurC,EAAah4B,OAAQ,CAC3E8F,uBAAuB,EACvBD,qBAAqB,EACrB0D,qBAAqB,KAEvBvJ,EAAOi4B,OAAOC,eAAgB,GAEhCl4B,EAAOi4B,OAAOj4B,OAAOC,IAAIxO,SAASuO,EAAOzE,OAAO08B,OAAOE,sBACvDn4B,EAAOi4B,OAAOj4B,OAAOxM,GAAG,MAAOwM,EAAOi4B,OAAOG,eAE/CA,aAAc,WACZ,IAAIp4B,EAASvQ,KACT4oC,EAAer4B,EAAOi4B,OAAOj4B,OACjC,GAAKq4B,EAAL,CACA,IAAI/uB,EAAe+uB,EAAa/uB,aAC5BD,EAAegvB,EAAahvB,aAChC,KAAIA,GAAgBhZ,EAAEgZ,GAAcpX,SAAS+N,EAAOzE,OAAO08B,OAAOK,wBAC9D,MAAOhvB,GAAX,CACA,IAAIoD,EAMJ,GAJEA,EADE2rB,EAAa98B,OAAO0M,KACP3H,SAASjQ,EAAEgoC,EAAahvB,cAAchX,KAAK,2BAA4B,IAEvEiX,EAEbtJ,EAAOzE,OAAO0M,KAAM,CACtB,IAAIswB,EAAev4B,EAAOsG,YACtBtG,EAAOkB,OAAOhJ,GAAGqgC,GAActmC,SAAS+N,EAAOzE,OAAO2M,uBACxDlI,EAAO4L,UAEP5L,EAAO6L,YAAc7L,EAAOS,WAAW,GAAG3J,WAC1CyhC,EAAev4B,EAAOsG,aAExB,IAAI2F,EAAYjM,EAAOkB,OAAOhJ,GAAGqgC,GAAct/B,QAAS,6BAAgCyT,EAAe,MAAQxU,GAAG,GAAGH,QACjHmE,EAAY8D,EAAOkB,OAAOhJ,GAAGqgC,GAAc1/B,QAAS,6BAAgC6T,EAAe,MAAQxU,GAAG,GAAGH,QAC7E2U,OAAf,IAAdT,EAA4C/P,OACzB,IAAdA,EAA4C+P,EACnD/P,EAAYq8B,EAAeA,EAAetsB,EAA4B/P,EACzD+P,EAExBjM,EAAOgL,QAAQ0B,MAEjB9M,OAAQ,SAAgB44B,GACtB,IAAIx4B,EAASvQ,KACT4oC,EAAer4B,EAAOi4B,OAAOj4B,OACjC,GAAKq4B,EAAL,CAEA,IAAIv1B,EAAsD,SAAtCu1B,EAAa98B,OAAOuH,cACpCu1B,EAAa5rB,uBACb4rB,EAAa98B,OAAOuH,cAEpB21B,EAAmBz4B,EAAOzE,OAAO08B,OAAOQ,iBACxCC,EAAYD,IAAqBJ,EAAa98B,OAAO0M,KACzD,GAAIjI,EAAO+H,YAAcswB,EAAatwB,WAAa2wB,EAAW,CAC5D,IACIC,EACA7tB,EAFA8tB,EAAqBP,EAAa/xB,YAGtC,GAAI+xB,EAAa98B,OAAO0M,KAAM,CACxBowB,EAAan3B,OAAOhJ,GAAG0gC,GAAoB3mC,SAASomC,EAAa98B,OAAO2M,uBAC1EmwB,EAAazsB,UAEbysB,EAAaxsB,YAAcwsB,EAAa53B,WAAW,GAAG3J,WACtD8hC,EAAqBP,EAAa/xB,aAGpC,IAAIuyB,EAAkBR,EAAan3B,OAChChJ,GAAG0gC,GACH3/B,QAAS,6BAAiC+G,EAAgB,UAAI,MAAQ9H,GAAG,GACzEH,QACC+gC,EAAkBT,EAAan3B,OAChChJ,GAAG0gC,GACH//B,QAAS,6BAAiCmH,EAAgB,UAAI,MAAQ9H,GAAG,GACzEH,QAC2C4gC,OAAf,IAApBE,EAAoDC,OAC3B,IAApBA,EAAoDD,EAC3DC,EAAkBF,GAAuBA,EAAqBC,EAAoCD,EAClGE,EAAkBF,EAAqBA,EAAqBC,EAAoCC,EACjFD,EACxB/tB,EAAY9K,EAAOsG,YAActG,EAAO4I,cAAgB,OAAS,YAGjEkC,GADA6tB,EAAiB34B,EAAO+H,WACK/H,EAAO4I,cAAgB,OAAS,OAE3D8vB,IACFC,GAAgC,SAAd7tB,EAAuB2tB,GAAoB,EAAIA,GAG/DJ,EAAavxB,sBAAwBuxB,EAAavxB,qBAAqBlW,QAAQ+nC,GAAkB,IAC/FN,EAAa98B,OAAOkJ,eAEpBk0B,EADEA,EAAiBC,EACFD,EAAiBh2B,KAAKC,MAAME,EAAgB,GAAK,EAEjD61B,EAAiBh2B,KAAKC,MAAME,EAAgB,GAAK,EAE3D61B,EAAiBC,IAC1BD,EAAiBA,EAAiB71B,EAAgB,GAEpDu1B,EAAartB,QAAQ2tB,EAAgBH,EAAU,OAAI9jC,IAKvD,IAAIqkC,EAAmB,EACnBC,EAAmBh5B,EAAOzE,OAAO08B,OAAOK,sBAa5C,GAXIt4B,EAAOzE,OAAOuH,cAAgB,IAAM9C,EAAOzE,OAAOkJ,iBACpDs0B,EAAmB/4B,EAAOzE,OAAOuH,eAG9B9C,EAAOzE,OAAO08B,OAAOgB,uBACxBF,EAAmB,GAGrBA,EAAmBp2B,KAAKC,MAAMm2B,GAE9BV,EAAan3B,OAAOnP,YAAYinC,GAC5BX,EAAa98B,OAAO0M,MAASowB,EAAa98B,OAAOwF,SAAWs3B,EAAa98B,OAAOwF,QAAQC,QAC1F,IAAK,IAAI5Q,EAAI,EAAGA,EAAI2oC,EAAkB3oC,GAAK,EACzCioC,EAAa53B,WAAW1S,SAAU,8BAAiCiS,EAAO+H,UAAY3X,GAAK,MAAQqB,SAASunC,QAG9G,IAAK,IAAIl0B,EAAM,EAAGA,EAAMi0B,EAAkBj0B,GAAO,EAC/CuzB,EAAan3B,OAAOhJ,GAAG8H,EAAO+H,UAAYjD,GAAKrT,SAASunC,MA2E5Dv7B,GAAa,CACf2f,EACAC,EACAO,EACAE,EACAsB,GACA8B,GACA6B,GA3yGiB,CACjB1jB,KAAM,aACN9D,OAAQ,CACNopB,WAAY,CACV3jB,SAAS,EACT6jB,gBAAgB,EAChBI,QAAQ,EACRD,aAAa,EACbK,YAAa,EACbT,aAAc,cAGlB3lB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB2kB,WAAY,CACV3jB,SAAS,EACT6hB,OAAQG,GAAWH,OAAO9jB,KAAKiB,GAC/B8iB,QAASE,GAAWF,QAAQ/jB,KAAKiB,GACjCshB,OAAQ0B,GAAW1B,OAAOviB,KAAKiB,GAC/BwkB,iBAAkBxB,GAAWwB,iBAAiBzlB,KAAKiB,GACnD0kB,iBAAkB1B,GAAW0B,iBAAiB3lB,KAAKiB,GACnDimB,cAAejD,GAAWiD,cAAclnB,KAAKiB,GAC7CkmB,cAAelD,GAAWkD,cAAcnnB,KAAKiB,GAC7CijB,eAAgBppB,EAAMK,MACtBgpB,yBAAqBxuB,EACrByuB,kBAAmB,OAIzB3vB,GAAI,CACFkkB,KAAM,WACJ,IAAI1X,EAASvQ,MACRuQ,EAAOzE,OAAOopB,WAAW3jB,SAAWhB,EAAOzE,OAAOkG,SACrDzB,EAAO2kB,WAAW7B,UAEhB9iB,EAAOzE,OAAOopB,WAAW3jB,SAAWhB,EAAO2kB,WAAW9B,UAE5D9F,QAAS,WACP,IAAI/c,EAASvQ,KACTuQ,EAAOzE,OAAOkG,SAChBzB,EAAO2kB,WAAW9B,SAEhB7iB,EAAO2kB,WAAW3jB,SAAWhB,EAAO2kB,WAAW7B,aAyGtC,CACjBzjB,KAAM,aACN9D,OAAQ,CACNib,WAAY,CACVC,OAAQ,KACRC,OAAQ,KAERwiB,aAAa,EACb3S,cAAe,yBACf+C,YAAa,uBACb9C,UAAW,uBAGfvnB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBwW,WAAY,CACVkB,KAAM0O,GAAW1O,KAAK3Y,KAAKiB,GAC3BJ,OAAQwmB,GAAWxmB,OAAOb,KAAKiB,GAC/B+c,QAASqJ,GAAWrJ,QAAQhe,KAAKiB,GACjC0mB,YAAaN,GAAWM,YAAY3nB,KAAKiB,GACzCymB,YAAaL,GAAWK,YAAY1nB,KAAKiB,OAI/CxM,GAAI,CACFkkB,KAAM,WACSjoB,KACN+mB,WAAWkB,OADLjoB,KAEN+mB,WAAW5W,UAEpBu5B,OAAQ,WACO1pC,KACN+mB,WAAW5W,UAEpBw5B,SAAU,WACK3pC,KACN+mB,WAAW5W,UAEpBmd,QAAS,WACMttB,KACN+mB,WAAWuG,WAEpB8V,MAAO,SAAe5+B,GACpB,IASMolC,EATFr5B,EAASvQ,KACTwqB,EAAMja,EAAOwW,WACb6P,EAAUpM,EAAIoM,QACdC,EAAUrM,EAAIqM,SAEhBtmB,EAAOzE,OAAOib,WAAW0iB,aACrB7oC,EAAE4D,EAAEvH,QAAQ2H,GAAGiyB,IACfj2B,EAAE4D,EAAEvH,QAAQ2H,GAAGgyB,KAGfA,EACFgT,EAAWhT,EAAQp0B,SAAS+N,EAAOzE,OAAOib,WAAW8S,aAC5ChD,IACT+S,EAAW/S,EAAQr0B,SAAS+N,EAAOzE,OAAOib,WAAW8S,eAEtC,IAAb+P,EACFr5B,EAAO/B,KAAK,iBAAkB+B,GAE9BA,EAAO/B,KAAK,iBAAkB+B,GAE5BqmB,GACFA,EAAQl0B,YAAY6N,EAAOzE,OAAOib,WAAW8S,aAE3ChD,GACFA,EAAQn0B,YAAY6N,EAAOzE,OAAOib,WAAW8S,iBAuQpC,CACjBjqB,KAAM,aACN9D,OAAQ,CACNqrB,WAAY,CACV7zB,GAAI,KACJumC,cAAe,OACfpQ,WAAW,EACXgQ,aAAa,EACbvQ,aAAc,KACdK,kBAAmB,KACnBH,eAAgB,KAChBN,aAAc,KACdJ,qBAAqB,EACrBvX,KAAM,UACNwW,gBAAgB,EAChBE,mBAAoB,EACpBU,sBAAuB,SAAUuR,GAAU,OAAOA,GAClDtR,oBAAqB,SAAUsR,GAAU,OAAOA,GAChD3Q,YAAa,2BACbjB,kBAAmB,kCACnByB,cAAe,qBACfN,aAAc,4BACdC,WAAY,0BACZO,YAAa,2BACbL,qBAAsB,qCACtBI,yBAA0B,yCAC1BF,eAAgB,8BAChB3C,UAAW,2BAGfvnB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB4mB,WAAY,CACVlP,KAAMiP,GAAWjP,KAAK3Y,KAAKiB,GAC3BwoB,OAAQ7B,GAAW6B,OAAOzpB,KAAKiB,GAC/BJ,OAAQ+mB,GAAW/mB,OAAOb,KAAKiB,GAC/B+c,QAAS4J,GAAW5J,QAAQhe,KAAKiB,GACjCunB,mBAAoB,MAI1B/zB,GAAI,CACFkkB,KAAM,WACJ,IAAI1X,EAASvQ,KACbuQ,EAAO4mB,WAAWlP,OAClB1X,EAAO4mB,WAAW4B,SAClBxoB,EAAO4mB,WAAWhnB,UAEpB45B,kBAAmB,WACjB,IAAIx5B,EAASvQ,MACTuQ,EAAOzE,OAAO0M,WAEqB,IAArBjI,EAAO0F,YADvB1F,EAAO4mB,WAAWhnB,UAKtB65B,gBAAiB,WACFhqC,KACD8L,OAAO0M,MADNxY,KAEJm3B,WAAWhnB,UAGtB85B,mBAAoB,WAClB,IAAI15B,EAASvQ,KACTuQ,EAAOzE,OAAO0M,OAChBjI,EAAO4mB,WAAW4B,SAClBxoB,EAAO4mB,WAAWhnB,WAGtB+5B,qBAAsB,WACpB,IAAI35B,EAASvQ,KACRuQ,EAAOzE,OAAO0M,OACjBjI,EAAO4mB,WAAW4B,SAClBxoB,EAAO4mB,WAAWhnB,WAGtBmd,QAAS,WACMttB,KACNm3B,WAAW7J,WAEpB8V,MAAO,SAAe5+B,GACpB,IAAI+L,EAASvQ,KAEXuQ,EAAOzE,OAAOqrB,WAAW7zB,IACtBiN,EAAOzE,OAAOqrB,WAAWsS,aACzBl5B,EAAO4mB,WAAW3mB,IAAIlT,OAAS,IAC9BsD,EAAE4D,EAAEvH,QAAQuF,SAAS+N,EAAOzE,OAAOqrB,WAAWgC,gBAGjC,IADF5oB,EAAO4mB,WAAW3mB,IAAIhO,SAAS+N,EAAOzE,OAAOqrB,WAAW0C,aAErEtpB,EAAO/B,KAAK,iBAAkB+B,GAE9BA,EAAO/B,KAAK,iBAAkB+B,GAEhCA,EAAO4mB,WAAW3mB,IAAI9N,YAAY6N,EAAOzE,OAAOqrB,WAAW0C,iBAqRjD,CAChBjqB,KAAM,YACN9D,OAAQ,CACNiuB,UAAW,CACTz2B,GAAI,KACJ02B,SAAU,OACVK,MAAM,EACNqB,WAAW,EACXN,eAAe,EACfrE,UAAW,wBACXoT,UAAW,0BAGf36B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBwpB,UAAW,CACT9R,KAAM6R,GAAU7R,KAAK3Y,KAAKiB,GAC1B+c,QAASwM,GAAUxM,QAAQhe,KAAKiB,GAChCH,WAAY0pB,GAAU1pB,WAAWd,KAAKiB,GACtC0J,aAAc6f,GAAU7f,aAAa3K,KAAKiB,GAC1CoG,cAAemjB,GAAUnjB,cAAcrH,KAAKiB,GAC5C8qB,gBAAiBvB,GAAUuB,gBAAgB/rB,KAAKiB,GAChDgrB,iBAAkBzB,GAAUyB,iBAAiBjsB,KAAKiB,GAClDsqB,gBAAiBf,GAAUe,gBAAgBvrB,KAAKiB,GAChDmqB,mBAAoBZ,GAAUY,mBAAmBprB,KAAKiB,GACtDyqB,YAAalB,GAAUkB,YAAY1rB,KAAKiB,GACxC2qB,WAAYpB,GAAUoB,WAAW5rB,KAAKiB,GACtC4qB,UAAWrB,GAAUqB,UAAU7rB,KAAKiB,GACpC+Q,WAAW,EACXuU,QAAS,KACToF,YAAa,SAInBl3B,GAAI,CACFkkB,KAAM,WACJ,IAAI1X,EAASvQ,KACbuQ,EAAOwpB,UAAU9R,OACjB1X,EAAOwpB,UAAU3pB,aACjBG,EAAOwpB,UAAU9f,gBAEnB9J,OAAQ,WACOnQ,KACN+5B,UAAU3pB,cAEnBke,OAAQ,WACOtuB,KACN+5B,UAAU3pB,cAEnB4e,eAAgB,WACDhvB,KACN+5B,UAAU3pB,cAEnB6J,aAAc,WACCja,KACN+5B,UAAU9f,gBAEnBtD,cAAe,SAAuB/S,GACvB5D,KACN+5B,UAAUpjB,cAAc/S,IAEjC0pB,QAAS,WACMttB,KACN+5B,UAAUzM,aAyFN,CACf1d,KAAM,WACN9D,OAAQ,CACNkwB,SAAU,CACRzqB,SAAS,IAGb/B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnByrB,SAAU,CACRJ,aAAcD,GAASC,aAAatsB,KAAKiB,GACzC0J,aAAc0hB,GAAS1hB,aAAa3K,KAAKiB,GACzCoG,cAAeglB,GAAShlB,cAAcrH,KAAKiB,OAIjDxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACRuQ,EAAOzE,OAAOkwB,SAASzqB,UAC5BhB,EAAOzE,OAAOsK,qBAAsB,EACpC7F,EAAOoZ,eAAevT,qBAAsB,IAE9C6R,KAAM,WACSjoB,KACD8L,OAAOkwB,SAASzqB,SADfvR,KAENg8B,SAAS/hB,gBAElBA,aAAc,WACCja,KACD8L,OAAOkwB,SAASzqB,SADfvR,KAENg8B,SAAS/hB,gBAElBtD,cAAe,SAAuB/S,GACvB5D,KACD8L,OAAOkwB,SAASzqB,SADfvR,KAENg8B,SAASrlB,cAAc/S,MAocvB,CACXgM,KAAM,OACN9D,OAAQ,CACN6wB,KAAM,CACJprB,SAAS,EACT2rB,SAAU,EACV/S,SAAU,EACVxnB,QAAQ,EACRynC,eAAgB,wBAChBC,iBAAkB,wBAGtB76B,OAAQ,WACN,IAAIe,EAASvQ,KACT28B,EAAO,CACTprB,SAAS,EACTonB,MAAO,EACPoD,aAAc,EACdoB,WAAW,EACXP,QAAS,CACPzL,cAAUlsB,EACVu4B,gBAAYv4B,EACZw4B,iBAAax4B,EACb+3B,cAAU/3B,EACVg4B,kBAAch4B,EACdi4B,SAAU,GAEZ3R,MAAO,CACLjK,eAAWrc,EACXsc,aAAStc,EACT2c,cAAU3c,EACV8c,cAAU9c,EACV24B,UAAM34B,EACN64B,UAAM74B,EACN44B,UAAM54B,EACN84B,UAAM94B,EACNoL,WAAOpL,EACPqL,YAAQrL,EACRgd,YAAQhd,EACRid,YAAQjd,EACRs4B,aAAc,GACdS,eAAgB,IAElBzY,SAAU,CACRnL,OAAGnV,EACHoV,OAAGpV,EACHg5B,mBAAeh5B,EACfi5B,mBAAej5B,EACfk5B,cAAUl5B,IAId,+HAAiIzD,MAAM,KAAKpE,SAAQ,SAAU+M,GAC5JwyB,EAAKxyB,GAAciyB,GAAKjyB,GAAYmF,KAAKiB,MAE3CnG,EAAMpN,OAAOuT,EAAQ,CACnBosB,KAAMA,IAGR,IAAIhE,EAAQ,EACZ57B,OAAOyQ,eAAe+C,EAAOosB,KAAM,QAAS,CAC1ClvB,IAAK,WACH,OAAOkrB,GAETlpB,IAAK,SAAa3M,GAChB,GAAI61B,IAAU71B,EAAO,CACnB,IAAIqoB,EAAU5a,EAAOosB,KAAKC,QAAQI,SAAWzsB,EAAOosB,KAAKC,QAAQI,SAAS,QAAK/3B,EAC3EooB,EAAU9c,EAAOosB,KAAKC,QAAQzL,SAAW5gB,EAAOosB,KAAKC,QAAQzL,SAAS,QAAKlsB,EAC/EsL,EAAO/B,KAAK,aAAc1L,EAAOqoB,EAASkC,GAE5CsL,EAAQ71B,MAIdiB,GAAI,CACFkkB,KAAM,WACSjoB,KACF8L,OAAO6wB,KAAKprB,SADVvR,KAEJ28B,KAAKvJ,UAGhB9F,QAAS,WACMttB,KACN28B,KAAKtJ,WAEdiX,WAAY,SAAoB9lC,GACjBxE,KACD28B,KAAKprB,SADJvR,KAEN28B,KAAK/b,aAAapc,IAE3B+lC,SAAU,SAAkB/lC,GACbxE,KACD28B,KAAKprB,SADJvR,KAEN28B,KAAK9X,WAAWrgB,IAEzBgmC,UAAW,SAAmBhmC,GAC5B,IAAI+L,EAASvQ,KACTuQ,EAAOzE,OAAO6wB,KAAKprB,SAAWhB,EAAOosB,KAAKprB,SAAWhB,EAAOzE,OAAO6wB,KAAKh6B,QAC1E4N,EAAOosB,KAAKh6B,OAAO6B,IAGvB6B,cAAe,WACb,IAAIkK,EAASvQ,KACTuQ,EAAOosB,KAAKprB,SAAWhB,EAAOzE,OAAO6wB,KAAKprB,SAC5ChB,EAAOosB,KAAK+B,mBAGhB+L,YAAa,WACX,IAAIl6B,EAASvQ,KACTuQ,EAAOosB,KAAKprB,SAAWhB,EAAOzE,OAAO6wB,KAAKprB,SAAWhB,EAAOzE,OAAOkG,SACrEzB,EAAOosB,KAAK+B,qBA2JP,CACX9uB,KAAM,OACN9D,OAAQ,CACN8kB,KAAM,CACJrf,SAAS,EACTqvB,cAAc,EACdC,mBAAoB,EACpB6J,uBAAuB,EAEvB7K,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACb6K,eAAgB,0BAGpBn7B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBqgB,KAAM,CACJ8P,oBAAoB,EACpB7P,KAAM4O,GAAK5O,KAAKvhB,KAAKiB,GACrBmvB,YAAaD,GAAKC,YAAYpwB,KAAKiB,OAIzCxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACTuQ,EAAOzE,OAAO8kB,KAAKrf,SAAWhB,EAAOzE,OAAOsc,gBAC9C7X,EAAOzE,OAAOsc,eAAgB,IAGlCH,KAAM,WACJ,IAAI1X,EAASvQ,KACTuQ,EAAOzE,OAAO8kB,KAAKrf,UAAYhB,EAAOzE,OAAO0M,MAAuC,IAA/BjI,EAAOzE,OAAO0P,cACrEjL,EAAOqgB,KAAKC,QAGhB+Z,OAAQ,WACN,IAAIr6B,EAASvQ,KACTuQ,EAAOzE,OAAO2Y,WAAalU,EAAOzE,OAAOsa,gBAC3C7V,EAAOqgB,KAAKC,QAGhBvC,OAAQ,WACOtuB,KACF8L,OAAO8kB,KAAKrf,SADVvR,KAEJ4wB,KAAKC,QAGhBga,kBAAmB,WACJ7qC,KACF8L,OAAO8kB,KAAKrf,SADVvR,KAEJ4wB,KAAKC,QAGhBzV,gBAAiB,WACf,IAAI7K,EAASvQ,KACTuQ,EAAOzE,OAAO8kB,KAAKrf,UACjBhB,EAAOzE,OAAO8kB,KAAK8Z,wBAA2Bn6B,EAAOzE,OAAO8kB,KAAK8Z,wBAA0Bn6B,EAAOqgB,KAAK8P,qBACzGnwB,EAAOqgB,KAAKC,QAIlBxqB,cAAe,WACb,IAAIkK,EAASvQ,KACTuQ,EAAOzE,OAAO8kB,KAAKrf,UAAYhB,EAAOzE,OAAO8kB,KAAK8Z,uBACpDn6B,EAAOqgB,KAAKC,QAGhB4Z,YAAa,WACX,IAAIl6B,EAASvQ,KACTuQ,EAAOzE,OAAO8kB,KAAKrf,SAAWhB,EAAOzE,OAAOkG,SAC9CzB,EAAOqgB,KAAKC,UAqID,CACjBjhB,KAAM,aACN9D,OAAQ,CACN61B,WAAY,CACVK,aAAS/8B,EACTk9B,SAAS,EACTD,GAAI,UAGR1yB,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBoxB,WAAY,CACVK,QAASzxB,EAAOzE,OAAO61B,WAAWK,QAClCP,uBAAwBR,GAAWQ,uBAAuBnyB,KAAKiB,GAC/D0J,aAAcgnB,GAAWhnB,aAAa3K,KAAKiB,GAC3CoG,cAAesqB,GAAWtqB,cAAcrH,KAAKiB,OAInDxM,GAAI,CACFoM,OAAQ,WACN,IAAII,EAASvQ,KACRuQ,EAAOoxB,WAAWK,SACnBzxB,EAAOoxB,WAAWC,SACpBrxB,EAAOoxB,WAAWC,YAAS38B,SACpBsL,EAAOoxB,WAAWC,SAG7BtT,OAAQ,WACN,IAAI/d,EAASvQ,KACRuQ,EAAOoxB,WAAWK,SACnBzxB,EAAOoxB,WAAWC,SACpBrxB,EAAOoxB,WAAWC,YAAS38B,SACpBsL,EAAOoxB,WAAWC,SAG7B5S,eAAgB,WACd,IAAIze,EAASvQ,KACRuQ,EAAOoxB,WAAWK,SACnBzxB,EAAOoxB,WAAWC,SACpBrxB,EAAOoxB,WAAWC,YAAS38B,SACpBsL,EAAOoxB,WAAWC,SAG7B3nB,aAAc,SAAsB/C,EAAWgD,GAChCla,KACD2hC,WAAWK,SADVhiC,KAEN2hC,WAAW1nB,aAAa/C,EAAWgD,IAE5CvD,cAAe,SAAuB/S,EAAUsW,GACjCla,KACD2hC,WAAWK,SADVhiC,KAEN2hC,WAAWhrB,cAAc/S,EAAUsW,MAmKrC,CACTtK,KAAM,OACN9D,OAAQ,CACNu2B,KAAM,CACJ9wB,SAAS,EACTu5B,kBAAmB,sBACnB3H,iBAAkB,iBAClBF,iBAAkB,aAClBC,kBAAmB,0BACnBF,iBAAkB,yBAClBY,wBAAyB,0BAG7Bp0B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB8xB,KAAM,CACJkB,WAAY3iC,EAAG,gBAAoB2P,EAAOzE,OAAOu2B,KAAsB,kBAAI,yDAG/EtlC,OAAOI,KAAKklC,IAAMjlC,SAAQ,SAAU+M,GAClCoG,EAAO8xB,KAAKl4B,GAAck4B,GAAKl4B,GAAYmF,KAAKiB,OAGpDxM,GAAI,CACFkkB,KAAM,WACJ,IAAI1X,EAASvQ,KACRuQ,EAAOzE,OAAOu2B,KAAK9wB,UACxBhB,EAAO8xB,KAAKpa,OACZ1X,EAAO8xB,KAAKmB,qBAEdkG,OAAQ,WACO1pC,KACD8L,OAAOu2B,KAAK9wB,SADXvR,KAENqiC,KAAKmB,oBAEdmG,SAAU,WACK3pC,KACD8L,OAAOu2B,KAAK9wB,SADXvR,KAENqiC,KAAKmB,oBAEduH,iBAAkB,WACH/qC,KACD8L,OAAOu2B,KAAK9wB,SADXvR,KAENqiC,KAAKoB,oBAEdnW,QAAS,WACMttB,KACD8L,OAAOu2B,KAAK9wB,SADXvR,KAENqiC,KAAK/U,aAoFF,CACd1d,KAAM,UACN9D,OAAQ,CACNpM,QAAS,CACP6R,SAAS,EACT5R,cAAc,EACdtC,IAAK,WAGTmS,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB7Q,QAAS,CACPuoB,KAAM4b,GAAQ5b,KAAK3Y,KAAKiB,GACxB8zB,WAAYR,GAAQQ,WAAW/0B,KAAKiB,GACpC2zB,mBAAoBL,GAAQK,mBAAmB50B,KAAKiB,GACpD0zB,cAAeJ,GAAQI,cAAc30B,KAAKiB,GAC1C+c,QAASuW,GAAQvW,QAAQhe,KAAKiB,OAIpCxM,GAAI,CACFkkB,KAAM,WACSjoB,KACF8L,OAAOpM,QAAQ6R,SADbvR,KAEJN,QAAQuoB,QAGnBqF,QAAS,WACMttB,KACF8L,OAAOpM,QAAQ6R,SADbvR,KAEJN,QAAQ4tB,WAGnBjnB,cAAe,WACb,IAAIkK,EAASvQ,KACTuQ,EAAO7Q,QAAQ8Z,aACjBjJ,EAAO7Q,QAAQ2kC,WAAW9zB,EAAOzE,OAAOpM,QAAQrC,IAAKkT,EAAOsG,cAGhE4zB,YAAa,WACX,IAAIl6B,EAASvQ,KACTuQ,EAAO7Q,QAAQ8Z,aAAejJ,EAAOzE,OAAOkG,SAC9CzB,EAAO7Q,QAAQ2kC,WAAW9zB,EAAOzE,OAAOpM,QAAQrC,IAAKkT,EAAOsG,gBA0D7C,CACrBjH,KAAM,kBACN9D,OAAQ,CACNg4B,eAAgB,CACdvyB,SAAS,EACT5R,cAAc,EACdmlC,YAAY,IAGhBt1B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBuzB,eAAgB,CACdtqB,aAAa,EACbyO,KAAMyc,GAAezc,KAAK3Y,KAAKiB,GAC/B+c,QAASoX,GAAepX,QAAQhe,KAAKiB,GACrCs0B,QAASH,GAAeG,QAAQv1B,KAAKiB,GACrCo0B,YAAaD,GAAeC,YAAYr1B,KAAKiB,OAInDxM,GAAI,CACFkkB,KAAM,WACSjoB,KACF8L,OAAOg4B,eAAevyB,SADpBvR,KAEJ8jC,eAAe7b,QAG1BqF,QAAS,WACMttB,KACF8L,OAAOg4B,eAAevyB,SADpBvR,KAEJ8jC,eAAexW,WAG1BjnB,cAAe,WACArG,KACF8jC,eAAetqB,aADbxZ,KAEJ8jC,eAAee,WAG1B4F,YAAa,WACX,IAAIl6B,EAASvQ,KACTuQ,EAAOuzB,eAAetqB,aAAejJ,EAAOzE,OAAOkG,SACrDzB,EAAOuzB,eAAee,aAsFb,CACfj1B,KAAM,WACN9D,OAAQ,CACNub,SAAU,CACR9V,SAAS,EACT/G,MAAO,IACP46B,mBAAmB,EACnB4F,sBAAsB,EACtB9F,iBAAiB,EACjBD,kBAAkB,IAGtBz1B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB8W,SAAU,CACRC,SAAS,EACTC,QAAQ,EACRC,IAAKud,GAASvd,IAAIlY,KAAKiB,GACvBwY,MAAOgc,GAAShc,MAAMzZ,KAAKiB,GAC3B6lB,KAAM2O,GAAS3O,KAAK9mB,KAAKiB,GACzB40B,MAAOJ,GAASI,MAAM71B,KAAKiB,GAC3B06B,mBAAoB,WACe,WAA7BztC,SAAS0tC,iBAAgC36B,EAAO8W,SAASC,SAC3D/W,EAAO8W,SAAS8d,QAEe,YAA7B3nC,SAAS0tC,iBAAiC36B,EAAO8W,SAASE,SAC5DhX,EAAO8W,SAASG,MAChBjX,EAAO8W,SAASE,QAAS,IAG7BmX,gBAAiB,SAAyBl6B,GACnC+L,IAAUA,EAAO2K,WAAc3K,EAAOS,YACvCxM,EAAEvH,SAAW+C,OACjBuQ,EAAOS,WAAW,GAAGpT,oBAAoB,gBAAiB2S,EAAO8W,SAASqX,iBAC1EnuB,EAAOS,WAAW,GAAGpT,oBAAoB,sBAAuB2S,EAAO8W,SAASqX,iBAChFnuB,EAAO8W,SAASE,QAAS,EACpBhX,EAAO8W,SAASC,QAGnB/W,EAAO8W,SAASG,MAFhBjX,EAAO8W,SAAS+O,aAQ1BryB,GAAI,CACFkkB,KAAM,WACJ,IAAI1X,EAASvQ,KACTuQ,EAAOzE,OAAOub,SAAS9V,UACzBhB,EAAO8W,SAAS0B,QAChBvrB,SAASG,iBAAiB,mBAAoB4S,EAAO8W,SAAS4jB,sBAGlEE,sBAAuB,SAA+B30B,EAAOkE,GAC3D,IAAInK,EAASvQ,KACTuQ,EAAO8W,SAASC,UACd5M,IAAanK,EAAOzE,OAAOub,SAAS2jB,qBACtCz6B,EAAO8W,SAAS8d,MAAM3uB,GAEtBjG,EAAO8W,SAAS+O,SAItBgV,gBAAiB,WACf,IAAI76B,EAASvQ,KACTuQ,EAAO8W,SAASC,UACd/W,EAAOzE,OAAOub,SAAS2jB,qBACzBz6B,EAAO8W,SAAS+O,OAEhB7lB,EAAO8W,SAAS8d,UAItBoF,SAAU,WACR,IAAIh6B,EAASvQ,KACTuQ,EAAOzE,OAAOkG,SAAWzB,EAAO8W,SAASE,SAAWhX,EAAOzE,OAAOub,SAAS2jB,sBAC7Ez6B,EAAO8W,SAASG,OAGpB8F,QAAS,WACP,IAAI/c,EAASvQ,KACTuQ,EAAO8W,SAASC,SAClB/W,EAAO8W,SAAS+O,OAElB54B,SAASI,oBAAoB,mBAAoB2S,EAAO8W,SAAS4jB,uBAkDtD,CACfr7B,KAAM,cACN9D,OAAQ,CACN25B,WAAY,CACVC,WAAW,IAGfl2B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBk1B,WAAY,CACVxrB,aAAcorB,GAAKprB,aAAa3K,KAAKiB,GACrCoG,cAAe0uB,GAAK1uB,cAAcrH,KAAKiB,OAI7CxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACb,GAA6B,SAAzBuQ,EAAOzE,OAAOqJ,OAAlB,CACA5E,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,QACjE,IAAI6lB,EAAkB,CACpBte,cAAe,EACfJ,gBAAiB,EACjBc,eAAgB,EAChBqC,qBAAqB,EACrB7D,aAAc,EACdwH,kBAAkB,GAEpB3P,EAAMpN,OAAOuT,EAAOzE,OAAQ6lB,GAC5BvnB,EAAMpN,OAAOuT,EAAOoZ,eAAgBgI,KAEtC1X,aAAc,WAEiB,SADhBja,KACF8L,OAAOqJ,QADLnV,KAENylC,WAAWxrB,gBAEpBtD,cAAe,SAAuB/S,GAEP,SADhB5D,KACF8L,OAAOqJ,QADLnV,KAENylC,WAAW9uB,cAAc/S,MAwIrB,CACfgM,KAAM,cACN9D,OAAQ,CACNm6B,WAAY,CACVM,cAAc,EACdJ,QAAQ,EACRO,aAAc,GACdK,YAAa,MAGjBv3B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB01B,WAAY,CACVhsB,aAAc4rB,GAAK5rB,aAAa3K,KAAKiB,GACrCoG,cAAekvB,GAAKlvB,cAAcrH,KAAKiB,OAI7CxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACb,GAA6B,SAAzBuQ,EAAOzE,OAAOqJ,OAAlB,CACA5E,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,QACjEyE,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,MACjE,IAAI6lB,EAAkB,CACpBte,cAAe,EACfJ,gBAAiB,EACjBc,eAAgB,EAChBqC,qBAAqB,EACrBkO,gBAAiB,EACjB/R,aAAc,EACdyC,gBAAgB,EAChB+E,kBAAkB,GAEpB3P,EAAMpN,OAAOuT,EAAOzE,OAAQ6lB,GAC5BvnB,EAAMpN,OAAOuT,EAAOoZ,eAAgBgI,KAEtC1X,aAAc,WAEiB,SADhBja,KACF8L,OAAOqJ,QADLnV,KAENimC,WAAWhsB,gBAEpBtD,cAAe,SAAuB/S,GAEP,SADhB5D,KACF8L,OAAOqJ,QADLnV,KAENimC,WAAWtvB,cAAc/S,MA+ErB,CACfgM,KAAM,cACN9D,OAAQ,CACNq7B,WAAY,CACVZ,cAAc,EACda,eAAe,IAGnB53B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnB42B,WAAY,CACVltB,aAAcitB,GAAKjtB,aAAa3K,KAAKiB,GACrCoG,cAAeuwB,GAAKvwB,cAAcrH,KAAKiB,OAI7CxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACb,GAA6B,SAAzBuQ,EAAOzE,OAAOqJ,OAAlB,CACA5E,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,QACjEyE,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,MACjE,IAAI6lB,EAAkB,CACpBte,cAAe,EACfJ,gBAAiB,EACjBc,eAAgB,EAChBqC,qBAAqB,EACrB7D,aAAc,EACdwH,kBAAkB,GAEpB3P,EAAMpN,OAAOuT,EAAOzE,OAAQ6lB,GAC5BvnB,EAAMpN,OAAOuT,EAAOoZ,eAAgBgI,KAEtC1X,aAAc,WAEiB,SADhBja,KACF8L,OAAOqJ,QADLnV,KAENmnC,WAAWltB,gBAEpBtD,cAAe,SAAuB/S,GAEP,SADhB5D,KACF8L,OAAOqJ,QADLnV,KAENmnC,WAAWxwB,cAAc/S,MAqFhB,CACpBgM,KAAM,mBACN9D,OAAQ,CACN27B,gBAAiB,CACfE,OAAQ,GACRK,QAAS,EACTJ,MAAO,IACPjP,MAAO,EACPmP,SAAU,EACVvB,cAAc,IAGlB/2B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBk3B,gBAAiB,CACfxtB,aAAcutB,GAAUvtB,aAAa3K,KAAKiB,GAC1CoG,cAAe6wB,GAAU7wB,cAAcrH,KAAKiB,OAIlDxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KACgB,cAAzBuQ,EAAOzE,OAAOqJ,SAElB5E,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,aACjEyE,EAAOsa,WAAWvpB,KAAOiP,EAAOzE,OAA6B,uBAAI,MAEjEyE,EAAOzE,OAAOsK,qBAAsB,EACpC7F,EAAOoZ,eAAevT,qBAAsB,IAE9C6D,aAAc,WAEiB,cADhBja,KACF8L,OAAOqJ,QADLnV,KAENynC,gBAAgBxtB,gBAEzBtD,cAAe,SAAuB/S,GAEP,cADhB5D,KACF8L,OAAOqJ,QADLnV,KAENynC,gBAAgB9wB,cAAc/S,MAoJ5B,CACbgM,KAAM,SACN9D,OAAQ,CACN08B,OAAQ,CACNj4B,OAAQ,KACRi5B,sBAAsB,EACtBR,iBAAkB,EAClBH,sBAAuB,4BACvBH,qBAAsB,4BAG1Bl5B,OAAQ,WACN,IAAIe,EAASvQ,KACboK,EAAMpN,OAAOuT,EAAQ,CACnBi4B,OAAQ,CACNj4B,OAAQ,KACR0X,KAAMqgB,GAAOrgB,KAAK3Y,KAAKiB,GACvBJ,OAAQm4B,GAAOn4B,OAAOb,KAAKiB,GAC3Bo4B,aAAcL,GAAOK,aAAar5B,KAAKiB,OAI7CxM,GAAI,CACF2tB,WAAY,WACV,IAAInhB,EAASvQ,KAETwoC,EADMj4B,EAAOzE,OACA08B,OACZA,GAAWA,EAAOj4B,SACvBA,EAAOi4B,OAAOvgB,OACd1X,EAAOi4B,OAAOr4B,QAAO,KAEvBs6B,YAAa,WACEzqC,KACDwoC,OAAOj4B,QADNvQ,KAENwoC,OAAOr4B,UAEhBA,OAAQ,WACOnQ,KACDwoC,OAAOj4B,QADNvQ,KAENwoC,OAAOr4B,UAEhBme,OAAQ,WACOtuB,KACDwoC,OAAOj4B,QADNvQ,KAENwoC,OAAOr4B,UAEhB6e,eAAgB,WACDhvB,KACDwoC,OAAOj4B,QADNvQ,KAENwoC,OAAOr4B,UAEhBwG,cAAe,SAAuB/S,GACpC,IACIglC,EADS5oC,KACawoC,OAAOj4B,OAC5Bq4B,GACLA,EAAajyB,cAAc/S,IAE7BynC,cAAe,WACb,IACIzC,EADS5oC,KACawoC,OAAOj4B,OAC5Bq4B,GAFQ5oC,KAGFwoC,OAAOC,eAAiBG,GACjCA,EAAatb,cA0CrB,YAP0B,IAAftB,EAAOtc,MAChBsc,EAAOtc,IAAMsc,EAAOlqB,MAAM4N,IAC1Bsc,EAAOrc,cAAgBqc,EAAOlqB,MAAM6N,eAGtCqc,EAAOtc,IAAI1B,IAEJge,EAjlRyEsf,KCZhFC,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxmC,IAAjBymC,EACH,OAAOA,EAAa/uC,QAGrB,IAAID,EAAS6uC,EAAyBE,GAAY,CAGjD9uC,QAAS,IAOV,OAHAgvC,EAAoBF,GAAUhlC,KAAK/J,EAAOC,QAASD,EAAQA,EAAOC,QAAS6uC,GAGpE9uC,EAAOC,QCpBf6uC,EAAoBI,EAAI,SAASlvC,GAChC,IAAImvC,EAASnvC,GAAUA,EAAOovC,WAC7B,WAAa,OAAOpvC,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADA8uC,EAAoBO,EAAEF,EAAQ,CAAE3gC,EAAG2gC,IAC5BA,GCLRL,EAAoBO,EAAI,SAASpvC,EAASqvC,GACzC,IAAI,IAAI3uC,KAAO2uC,EACXR,EAAoBp/B,EAAE4/B,EAAY3uC,KAASmuC,EAAoBp/B,EAAEzP,EAASU,IAC5EN,OAAOyQ,eAAe7Q,EAASU,EAAK,CAAEwP,YAAY,EAAMY,IAAKu+B,EAAW3uC,MCJ3EmuC,EAAoBp/B,EAAI,SAASvP,EAAKiL,GAAQ,OAAO/K,OAAO8E,UAAUoqC,eAAexlC,KAAK5J,EAAKiL,I,4BCczFokC,EAGAC,EARe19B,MAAM5M,UAAU8M,MAAMlI,KACvCjJ,SAASS,iBAAiB,gBAIxBiuC,EAAez9B,MAAM5M,UAAU8M,MAAMlI,KACvCjJ,SAASS,iBAAiB,kBAExBkuC,EAAY,GAOhBD,EAAa9uC,SAAQ,SAACgvC,GACpB,GAAID,EAAUC,EAAKnpC,aAAa,eAC9B,MAAM,IAAIopC,MAAJ,UACDD,EAAKnpC,aAAa,cADjB,gCAIRkpC,EAAUC,EAAKnpC,aAAa,eAAiBmpC,KAG/C7sC,OAAOwF,EAAIonC,EASb,MA1CA,SAAWG,GACT,OAAO79B,MAAM5M,UAAU8M,MAAMlI,KAAKjJ,SAASS,iBAAiBquC,KCAvDjyB,EAAKkyB,EACZ,GAAGlyB,EAAE,UAAU,GAAG,CAChBA,EAAE,yBAAyBjd,SAAQ,SAACgvC,EAAK9jC,GACvC8jC,EAAKI,aAAe,WAAU,WACxBC,EAAQpyB,EAAE,yBAAyBnU,QAAO,SAAAkmC,GAAI,OAAEA,IAAS,KAChD/xB,EAAE,yBAAyBnU,QAAO,SAACkmC,EAAKM,GAAN,OAAaA,IAASpkC,KAC9DlL,SAAQ,SAAAgvC,GAAI,OAAEA,EAAKhqC,UAAUG,OAAO,SAC3CkqC,EAAMrvC,SAAQ,SAAAgvC,GAAI,OAAEA,EAAKhqC,UAAUG,OAAO,SAC1CvC,KAAKoC,UAAUC,IAAI,MACnBgY,EAAE,yBAAyB/R,GAAOlG,UAAUC,IAAI,UAGpD,IAAIsqC,EAAc,EAWdC,GAVQC,aAAY,WACtBxyB,EAAE,gBAAgBjd,SAAQ,SAAAgvC,GACxBA,EAAKhqC,UAAUG,OAAO,SAExB8X,EAAE,gBAAgBsyB,GAAavqC,UAAUC,IAAI,QAC7CsqC,EACe,IACbA,EAAc,KAEhB,KACe,IAAI3gB,OAAO,sCAAsC,CAChE3Y,cAAgB,EAChBd,aAAa,GACb8U,UAAS,KAEXhN,EAAE,8CAA8C,GAAGyyB,QAAU,WAC3DF,EAAWvwB,aAEbhC,EAAE,8CAA8C,GAAGyyB,QAAU,WAC3DF,EAAW3wB,aAEb,IAAI8wB,EAAO,IAAI/gB,OAAO,0BAA0B,CAC9CxK,WAAY,IAEdnH,EAAE,sBAAsBjd,SAAQ,SAACgvC,EAAK9jC,GACpC8jC,EAAKI,aAAe,WAClBnyB,EAAE,sBAAsBjd,SAAQ,SAAAgvC,GAC9BA,EAAKhqC,UAAUG,OAAO,MACtBwqC,EAAKxxB,QAAQjT,MAEftI,KAAKoC,UAAUC,IAAI,U,sBC1ClBgY,EAAMkyB,EACb,GAAGxnC,EAAEioC,MASH,KAAIL,EAAc,EACNE,aAAY,WACtBxyB,EAAE,eAAejd,SAAQ,SAAAgvC,GACvBA,EAAKhqC,UAAUG,OAAO,SAExB8X,EAAE,eAAesyB,GAAavqC,UAAUC,IAAI,QAC5CsqC,EACe,IACbA,EAAc,KAEhB,KAkBJ,GAhBG5nC,EAAEkoC,OACH1tC,OAAOmsB,OAAS,WACd3mB,EAAEmoC,WAAW1uC,MAAM6R,MAAQ7S,SAASE,KAAKmJ,YAAY9B,EAAEkoC,KAAKhvC,iBAAiB,YAAY,GAAG8Y,WAAW,KACvGhS,EAAEmoC,WAAW1uC,MAAMiW,YAAc1P,EAAEkoC,KAAKhvC,iBAAiB,YAAY,GAAG8Y,WAAW,MAEpE,IAAIiV,IAAJ,CAAW,gCAAgC,CAC1D3Y,cAAgB,EAChBd,aAAc,GACd8U,UAAS,EACTja,UAAS,EACTmiB,gBAAe,IAEjB9gB,MAAM5M,UAAU8M,MAAMlI,KAAK1B,EAAEmoC,WAAWjvC,iBAAiB,4BAA4Bb,SAAQ,SAAAgvC,GAC3FA,EAAK5tC,MAAM6R,MAAM,YAGlBtL,EAAEooC,QAAQ,CACX,IAAQC,EAAeroC,EAAfqoC,WACR3+B,MAAM5M,UAAU8M,MAAMlI,KAAK2mC,EAAWnvC,iBAAiB,cAAcb,SAAQ,SAAAgvC,GAC3EA,EAAKU,QAAU,WACb,IAAIO,EAAMrtC,KAAK2J,WACA8E,MAAM5M,UAAU8M,MAAMlI,KAAK2mC,EAAWnvC,iBAAiB,UAAUiI,QAAO,SAAAkmC,GACrF,OAAOA,IAASiB,KAETjwC,SAAQ,SAAAgvC,GACbA,EAAKhqC,UAAUG,OAAO,MACtB6pC,EAAK5tC,MAAQ,GACb4tC,EAAKnuC,iBAAiB,YAAY,GAAGqvC,UAAY,QAElDD,EAAIjrC,UAAUK,SAAS,OACxB4qC,EAAIjrC,UAAUG,OAAO,MACrB8qC,EAAI7uC,MAAQ,GACZ6uC,EAAIpvC,iBAAiB,YAAY,GAAGqvC,UAAY,OAEhDD,EAAIjrC,UAAUC,IAAI,MAClBgrC,EAAI7uC,MAAM8R,OAAS,GAAG+8B,EAAIpvC,iBAAiB,SAAS,GAAG+I,aAAa,KACpEqmC,EAAIpvC,iBAAiB,YAAY,GAAGqvC,UAAY,UAKrD1sC,EAAE,aAAa,IACK,IAAIorB,IAAJ,CAAW,mCAAmC,CACjEjF,WAAY,CACVC,OAAQ,sBACRC,OAAQ,uBAEVI,UAAS,EACTja,UAAS,EACTmiB,gBAAe,IAGflV,EAAE,UAAU,IACXA,EAAE,SAAS,GC1EhB,IAAQA,EAAUkyB,EAElBlyB,EAAE,mBAAmB,GAAGyyB,QAAU,WAChCzyB,EAAE,WAAW,GAAGjY,UAAUC,IAAI,aAEhCgY,EAAE,kBAAkB,GAAGyyB,QAAU,WAC/BzyB,EAAE,WAAW,GAAGjY,UAAUG,OAAO,aAGnC,IAyBIgrC,EACAC,EA1BAC,EAAUpzB,EAAE,4BAA4B,GAAG3J,aAC/C2J,EAAE,yBAAyB,GAAGmyB,aAAe,WAAY,WACvDxsC,KAAKoC,UAAUC,IAAI,UACnB/B,YAAW,WACT,EAAKtC,cAAc,MAAMQ,MAAM8R,OAA/B,UAA2Cm9B,EAA3C,MACA,EAAKzvC,cAAc,MAAMQ,MAAMkJ,IAA/B,WAAyC+lC,EAAzC,MACA,EAAKzvC,cAAc,MAAMQ,MAAMkvC,WAAa,YAC3C,IAELrzB,EAAE,yBAAyB,GAAGszB,aAAe,WAC3C3tC,KAAKhC,cAAc,MAAMQ,MAAM8R,OAAS,IACxCtQ,KAAKhC,cAAc,MAAMQ,MAAMkvC,WAAa,SAC5C1tC,KAAKhC,cAAc,MAAMQ,MAAMkJ,IAA/B,KAGFnI,OAAO5B,iBAAiB,UAAU,WAC5B4B,OAAOquC,aAAe,KACxBvzB,EAAE,YAAY,GAAG7b,MAAM87B,QAAU,EACjCjgB,EAAE,YAAY,GAAG7b,MAAMkvC,WAAa,YAEpCrzB,EAAE,YAAY,GAAG7b,MAAM87B,QAAU,GACjCjgB,EAAE,YAAY,GAAG7b,MAAMkvC,WAAa,OAMpCrzB,EAAE,YAAY,KAChB9a,OAAO5B,iBAAiB,QAAQ,WAC9B4vC,EAAalzB,EAAE,YAAY,GAAGrD,UAC9Bw2B,EAAgBnzB,EAAE,YAAY,GAAG3J,gBAEnCnR,OAAO5B,iBAAiB,UAAU,WAC5B4B,OAAOquC,aAAeL,EAAa,IACrClzB,EAAE,YAAY,GAAG7b,MAAMmmB,SAAW,QAClCtK,EAAE,YAAY,GAAG7b,MAAMkJ,IAAM,IAC7B2S,EAAE,YAAY,GAAG7b,MAAMmJ,KAAO,MAC9B0S,EAAE,YAAY,GAAG7b,MAAMgF,UAAY,mBACnC6W,EAAE,YAAY,GAAG7b,MAAM+oC,OAAS,KAChCltB,EAAE,YAAY,GAAGlR,mBAAmB3K,MAAMsU,UACxC06B,EAAgB,IAAM,OAExBnzB,EAAE,YAAY,GAAG7b,MAAMmmB,SAAW,GAClCtK,EAAE,YAAY,GAAG7b,MAAMkJ,IAAM,GAC7B2S,EAAE,YAAY,GAAG7b,MAAMmJ,KAAO,GAC9B0S,EAAE,YAAY,GAAG7b,MAAMgF,UAAY,GACnC6W,EAAE,YAAY,GAAG7b,MAAM+oC,OAAS,GAChCltB,EAAE,YAAY,GAAGlR,mBAAmB3K,MAAMsU,UAAY,QAa5D,IAiEI+6B,EAjEAC,EAAYvuC,OAAOV,SAASC,MAAQ,GACxCS,OAAO5B,iBAAiB,QAAO,WAC7B2C,YAAW,WACK,KAAdwtC,GAAmBvuC,OAAOqrC,OAAO,EAAGvwB,EAAE,IAAKyzB,EAAUn/B,MAAM,IAAI,GAAGqI,UAAY,OAI7E,OAELqD,EAAE,wBAAwBjd,SAAQ,SAACgvC,EAAM9jC,GACvC8jC,EAAKzuC,iBAAiB,SAAS,WAC7B0c,EAAE,wBAAwBjd,SAAQ,SAACgvC,GACjCA,EAAKziC,WAAWvH,UAAUG,OAAO,SAEnCwrC,QAAQC,IAAI,KACZhuC,KAAK2J,WAAWvH,UAAUC,IAAI,MAC9B/B,YAAW,WACLf,OAAOV,SAASC,MAClBS,OAAOqrC,OACL,EACAvwB,EAAE,IAAM9a,OAAOV,SAASC,KAAK6P,MAAM,IAAI,GAAGqI,UAAY,OAGzD,IACHqD,EAAE,sCAAsC,KACnCA,EAAE,sCAAsC,GAAGizB,UAAYttC,KAAKstC,iBAKrE/tC,OAAO5B,iBAAiB,QAAQ,WAC9B,IAAIswC,EAAO5zB,EAAE,YAAY,GACrB3J,EAAelT,SAAS0wC,gBAAgBx9B,aACxCy9B,EAAQ,KACRC,GAAQ,EACZ7uC,OAAO5B,iBAAiB,UAAU,WAChC,IAAI0wC,EAAQ7wC,SAAS0wC,gBAAgB5mC,WAAa9J,SAASE,KAAK4J,UAE9D2mC,EAAKzvC,MAAMi8B,QADT4T,GAAS39B,EACU,QAEA,OAGlB09B,GACHE,cAAcH,GAEhBC,GAAQ,KAGVH,EAAKnB,QAAU,WAEbqB,EAAQtB,aAAY,WAClB,IAAIwB,EAAQ7wC,SAAS0wC,gBAAgB5mC,WAAa9J,SAASE,KAAK4J,UAC5DinC,EAASr7B,KAAKC,OAAOk7B,EAAQ,GAEjC7wC,SAAS0wC,gBAAgB5mC,UAAY9J,SAASE,KAAK4J,UACjD+mC,EAAQE,EAEVH,GAAQ,EACK,GAATC,GACFC,cAAcH,KAEf,QAIP,IAAIK,EAAS,EAEb,GAAIn0B,EAAE,UAAU,GAAI,KAETo0B,EAAT,WACEH,cAAcT,GACdA,EAAehB,aAAY,WACrB2B,GAAUn0B,EAAE,aAAa/c,SAC3BkxC,EAAS,GAEXn0B,EAAE,aAAajd,SAAQ,SAACgvC,GACtBA,EAAK5tC,MAAMgF,UAAY,MAEzB6W,EAAE,qBAAqBjd,SAAQ,SAACgvC,GAC9BA,EAAK5tC,MAAMkwC,eAAiB,MAE9Br0B,EAAE,qBAAqBm0B,GAAQhwC,MAAMkwC,eAAiB,YACtDr0B,EAAE,aAAam0B,GAAQhwC,MAAMgF,UAAY,aACzCgrC,MACC,MAhBLC,IAmBAp0B,EAAE,qBAAqBjd,SAAQ,SAACgvC,EAAM9jC,GACpC8jC,EAAKzuC,iBAAiB,cAAc,WAClC2wC,cAAcT,GAEdxzB,EAAE,qBAAqBjd,SAAQ,SAACgvC,GAC9BA,EAAK5tC,MAAMkwC,eAAiB,MAG9B1uC,KAAKxB,MAAMkwC,eAAiB,YAE5Br0B,EAAE,aAAajd,SAAQ,SAACgvC,GACtBA,EAAK5tC,MAAMgF,UAAY,MAGzB6W,EAAE,aAAa/R,GAAO9J,MAAMgF,UAAY,aACxCgrC,EAASlmC,KAEX8jC,EAAKzuC,iBAAiB,cAAc,WAClC8wC,W","sources":["webpack://dade/./node_modules/swiper/js/swiper.js","webpack://dade/webpack/bootstrap","webpack://dade/webpack/runtime/compat get default export","webpack://dade/webpack/runtime/define property getters","webpack://dade/webpack/runtime/hasOwnProperty shorthand","webpack://dade/./src/js/young.js","webpack://dade/./src/js/index.js","webpack://dade/./src/js/all.js","webpack://dade/./src/main.js"],"sourcesContent":["/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Swiper = factory());\n}(this, (function () { 'use strict';\n\n /**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n /* eslint-disable no-param-reassign */\n function isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n }\n function extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n { target[key] = src[key]; }\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n }\n\n var doc = typeof document !== 'undefined' ? document : {};\n var ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n };\n extend(doc, ssrDocument);\n\n var win = typeof window !== 'undefined' ? window : {};\n var ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n };\n extend(win, ssrWindow);\n\n /**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\n\n var Dom7 = function Dom7(arr) {\n var self = this;\n // Create array-like object\n for (var i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n };\n\n function $(selector, context) {\n var arr = [];\n var i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els;\n var tempParent;\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [doc.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || doc).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) { arr.push(els[i]); }\n }\n }\n } else if (selector.nodeType || selector === win || selector === doc) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n }\n\n $.fn = Dom7.prototype;\n $.Class = Dom7;\n $.Dom7 = Dom7;\n\n function unique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); }\n }\n return uniqueArray;\n }\n\n // Classes and attributes\n function addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); }\n }\n }\n return this;\n }\n function removeClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); }\n }\n }\n return this;\n }\n function hasClass(className) {\n if (!this[0]) { return false; }\n return this[0].classList.contains(className);\n }\n function toggleClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); }\n }\n }\n return this;\n }\n function attr(attrs, value) {\n var arguments$1 = arguments;\n\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) { return this[0].getAttribute(attrs); }\n return undefined;\n }\n\n // Set attrs\n for (var i = 0; i < this.length; i += 1) {\n if (arguments$1.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n }\n // eslint-disable-next-line\n function removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n }\n function data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute((\"data-\" + key));\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; }\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n }\n // Transforms\n // eslint-disable-next-line\n function transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n }\n function transition(duration) {\n if (typeof duration !== 'string') {\n duration = duration + \"ms\"; // eslint-disable-line\n }\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n }\n // Events\n function on() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) { return; }\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) { listener.apply(target, eventData); }\n else {\n var parents = $(target).parents(); // eslint-disable-line\n for (var k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); }\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) { el.dom7Listeners = {}; }\n if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; }\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var event$1 = events[j];\n if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; }\n if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; }\n el.dom7LiveListeners[event$1].push({\n listener: listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event$1, handleLiveEvent, capture);\n }\n }\n }\n return this;\n }\n function off() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var eventType = args[0];\n var targetSelector = args[1];\n var listener = args[2];\n var capture = args[3];\n if (typeof args[1] === 'function') {\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\n targetSelector = undefined;\n }\n if (!capture) { capture = false; }\n\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = (void 0);\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n }\n function trigger() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var evt = (void 0);\n try {\n evt = new win.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = doc.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n }\n function transitionEnd(callback) {\n var events = ['webkitTransitionEnd', 'transitionend'];\n var dom = this;\n var i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) { return; }\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n }\n function outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n }\n function outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n }\n function offset() {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = doc.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n }\n function styles() {\n if (this[0]) { return win.getComputedStyle(this[0], null); }\n return {};\n }\n function css(props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); }\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (var prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n }\n // Iterate over the collection passing elements to `callback`\n function each(callback) {\n // Don't bother continuing without a callback\n if (!callback) { return this; }\n // Iterate over the current collection\n for (var i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n }\n function filter(callback) {\n var matchedItems = [];\n var dom = this;\n for (var i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) { matchedItems.push(dom[i]); }\n }\n return new Dom7(matchedItems);\n }\n // eslint-disable-next-line\n function html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n }\n // eslint-disable-next-line\n function text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n }\n function is(selector) {\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') { return false; }\n if (typeof selector === 'string') {\n if (el.matches) { return el.matches(selector); }\n else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); }\n else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); }\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n } else if (selector === doc) { return el === doc; }\n else if (selector === win) { return el === win; }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) { return true; }\n }\n return false;\n }\n return false;\n }\n function index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) { i += 1; }\n }\n return i;\n }\n return undefined;\n }\n // eslint-disable-next-line\n function eq(index) {\n if (typeof index === 'undefined') { return this; }\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) { return new Dom7([]); }\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n }\n function append() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var newChild;\n\n for (var k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n }\n function prepend(newChild) {\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n }\n function next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.nextElementSibling) {\n var next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) { nextEls.push(next); }\n } else { nextEls.push(next); }\n el = next;\n }\n return new Dom7(nextEls);\n }\n function prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); }\n return new Dom7([]);\n }\n return new Dom7([]);\n }\n function prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) { return new Dom7([]); }\n while (el.previousElementSibling) {\n var prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) { prevEls.push(prev); }\n } else { prevEls.push(prev); }\n el = prev;\n }\n return new Dom7(prevEls);\n }\n function parent(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); }\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n }\n function parents(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) { parents.push(parent); }\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n }\n function closest(selector) {\n var closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n }\n function find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n }\n function children(selector) {\n var children = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].childNodes;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); }\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n }\n function remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); }\n }\n return this;\n }\n function add() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dom = this;\n var i;\n var j;\n for (i = 0; i < args.length; i += 1) {\n var toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n }\n\n var Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n data: data,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove,\n add: add,\n styles: styles,\n };\n\n Object.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n });\n\n var Utils = {\n deleteProps: function deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick: function nextTick(callback, delay) {\n if ( delay === void 0 ) delay = 0;\n\n return setTimeout(callback, delay);\n },\n now: function now() {\n return Date.now();\n },\n getTranslate: function getTranslate(el, axis) {\n if ( axis === void 0 ) axis = 'x';\n\n var matrix;\n var curTransform;\n var transformMatrix;\n\n var curStyle = win.getComputedStyle(el, null);\n\n if (win.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[4]); }\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; }\n // Crazy IE10 Matrix\n else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); }\n // Normal Browsers\n else { curTransform = parseFloat(matrix[5]); }\n }\n return curTransform || 0;\n },\n parseUrlQuery: function parseUrlQuery(url) {\n var query = {};\n var urlToParse = url || win.location.href;\n var i;\n var params;\n var param;\n var length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject: function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function extend() {\n var args = [], len$1 = arguments.length;\n while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ];\n\n var to = Object(args[0]);\n for (var i = 1; i < args.length; i += 1) {\n var nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n };\n\n var Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)),\n\n pointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in win || 'WebkitMutationObserver' in win);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n },\n });\n win.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in win;\n }()),\n };\n }());\n\n var SwiperClass = function SwiperClass(params) {\n if ( params === void 0 ) params = {};\n\n var self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n };\n\n var staticAccessors = { components: { configurable: true } };\n\n SwiperClass.prototype.on = function on (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; }\n self.eventsListeners[event][method](handler);\n });\n return self;\n };\n\n SwiperClass.prototype.once = function once (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') { return self; }\n function onceHandler() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n };\n\n SwiperClass.prototype.off = function off (events, handler) {\n var self = this;\n if (!self.eventsListeners) { return self; }\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.emit = function emit () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var self = this;\n if (!self.eventsListeners) { return self; }\n var events;\n var data;\n var context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n };\n\n SwiperClass.prototype.useModulesParams = function useModulesParams (instanceParams) {\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n };\n\n SwiperClass.prototype.useModules = function useModules (modulesParams) {\n if ( modulesParams === void 0 ) modulesParams = {};\n\n var instance = this;\n if (!instance.modules) { return; }\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n };\n\n staticAccessors.components.set = function (components) {\n var Class = this;\n if (!Class.use) { return; }\n Class.use(components);\n };\n\n SwiperClass.installModule = function installModule (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (!Class.prototype.modules) { Class.prototype.modules = {}; }\n var name = module.name || (((Object.keys(Class.prototype.modules).length) + \"_\" + (Utils.now())));\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n };\n\n SwiperClass.use = function use (module) {\n var params = [], len = arguments.length - 1;\n while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ];\n\n var Class = this;\n if (Array.isArray(module)) {\n module.forEach(function (m) { return Class.installModule(m); });\n return Class;\n }\n return Class.installModule.apply(Class, [ module ].concat( params ));\n };\n\n Object.defineProperties( SwiperClass, staticAccessors );\n\n function updateSize () {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height,\n });\n }\n\n function updateSlides () {\n var swiper = this;\n var params = swiper.params;\n\n var $wrapperEl = swiper.$wrapperEl;\n var swiperSize = swiper.size;\n var rtl = swiper.rtlTranslate;\n var wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children((\".\" + (swiper.params.slideClass)));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) { return true; }\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); }\n else { slides.css({ marginRight: '', marginBottom: '' }); }\n\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = (void 0);\n var column = (void 0);\n var row = (void 0);\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n (\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left')),\n (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + \"px\"))\n );\n }\n if (slide.css('display') === 'none') { continue; } // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = win.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width'));\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height'));\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n var boxSizing$1 = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing$1 && boxSizing$1 === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) { slideSize = Math.floor(slideSize); }\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; }\n if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; }\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) { slidePosition = Math.floor(slidePosition); }\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) { snapGrid.push(slidePosition); }\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + \"px\") }); }\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\n var slidesGridItem = snapGrid[i$1];\n if (params.roundLengths) { slidesGridItem = Math.floor(slidesGridItem); }\n if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(slidesGridItem); }\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\n var slidesGridItem$1 = snapGrid[i$2];\n if (params.roundLengths) { slidesGridItem$1 = Math.floor(slidesGridItem$1); }\n if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem$1);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) { snapGrid = [0]; }\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) { slides.filter(slidesForMargin).css({ marginLeft: (spaceBetween + \"px\") }); }\n else { slides.filter(slidesForMargin).css({ marginRight: (spaceBetween + \"px\") }); }\n } else { slides.filter(slidesForMargin).css({ marginBottom: (spaceBetween + \"px\") }); }\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) { return -offsetBefore; }\n if (snap > maxSnap) { return maxSnap + offsetAfter; }\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var allSlidesSize$1 = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize$1 += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize$1 -= params.spaceBetween;\n if (allSlidesSize$1 < swiperSize) {\n var allSlidesOffset = (swiperSize - allSlidesSize$1) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) { swiper.checkOverflow(); }\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n }\n\n function updateAutoHeight (speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (index, slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) { break; }\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + \"px\")); }\n }\n\n function updateSlidesOffset () {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n }\n\n function updateSlidesProgress (translate) {\n if ( translate === void 0 ) translate = (this && this.translate) || 0;\n\n var swiper = this;\n var params = swiper.params;\n\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n\n if (slides.length === 0) { return; }\n if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); }\n\n var offsetCenter = -translate;\n if (rtl) { offsetCenter = translate; }\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n }\n\n function updateProgress (translate) {\n var swiper = this;\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress;\n var isBeginning = swiper.isBeginning;\n var isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) { swiper.updateSlidesProgress(translate); }\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n }\n\n function updateSlidesClasses () {\n var swiper = this;\n\n var slides = swiper.slides;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n var realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(((params.slideActiveClass) + \" \" + (params.slideNextClass) + \" \" + (params.slidePrevClass) + \" \" + (params.slideDuplicateActiveClass) + \" \" + (params.slideDuplicateNextClass) + \" \" + (params.slideDuplicatePrevClass)));\n\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.nextAll((\".\" + (params.slideClass))).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prevAll((\".\" + (params.slideClass))).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n }\n\n function updateActiveIndex (newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n var previousIndex = swiper.activeIndex;\n var previousRealIndex = swiper.realIndex;\n var previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; }\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n }\n\n function updateClickedSlide (e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest((\".\" + (params.slideClass)))[0];\n var slideFound = false;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) { slideFound = true; }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n }\n\n var update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide,\n };\n\n function getTranslate (axis) {\n if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y';\n\n var swiper = this;\n\n var params = swiper.params;\n var rtl = swiper.rtlTranslate;\n var translate = swiper.translate;\n var $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) { currentTranslate = -currentTranslate; }\n\n return currentTranslate || 0;\n }\n\n function setTranslate (translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperEl = swiper.wrapperEl;\n var progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform((\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\"));\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n }\n\n function minTranslate () {\n return (-this.snapGrid[0]);\n }\n\n function maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n }\n\n function translateTo (translate, speed, runCallbacks, translateBounds, internal) {\n var obj;\n\n if ( translate === void 0 ) translate = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n if ( translateBounds === void 0 ) translateBounds = true;\n var swiper = this;\n\n var params = swiper.params;\n var wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) { newTranslate = minTranslate; }\n else if (translateBounds && translate < maxTranslate) { newTranslate = maxTranslate; }\n else { newTranslate = translate; }\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = -newTranslate, obj.behavior = 'smooth', obj ));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n }\n\n var translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo,\n };\n\n function setTransition (duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n }\n\n function transitionStart (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var params = swiper.params;\n var previousIndex = swiper.previousIndex;\n if (params.cssMode) { return; }\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n }\n\n function transitionEnd$1 (runCallbacks, direction) {\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var previousIndex = swiper.previousIndex;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) { return; }\n swiper.setTransition(0);\n\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) { dir = 'next'; }\n else if (activeIndex < previousIndex) { dir = 'prev'; }\n else { dir = 'reset'; }\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n }\n\n var transition$1 = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd$1,\n };\n\n function slideTo (index, speed, runCallbacks, internal) {\n var obj;\n\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) { slideIndex = 0; }\n\n var params = swiper.params;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var previousIndex = swiper.previousIndex;\n var activeIndex = swiper.activeIndex;\n var rtl = swiper.rtlTranslate;\n var wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; }\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) { return false; }\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) { direction = 'next'; }\n else if (slideIndex < activeIndex) { direction = 'prev'; }\n else { direction = 'reset'; }\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = t, obj.behavior = 'smooth', obj ));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n }\n\n function slideToLoop (index, speed, runCallbacks, internal) {\n if ( index === void 0 ) index = 0;\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideNext (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slidePrev (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n var params = swiper.params;\n var animating = swiper.animating;\n var snapGrid = swiper.snapGrid;\n var slidesGrid = swiper.slidesGrid;\n var rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating) { return false; }\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) { return -Math.floor(Math.abs(val)); }\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });\n var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); });\n\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) { prevSnap = snap; }\n });\n }\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) { prevIndex = swiper.activeIndex - 1; }\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideReset (speed, runCallbacks, internal) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n }\n\n /* eslint no-unused-vars: \"off\" */\n function slideToClosest (speed, runCallbacks, internal, threshold) {\n if ( speed === void 0 ) speed = this.params.speed;\n if ( runCallbacks === void 0 ) runCallbacks = true;\n if ( threshold === void 0 ) threshold = 0.5;\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var currentSnap$1 = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap$1 - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n }\n\n function slideToClickedSlide () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) { return; }\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\n .eq(0)\n .index();\n\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n\n var slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide,\n };\n\n function loopCreate () {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\n\n var slides = $wrapperEl.children((\".\" + (params.slideClass)));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + \" \" + (params.slideBlankClass)));\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; }\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $(el);\n if (index < swiper.loopedSlides) { appendSlides.push(el); }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\n $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\n $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n }\n\n function loopFix () {\n var swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n var activeIndex = swiper.activeIndex;\n var slides = swiper.slides;\n var loopedSlides = swiper.loopedSlides;\n var allowSlidePrev = swiper.allowSlidePrev;\n var allowSlideNext = swiper.allowSlideNext;\n var snapGrid = swiper.snapGrid;\n var rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged$1 && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n }\n\n function loopDestroy () {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var slides = swiper.slides;\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \",.\" + (params.slideClass) + \".\" + (params.slideBlankClass))).remove();\n slides.removeAttr('data-swiper-slide-index');\n }\n\n var loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy,\n };\n\n function setGrabCursor (moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; }\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n }\n\n function unsetGrabCursor () {\n var swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; }\n swiper.el.style.cursor = '';\n }\n\n var grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor,\n };\n\n function appendSlide (slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.append(slides[i]); }\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n }\n\n function prependSlide (slides) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { $wrapperEl.prepend(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n }\n\n function addSlide (index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var params = swiper.params;\n var activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (slides[i$1]) { $wrapperEl.append(slides[i$1]); }\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {\n $wrapperEl.append(slidesBuffer[i$2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeSlide (slidesIndexes) {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl;\n var activeIndex = swiper.activeIndex;\n\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); }\n if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n }\n\n function removeAllSlides () {\n var swiper = this;\n\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n }\n\n var manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n };\n\n var Device = (function Device() {\n var platform = win.navigator.platform;\n var ua = win.navigator.userAgent;\n\n var device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(win.cordova || win.phonegap),\n phonegap: !!(win.cordova || win.phonegap),\n electron: false,\n };\n\n var screenWidth = win.screen.width;\n var screenHeight = win.screen.height;\n\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n var edge = ua.indexOf('Edge/') >= 0;\n var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n var windows = platform === 'Win32';\n var electron = ua.toLowerCase().indexOf('electron') >= 0;\n var macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone))\n || (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = win.devicePixelRatio || 1;\n\n // Export object\n return device;\n }());\n\n function onTouchStart (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) { return; }\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; }\n if (!data.isTouchEvent && 'button' in e && e.button > 0) { return; }\n if (data.isTouched && data.isMoved) { return; }\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : (\".\" + (params.noSwipingClass)))[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) { return; }\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= win.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) { data.allowThresholdMove = false; }\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) { preventDefault = false; }\n if (\n doc.activeElement\n && $(doc.activeElement).is(data.formElements)\n && doc.activeElement !== $targetEl[0]\n ) {\n doc.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n }\n\n function onTouchMove (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') { return; }\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && doc.activeElement) {\n if (e.target === doc.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) { return; }\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((Math.pow( diffX, 2 )) + (Math.pow( diffY, 2 ))) < swiper.params.threshold) { return; }\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) { diff = -diff; }\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); }\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); }\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) { return; }\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n }\n\n function onTouchEnd (event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n\n var params = swiper.params;\n var touches = swiper.touches;\n var rtl = swiper.rtlTranslate;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesGrid = swiper.slidesGrid;\n var snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed) { swiper.allowClick = true; }\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) { newPosition = -newPosition; }\n\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) { needsLoopFix = true; }\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; }\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) { return; }\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n var increment$1 = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment$1] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment$1]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment$1] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + increment); }\n else { swiper.slideTo(stopIndex); }\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + increment); }\n else { swiper.slideTo(stopIndex); }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n }\n\n function onResize () {\n var swiper = this;\n\n var params = swiper.params;\n var el = swiper.el;\n\n if (el && el.offsetWidth === 0) { return; }\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n var allowSlideNext = swiper.allowSlideNext;\n var allowSlidePrev = swiper.allowSlidePrev;\n var snapGrid = swiper.snapGrid;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n }\n\n function onClick (e) {\n var swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) { e.preventDefault(); }\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n }\n\n function onScroll () {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl;\n var rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) { swiper.translate = 0; }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n }\n\n var dummyEventAttached = false;\n function dummyEventListener() {}\n\n function attachEvents() {\n var swiper = this;\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n var capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n doc.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n doc.addEventListener('mousemove', swiper.onTouchMove, capture);\n doc.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n }\n\n function detachEvents() {\n var swiper = this;\n\n var params = swiper.params;\n var touchEvents = swiper.touchEvents;\n var el = swiper.el;\n var wrapperEl = swiper.wrapperEl;\n\n var capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n doc.removeEventListener('mousemove', swiper.onTouchMove, capture);\n doc.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n }\n\n var events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents,\n };\n\n function setBreakpoint () {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var initialized = swiper.initialized;\n var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0;\n var params = swiper.params;\n var $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; }\n\n // Get breakpoint for window width and update parameters\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') { return; }\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(((params.containerModifierClass) + \"multirow \" + (params.containerModifierClass) + \"multirow-column\"));\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(((params.containerModifierClass) + \"multirow\"));\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(((params.containerModifierClass) + \"multirow-column\"));\n }\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n }\n\n function getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) { return undefined; }\n var breakpoint = false;\n\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = win.innerHeight * minRatio;\n return { value: value, point: point };\n }\n return { value: point, point: point };\n });\n\n points.sort(function (a, b) { return parseInt(a.value, 10) - parseInt(b.value, 10); });\n for (var i = 0; i < points.length; i += 1) {\n var ref = points[i];\n var point = ref.point;\n var value = ref.value;\n if (value <= win.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n }\n\n var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };\n\n function addClasses () {\n var swiper = this;\n var classNames = swiper.classNames;\n var params = swiper.params;\n var rtl = swiper.rtl;\n var $el = swiper.$el;\n var suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n }\n\n function removeClasses () {\n var swiper = this;\n var $el = swiper.$el;\n var classNames = swiper.classNames;\n\n $el.removeClass(classNames.join(' '));\n }\n\n var classes = { addClasses: addClasses, removeClasses: removeClasses };\n\n function loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback) { callback(); }\n }\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new win.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n }\n\n function preloadImages () {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; }\n if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; }\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) { swiper.update(); }\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n }\n\n var images = {\n loadImage: loadImage,\n preloadImages: preloadImages,\n };\n\n function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) { swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) { swiper.navigation.update(); }\n }\n }\n\n var checkOverflow$1 = { checkOverflow: checkOverflow };\n\n var defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n };\n\n /* eslint no-param-reassign: \"off\" */\n\n var prototypes = {\n update: update,\n translate: translate,\n transition: transition$1,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images,\n };\n\n var extendedDefaults = {};\n\n var Swiper = /*@__PURE__*/(function (SwiperClass) {\n function Swiper() {\n var assign;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n var el;\n var params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n (assign = args, el = assign[0], params = assign[1]);\n }\n if (!params) { params = {}; }\n\n params = Utils.extend({}, params);\n if (el && !params.el) { params.el = el; }\n\n SwiperClass.call(this, params);\n\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n var swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) { return; }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; }\n }\n });\n\n // Extend defaults with modules params\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n var $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector((\".\" + (swiper.params.wrapperClass))));\n // Children needs to return slot items\n $wrapperEl.children = function (options) { return $el.children(options); };\n } else {\n $wrapperEl = $el.children((\".\" + (swiper.params.wrapperClass)));\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n if ( SwiperClass ) Swiper.__proto__ = SwiperClass;\n Swiper.prototype = Object.create( SwiperClass && SwiperClass.prototype );\n Swiper.prototype.constructor = Swiper;\n\n var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } };\n\n Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () {\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides;\n var slidesGrid = swiper.slidesGrid;\n var swiperSize = swiper.size;\n var activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\n if (slides[i$1] && !breakLoop) {\n slideSize += slides[i$1].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) { breakLoop = true; }\n }\n }\n } else {\n for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {\n if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n\n Swiper.prototype.update = function update () {\n var swiper = this;\n if (!swiper || swiper.destroyed) { return; }\n var snapGrid = swiper.snapGrid;\n var params = swiper.params;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n\n Swiper.prototype.changeDirection = function changeDirection (newDirection, needUpdate) {\n if ( needUpdate === void 0 ) needUpdate = true;\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass((\"\" + (swiper.params.containerModifierClass) + currentDirection))\n .addClass((\"\" + (swiper.params.containerModifierClass) + newDirection));\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each(function (slideIndex, slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) { swiper.update(); }\n\n return swiper;\n };\n\n Swiper.prototype.init = function init () {\n var swiper = this;\n if (swiper.initialized) { return; }\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n };\n\n Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) {\n if ( deleteInstance === void 0 ) deleteInstance = true;\n if ( cleanStyles === void 0 ) cleanStyles = true;\n\n var swiper = this;\n var params = swiper.params;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults (newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n };\n\n staticAccessors.extendedDefaults.get = function () {\n return extendedDefaults;\n };\n\n staticAccessors.defaults.get = function () {\n return defaults;\n };\n\n staticAccessors.Class.get = function () {\n return SwiperClass;\n };\n\n staticAccessors.$.get = function () {\n return $;\n };\n\n Object.defineProperties( Swiper, staticAccessors );\n\n return Swiper;\n }(SwiperClass));\n\n var Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n };\n\n var Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n };\n\n var Browser = (function Browser() {\n function isSafari() {\n var ua = win.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!win.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\n };\n }());\n\n var Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n };\n\n var Resize = {\n name: 'resize',\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) { return; }\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n // Emit resize\n win.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy() {\n var swiper = this;\n win.removeEventListener('resize', swiper.resize.resizeHandler);\n win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n };\n\n var Observer = {\n func: win.MutationObserver || win.WebkitMutationObserver,\n attach: function attach(target, options) {\n if ( options === void 0 ) options = {};\n\n var swiper = this;\n\n var ObserverFunc = Observer.func;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(observerUpdate);\n } else {\n win.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer) { return; }\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n };\n\n var Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.destroy();\n },\n },\n };\n\n var Virtual = {\n update: function update(force) {\n var swiper = this;\n var ref = swiper.params;\n var slidesPerView = ref.slidesPerView;\n var slidesPerGroup = ref.slidesPerGroup;\n var centeredSlides = ref.centeredSlides;\n var ref$1 = swiper.params.virtual;\n var addSlidesBefore = ref$1.addSlidesBefore;\n var addSlidesAfter = ref$1.addSlidesAfter;\n var ref$2 = swiper.virtual;\n var previousFrom = ref$2.from;\n var previousTo = ref$2.to;\n var slides = ref$2.slides;\n var previousSlidesGrid = ref$2.slidesGrid;\n var renderSlide = ref$2.renderSlide;\n var previousOffset = ref$2.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n\n var offsetProp;\n if (swiper.rtlTranslate) { offsetProp = 'right'; }\n else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; }\n\n var slidesAfter;\n var slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, (offset + \"px\"));\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: (function getSlides() {\n var slidesToRender = [];\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n var prependIndexes = [];\n var appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass))).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\")).remove();\n }\n }\n }\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\n if (i$1 >= from && i$1 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i$1);\n } else {\n if (i$1 > previousTo) { appendIndexes.push(i$1); }\n if (i$1 < previousFrom) { prependIndexes.push(i$1); }\n }\n }\n }\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) { return b - a; }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + \"px\"));\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n var $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $((\"
\" + slide + \"
\"));\n if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); }\n if (params.cache) { swiper.virtual.cache[index] = $slideEl; }\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.push(slides[i]); }\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) { swiper.virtual.slides.unshift(slides[i]); }\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) { return; }\n var activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) { activeIndex -= 1; }\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n };\n\n var Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"virtual\"));\n var overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) { return; }\n swiper.virtual.update();\n },\n },\n };\n\n var Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents((\".\" + (swiper.params.slideClass))).length > 0 && swiper.$el.parents((\".\" + (swiper.params.slideActiveClass))).length === 0) {\n return undefined;\n }\n var windowWidth = win.innerWidth;\n var windowHeight = win.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; }\n var swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) { return undefined; }\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) { swiper.slideNext(); }\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) { swiper.slidePrev(); }\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n if (isPageDown || isArrowDown) { swiper.slideNext(); }\n if (isPageUp || isArrowUp) { swiper.slidePrev(); }\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n if (swiper.keyboard.enabled) { return; }\n $(doc).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n if (!swiper.keyboard.enabled) { return; }\n $(doc).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n };\n\n var Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n };\n\n function isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in doc;\n\n if (!isSupported) {\n var element = doc.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && doc.implementation\n && doc.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && doc.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n }\n var Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; }\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n\n var sX = 0;\n var sY = 0; // spinX, spinY\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) { return true; }\n\n if (e.originalEvent) { e = e.originalEvent; } // jquery fix\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = -data.pixelX * rtlFactor; }\n else { return true; }\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = -data.pixelY; }\n else { return true; }\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) { return true; }\n\n if (params.invert) { delta = -delta; }\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var newEvent$1 = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n var ref = swiper.mousewheel;\n var lastEventBeforeSnap = ref.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap\n && newEvent$1.time < lastEventBeforeSnap.time + 500\n && newEvent$1.delta <= lastEventBeforeSnap.delta\n && newEvent$1.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n var position = swiper.getTranslate() + (delta * params.sensitivity);\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); }\n if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); }\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var recentWheelEvents$1 = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents$1.length >= 15) {\n recentWheelEvents$1.shift(); // only store the last N events\n }\n var prevEvent$1 = recentWheelEvents$1.length ? recentWheelEvents$1[recentWheelEvents$1.length - 1] : undefined;\n var firstEvent = recentWheelEvents$1[0];\n recentWheelEvents$1.push(newEvent$1);\n if (prevEvent$1 && (newEvent$1.delta > prevEvent$1.delta || newEvent$1.direction !== prevEvent$1.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents$1.splice(0);\n } else if (recentWheelEvents$1.length >= 15\n && newEvent$1.time - firstEvent.time < 500\n && firstEvent.delta - newEvent$1.delta >= 1\n && newEvent$1.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent$1;\n recentWheelEvents$1.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent$1;\n recentWheelEvents$1.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) { swiper.emit('scroll', e); }\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.autoplay.stop(); }\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; }\n }\n }\n\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) { return false; }\n if (swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) { return false; }\n if (!swiper.mousewheel.enabled) { return false; }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n };\n\n var Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); }\n },\n },\n };\n\n var Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n\n if (swiper.params.loop) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) { return; }\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) { return; }\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) { return; }\n\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n };\n\n var Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.navigation.destroy();\n },\n click: function click(e) {\n var swiper = this;\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n };\n\n var Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n // Current/Total\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) { current -= total; }\n if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; }\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + \"px\"));\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(((params.bulletActiveClass) + \" \" + (params.bulletActiveClass) + \"-next \" + (params.bulletActiveClass) + \"-next-next \" + (params.bulletActiveClass) + \"-prev \" + (params.bulletActiveClass) + \"-prev-prev \" + (params.bulletActiveClass) + \"-main\"));\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var i$1 = params.dynamicMainBullets; i$1 >= 0; i$1 -= 1) {\n bullets.eq(bullets.length - i$1).addClass(((params.bulletActiveClass) + \"-main\"));\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(((params.bulletActiveClass) + \"-prev\"));\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev\"))\n .prev()\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\n $lastDisplayedBullet\n .next()\n .addClass(((params.bulletActiveClass) + \"-next\"))\n .next()\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\n }\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + \"px\"));\n }\n }\n if (params.type === 'fraction') {\n $el.find((\".\" + (params.currentClass))).text(params.formatFractionCurrent(current + 1));\n $el.find((\".\" + (params.totalClass))).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n var progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find((\".\" + (params.progressbarFillClass))).transform((\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\")).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + (params.bulletElement) + \" class=\\\"\" + (params.bulletClass) + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find((\".\" + (params.bulletClass)));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\"\n + ' / '\n + \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) { return; }\n\n var $el = $(params.el);\n if ($el.length === 0) { return; }\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass((\"\" + (params.modifierClass) + (params.type) + \"-dynamic\"));\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', (\".\" + (params.bulletClass)), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) { index += swiper.loopedSlides; }\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0],\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; }\n var $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); }\n if (params.clickable) {\n $el.off('click', (\".\" + (params.bulletClass)));\n }\n },\n };\n\n var Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function (number) { return number; },\n formatFractionTotal: function (number) { return number; },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange() {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange() {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function click(e) {\n var swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n };\n\n var Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var progress = swiper.progress;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform((\"translate3d(\" + newPos + \"px, 0, 0)\"));\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform((\"translate3d(0px, \" + newPos + \"px, 0)\"));\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; }\n\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl;\n var $el = scrollbar.$el;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el;\n var dragSize = scrollbar.dragSize;\n var trackSize = scrollbar.trackSize;\n var dragStartPos = scrollbar.dragStartPos;\n\n var positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n var $dragEl = scrollbar.$dragEl;\n\n if (!swiper.scrollbar.isTouched) { return; }\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n\n if (!swiper.scrollbar.isTouched) { return; }\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var touchEventsTouch = swiper.touchEventsTouch;\n var touchEventsDesktop = swiper.touchEventsDesktop;\n var params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) { return; }\n var scrollbar = swiper.scrollbar;\n var $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find((\".\" + (swiper.params.scrollbar.dragClass)));\n if ($dragEl.length === 0) {\n $dragEl = $((\"
\"));\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n };\n\n var Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function resize() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n };\n\n var Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = (parseInt(x, 10) * progress * rtlFactor) + \"%\";\n } else {\n x = (x * progress * rtlFactor) + \"px\";\n }\n if ((y).indexOf('%') >= 0) {\n y = (parseInt(y, 10) * progress) + \"%\";\n } else {\n y = (y * progress) + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px)\"));\n } else {\n var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\"));\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n var progress = swiper.progress;\n var snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideIndex, slideEl) {\n var slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if ( duration === void 0 ) duration = this.params.speed;\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each(function (index, parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) { parallaxDuration = 0; }\n $parallaxEl.transition(parallaxDuration);\n });\n },\n };\n\n var Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.parallax.enabled) { return; }\n swiper.parallax.setTransition(duration);\n },\n },\n };\n\n var Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) { return 1; }\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 )));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest((\".\" + (swiper.params.slideClass)));\n if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 ));\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 ));\n }\n gesture.$imageEl.transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) { gesture.$slideEl = undefined; }\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (image.isTouched) { return; }\n if (Device.android && e.cancelable) { e.preventDefault(); }\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) { return; }\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; }\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 ));\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 ));\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 ));\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 ));\n }\n\n // Velocity\n if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; }\n if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; }\n if (!velocity.prevTime) { velocity.prevTime = Date.now(); }\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; }\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; }\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n var velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); }\n if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); }\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function in$1(e) {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n var image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children((\".\" + (swiper.params.slideActiveClass)));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n gesture.$slideEl.addClass((\"\" + (params.zoomedSlideClass)));\n\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform((\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"));\n gesture.$imageEl.transition(300).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\n },\n out: function out() {\n var swiper = this;\n\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children((\".\" + (swiper.params.slideActiveClass)));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass((\"\" + (params.zoomedSlideClass)));\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled) { return; }\n zoom.enabled = true;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n var slideSelector = \".\" + (swiper.params.slideClass);\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) { return; }\n\n swiper.zoom.enabled = false;\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n var slideSelector = \".\" + (swiper.params.slideClass);\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture);\n },\n };\n\n var Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create: function create() {\n var swiper = this;\n var zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom: zoom,\n });\n\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function touchStart(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) { return; }\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(e) {\n var swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n };\n\n var Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if ( loadInDuplicate === void 0 ) loadInDuplicate = true;\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') { return; }\n if (swiper.slides.length === 0) { return; }\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n var $slideEl = isVirtual\n ? swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\"))\n : swiper.slides.eq(index);\n\n var $images = $slideEl.find((\".\" + (params.elementClass) + \":not(.\" + (params.loadedClass) + \"):not(.\" + (params.loadingClass) + \")\"));\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) { return; }\n\n $images.each(function (imageIndex, imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; }\n if (background) {\n $imageEl.css('background-image', (\"url(\\\"\" + background + \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceIndex, sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find((\".\" + (params.preloaderClass))).remove();\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + (swiper.params.slideDuplicateClass) + \")\"));\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children((\".\" + (swiper.params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\"));\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl;\n var swiperParams = swiper.params;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n\n var slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children((\".\" + (swiperParams.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) { return true; }\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; }\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children((\".\" + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) { swiper.lazy.loadInSlide(i); }\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {\n if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); }\n }\n // Prev Slides\n for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\n if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); }\n }\n } else {\n var nextSlide = $wrapperEl.children((\".\" + (swiperParams.slideNextClass)));\n if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); }\n\n var prevSlide = $wrapperEl.children((\".\" + (swiperParams.slidePrevClass)));\n if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); }\n }\n }\n },\n };\n\n var Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll() {\n var swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart() {\n var swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n };\n\n /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n var Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = (function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) { return 0; }\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(setTranslate$1, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(function () {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) { return; }\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n };\n var Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update: function update() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(translate, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.controller.control) { return; }\n swiper.controller.setTransition(duration, byController);\n },\n },\n };\n\n var a11y = {\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) { return; }\n var $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is((\".\" + (swiper.params.pagination.bulletClass)))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) { return; }\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) { return; }\n var ref = swiper.navigation;\n var $nextEl = ref.$nextEl;\n var $prevEl = ref.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init: function init() {\n var swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n var params = swiper.params.a11y;\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); }\n\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\n }\n },\n };\n var A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $((\"\")),\n },\n });\n Object.keys(a11y).forEach(function (methodName) {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.updatePagination();\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) { return; }\n swiper.a11y.destroy();\n },\n },\n };\n\n var History = {\n init: function init() {\n var swiper = this;\n if (!swiper.params.history) { return; }\n if (!win.history || !win.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) { return; }\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n win.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.history.replaceState) {\n win.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues() {\n var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return { key: key, value: value };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) { return; }\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n if (!win.location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n var currentState = win.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n win.history.replaceState({ value: value }, null, value);\n } else {\n win.history.pushState({ value: value }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n };\n\n var History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n };\n\n var HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n swiper.emit('hashChange');\n var newHash = doc.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-hash=\\\"\" + newHash + \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') { return; }\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; }\n if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\n win.history.replaceState(null, null, ((\"#\" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || ''));\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n doc.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; }\n swiper.hashNavigation.initialized = true;\n var hash = doc.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(win).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(win).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n };\n var HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n };\n\n /* eslint no-underscore-dangle: \"off\" */\n\n var Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) { swiper.autoplay.run(); }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') { return false; }\n if (swiper.autoplay.running) { return false; }\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) { return false; }\n if (typeof swiper.autoplay.timeout === 'undefined') { return false; }\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) { return; }\n if (swiper.autoplay.paused) { return; }\n if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); }\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n };\n\n var Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange: function onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) { return; }\n if (e.target !== this) { return; }\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove() {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd() {\n var swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n };\n\n var Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) { tx -= swiper.translate; }\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"fade\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'fade') { return; }\n swiper.fadeEffect.setTransition(duration);\n },\n },\n };\n\n var Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el;\n var $wrapperEl = swiper.$wrapperEl;\n var slides = swiper.slides;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var rtl = swiper.rtlTranslate;\n var swiperSize = swiper.size;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: (swiperWidth + \"px\") });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); }\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"
\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"
\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-moz-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n '-ms-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n 'transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform((\"translate3d(0px, \" + ((swiperWidth / 2) + params.shadowOffset) + \"px, \" + (-swiperWidth / 2) + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + (params.shadowScale) + \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n var multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform((\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + ((swiperHeight / 2) + offset) + \"px, \" + (-swiperHeight / 2 / scale2) + \"px) rotateX(-90deg)\"));\n }\n }\n var zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform((\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\"));\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el;\n var slides = swiper.slides;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n };\n\n var EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"cube\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'cube') { return; }\n swiper.cubeEffect.setTransition(duration);\n },\n },\n };\n\n var Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n var rtl = swiper.rtlTranslate;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $((\"
\"));\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $((\"
\"));\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); }\n if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); }\n }\n $slideEl\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides;\n var activeIndex = swiper.activeIndex;\n var $wrapperEl = swiper.$wrapperEl;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) { return; }\n if (!swiper || swiper.destroyed) { return; }\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n };\n\n var EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"flip\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'flip') { return; }\n swiper.flipEffect.setTransition(duration);\n },\n },\n };\n\n var Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width;\n var swiperHeight = swiper.height;\n var slides = swiper.slides;\n var $wrapperEl = swiper.$wrapperEl;\n var slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth;\n // Each slide offset from center\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n var translateZ = -translate * Math.abs(offsetMultiplier);\n\n var stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n var translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n var translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) { translateX = 0; }\n if (Math.abs(translateY) < 0.001) { translateY = 0; }\n if (Math.abs(translateZ) < 0.001) { translateZ = 0; }\n if (Math.abs(rotateY) < 0.001) { rotateY = 0; }\n if (Math.abs(rotateX) < 0.001) { rotateX = 0; }\n if (Math.abs(scale) < 0.001) { scale = 0; }\n\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $((\"
\"));\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $((\"
\"));\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; }\n if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; }\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n var ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = center + \"px 50%\";\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n };\n\n var EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"coverflow\"));\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') { return; }\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n };\n\n var Thumbs = {\n init: function init() {\n var swiper = this;\n var ref = swiper.params;\n var thumbsParams = ref.thumbs;\n var SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) { return; }\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) { return; }\n var slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n var prevIndex = swiper.slides.eq(currentIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') { slideToIndex = nextIndex; }\n else if (typeof nextIndex === 'undefined') { slideToIndex = prevIndex; }\n else if (nextIndex - currentIndex < currentIndex - prevIndex) { slideToIndex = nextIndex; }\n else { slideToIndex = prevIndex; }\n }\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n var prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0)\n .index();\n var nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') { newThumbsIndex = nextThumbsIndex; }\n else if (typeof nextThumbsIndex === 'undefined') { newThumbsIndex = prevThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = currentThumbsIndex; }\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = nextThumbsIndex; }\n else { newThumbsIndex = prevThumbsIndex; }\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass);\n }\n }\n },\n };\n var Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n var ref = swiper.params;\n var thumbs = ref.thumbs;\n if (!thumbs || !thumbs.swiper) { return; }\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n update: function update() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.thumbs.swiper) { return; }\n swiper.thumbs.update();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) { return; }\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n };\n\n // Swiper Class\n\n var components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n ];\n\n if (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n }\n\n Swiper.use(components);\n\n return Swiper;\n\n})));\n//# sourceMappingURL=swiper.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","function y(DOM) {\r\n return Array.prototype.slice.call(document.querySelectorAll(DOM))\r\n}\r\nclass yo {\r\n constructor(props) {\r\n this.props = props;\r\n }\r\n}\r\n(function () {\r\n let dataclassall = Array.prototype.slice.call(\r\n document.querySelectorAll(\"*[data-for]\")\r\n );\r\n})();\r\n(function () {\r\n let dataclassall = Array.prototype.slice.call(\r\n document.querySelectorAll(\"*[data-class]\")\r\n );\r\n let dataClass = {};\r\n // dataClass.__proto__.son = function (str) {\r\n // if (str === undefined || str === \"\") {\r\n // throw new Error(`Parameter requires a string`);\r\n // }\r\n // return Array.prototype.slice.call(this.querySelectorAll(str));\r\n // };\r\n dataclassall.forEach((item) => {\r\n if (dataClass[item.getAttribute(\"data-class\")]) {\r\n throw new Error(\r\n `${item.getAttribute(\"data-class\")} is a duplicate data-class `\r\n );\r\n }\r\n dataClass[item.getAttribute(\"data-class\")] = item;\r\n });\r\n\r\n window.k = dataClass;\r\n // console.log(yo.prototype === aaa.__proto__)\r\n // console.log(yo.constructor === Function)\r\n // console.log(aaa.constructor === yo)\r\n // console.log(Object.prototype)\r\n // console.log(aaa.__proto__.__proto__)\r\n // console.log(yo.prototype)\r\n // console.log(yo.__proto__ === Function.prototype)\r\n})();\r\nexport default {\r\n y,\r\n yo,\r\n};\r\n","import young from './young'\r\nconst {y} = young\r\nif(y('.index')[0]){\r\n y('.content>div .list li').forEach((item,index)=>{\r\n item.onmouseenter = function(){\r\n let other = y('.content>div .list li').filter(item=>item !== this)\r\n let other2 = y('.content>div .item li').filter((item,inde)=>inde !== index)\r\n other2.forEach(item=>item.classList.remove('on'))\r\n other.forEach(item=>item.classList.remove('on'))\r\n this.classList.add('on')\r\n y('.content>div .item li')[index].classList.add('on')\r\n }\r\n })\r\n let voiceActive = 0\r\n let voice = setInterval(()=>{\r\n y('.voice ul li').forEach(item=>{\r\n item.classList.remove('on')\r\n })\r\n y('.voice ul li')[voiceActive].classList.add('on')\r\n voiceActive++\r\n if(voiceActive>2){\r\n voiceActive = 0\r\n }\r\n },3000)\r\n let charitable = new Swiper('.charitable .list .swiper-container',{\r\n slidesPerView : 4,\r\n spaceBetween:53,\r\n autoplay:true\r\n })\r\n y('.charitable .control button:nth-of-type(1)')[0].onclick = function(){\r\n charitable.slidePrev()\r\n }\r\n y('.charitable .control button:nth-of-type(2)')[0].onclick = function(){\r\n charitable.slideNext()\r\n }\r\n let news = new Swiper('.news .swiper-container',{\r\n noSwiping : true,\r\n })\r\n y('.news .title div a').forEach((item,index)=>{\r\n item.onmouseenter = function(){\r\n y('.news .title div a').forEach(item=>{\r\n item.classList.remove('on')\r\n news.slideTo(index)\r\n })\r\n this.classList.add('on')\r\n }\r\n })\r\n \r\n}\r\n","import Swiper from 'swiper/js/swiper'\r\nimport young from './young'\r\nconst {y} = young\r\nif(k.enter){\r\n // Array.prototype.slice.call(k.businessList.querySelectorAll('li')).forEach(item=>{\r\n // item.onmouseenter = function(){\r\n // k.businessList.querySelectorAll('li').forEach(item=>{\r\n // item.classList.remove('on')\r\n // })\r\n // this.classList.add('on')\r\n // }\r\n // }) \r\n let voiceActive = 0\r\n let voice = setInterval(()=>{\r\n y('.voice2 li').forEach(item=>{\r\n item.classList.remove('on')\r\n })\r\n y('.voice2 li')[voiceActive].classList.add('on')\r\n voiceActive++\r\n if(voiceActive>5){\r\n voiceActive = 0\r\n }\r\n },3000)\r\n}\r\nif(k.area){\r\n window.onload = ()=>{\r\n k.stockRight.style.width = document.body.offsetWidth-k.area.querySelectorAll('.finance')[0].offsetLeft+'px'\r\n k.stockRight.style.paddingLeft = k.area.querySelectorAll('.finance')[0].offsetLeft+'px'\r\n }\r\n let stockRight = new Swiper('.stockRight .swiper-container',{\r\n slidesPerView : 3,\r\n spaceBetween :11,\r\n autoplay:true,\r\n observer:true,\r\n observeParents:true,\r\n })\r\n Array.prototype.slice.call(k.stockRight.querySelectorAll('.swiper-container ul li')).forEach(item=>{\r\n item.style.width='310px'\r\n })\r\n}\r\nif(k.recruit){\r\n const { needPerson } = k\r\n Array.prototype.slice.call(needPerson.querySelectorAll('ul>li .p1')).forEach(item=>{\r\n item.onclick = function(){\r\n let par = this.parentNode\r\n let filterLi = Array.prototype.slice.call(needPerson.querySelectorAll('ul>li')).filter(item=>{\r\n return item !== par\r\n })\r\n filterLi.forEach(item=>{\r\n item.classList.remove('on')\r\n item.style = ''\r\n item.querySelectorAll('.p1 span')[0].innerText = '展开'\r\n })\r\n if(par.classList.contains('on')){\r\n par.classList.remove('on')\r\n par.style = ''\r\n par.querySelectorAll('.p1 span')[0].innerText = '展开'\r\n }else{\r\n par.classList.add('on')\r\n par.style.height = 69+par.querySelectorAll('.info')[0].offsetHeight+'px'\r\n par.querySelectorAll('.p1 span')[0].innerText = '收起'\r\n }\r\n }\r\n })\r\n}\r\nif($('.partyJob')[0]){\r\n let partyJobSwiper = new Swiper('.partyJob .one .swiper-container',{\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n },\r\n autoplay:true,\r\n observer:true,\r\n observeParents:true,\r\n })\r\n}\r\nif(!y('.index')[0]){\r\n if(y('.news')[0]){\r\n // let liList = Array.prototype.slice.call(y('.paging div')[0].children)\r\n // function myFindIndex(arr){\r\n // for(let i = 0;i {\r\n y(\".search\")[0].classList.add(\"searchIn\");\r\n};\r\ny(\".search .close\")[0].onclick = () => {\r\n y(\".search\")[0].classList.remove(\"searchIn\");\r\n};\r\n// 底部友情链接\r\nlet linksUl = y(\".footer .title .links ul\")[0].clientHeight;\r\ny(\".footer .title .links\")[0].onmouseenter = function () {\r\n this.classList.add(\"links2\");\r\n setTimeout(() => {\r\n this.querySelector(\"ul\").style.height = `${linksUl}px`;\r\n this.querySelector(\"ul\").style.top = `-${linksUl}px`;\r\n this.querySelector(\"ul\").style.visibility = \"visible\";\r\n }, 0);\r\n};\r\ny(\".footer .title .links\")[0].onmouseleave = function () {\r\n this.querySelector(\"ul\").style.height = \"0\";\r\n this.querySelector(\"ul\").style.visibility = \"hidden\";\r\n this.querySelector(\"ul\").style.top = `0`;\r\n};\r\n// 返回顶部按钮的出现与隐藏\r\nwindow.addEventListener(\"scroll\", function () {\r\n if (window.pageYOffset >= 500) {\r\n y(\".backTop\")[0].style.opacity = 1;\r\n y(\".backTop\")[0].style.visibility = \"visible\";\r\n } else {\r\n y(\".backTop\")[0].style.opacity = \"\";\r\n y(\".backTop\")[0].style.visibility = \"\";\r\n }\r\n});\r\n// 置顶\r\nlet zhidingTop;\r\nlet zhidingHeight;\r\nif (y(\".zhiding\")[0]) {\r\n window.addEventListener(\"load\", function () {\r\n zhidingTop = y(\".zhiding\")[0].offsetTop;\r\n zhidingHeight = y(\".zhiding\")[0].clientHeight;\r\n });\r\n window.addEventListener(\"scroll\", function () {\r\n if (window.pageYOffset >= zhidingTop - 30) {\r\n y(\".zhiding\")[0].style.position = \"fixed\";\r\n y(\".zhiding\")[0].style.top = \"0\";\r\n y(\".zhiding\")[0].style.left = \"50%\";\r\n y(\".zhiding\")[0].style.transform = \"translateX(-50%)\";\r\n y(\".zhiding\")[0].style.zIndex = \"30\";\r\n y(\".zhiding\")[0].nextElementSibling.style.marginTop =\r\n zhidingHeight + 135 + \"px\";\r\n } else {\r\n y(\".zhiding\")[0].style.position = \"\";\r\n y(\".zhiding\")[0].style.top = \"\";\r\n y(\".zhiding\")[0].style.left = \"\";\r\n y(\".zhiding\")[0].style.transform = \"\";\r\n y(\".zhiding\")[0].style.zIndex = \"\";\r\n y(\".zhiding\")[0].nextElementSibling.style.marginTop = \"\";\r\n }\r\n });\r\n}\r\n// 锚点定位校准\r\nfunction scrollTo(NumX, NumY) {\r\n window.addEventListener(\"load\", function () {\r\n setTimeout(function () {\r\n window.scroll(0, 0);\r\n window.scroll(NumX, NumY);\r\n }, 0);\r\n });\r\n}\r\nlet firstHref = window.location.hash || \"\";\r\nwindow.addEventListener('load',function(){\r\n setTimeout(() => {\r\n firstHref !== \"\" ? window.scroll(0, y('.'+ firstHref.slice(1))[0].offsetTop - 210) : \"\";\r\n // y('.classification .on')[0].classList.remove('on')\r\n // y('.classification a[href=='+ firstHref +']')\r\n // console.log(y('.classification a[href='+ firstHref +']'))\r\n }, 10);\r\n})\r\ny(\".classification li a\").forEach((item, index) => {\r\n item.addEventListener(\"click\", function () {\r\n y(\".classification li a\").forEach((item) => {\r\n item.parentNode.classList.remove(\"on\");\r\n });\r\n console.log(111)\r\n this.parentNode.classList.add(\"on\");\r\n setTimeout(function () {\r\n if (window.location.hash) {\r\n window.scroll(\r\n 0,\r\n y(\".\" + window.location.hash.slice(1))[0].offsetTop - 196\r\n );\r\n }\r\n }, 10);\r\n y(\".zhiding .title .p2 a:nth-child(3)\")[0]\r\n ? (y(\".zhiding .title .p2 a:nth-child(3)\")[0].innerText = this.innerText)\r\n : \"\";\r\n });\r\n});\r\n// 返回顶部\r\nwindow.addEventListener(\"load\", function () {\r\n var obtn = y(\".backTop\")[0];\r\n var clientHeight = document.documentElement.clientHeight;\r\n var timer = null;\r\n var isTop = true;\r\n window.addEventListener(\"scroll\", function () {\r\n var osTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n if (osTop >= clientHeight) {\r\n obtn.style.display = \"block\";\r\n } else {\r\n obtn.style.display = \"none\";\r\n }\r\n\r\n if (!isTop) {\r\n clearInterval(timer);\r\n }\r\n isTop = false;\r\n });\r\n //给其添加点击事件\r\n obtn.onclick = function () {\r\n //写定时器,动画效果的函数setInterval(),放一个匿名函数function()\r\n timer = setInterval(function () {\r\n var osTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n var ispeed = Math.floor(-osTop / 5);\r\n\r\n document.documentElement.scrollTop = document.body.scrollTop =\r\n osTop + ispeed;\r\n\r\n isTop = true;\r\n if (osTop == 0) {\r\n clearInterval(timer);\r\n }\r\n }, 10);\r\n };\r\n});\r\nlet loopMapTimer;\r\nlet flag11 = 0;\r\n// 地图自然跑动事件\r\nif (y(\".index\")[0]) {\r\n loopMaps();\r\n function loopMaps() {\r\n clearInterval(loopMapTimer);\r\n loopMapTimer = setInterval(() => {\r\n if (flag11 >= y(\".mapsItem\").length) {\r\n flag11 = 0;\r\n }\r\n y(\".mapsItem\").forEach((item) => {\r\n item.style.transform = \"\";\r\n });\r\n y(\".maps .w .p2 span\").forEach((item) => {\r\n item.style.textDecoration = \"\";\r\n });\r\n y(\".maps .w .p2 span\")[flag11].style.textDecoration = \"underline\";\r\n y(\".mapsItem\")[flag11].style.transform = \"scale(1.5)\";\r\n flag11++;\r\n }, 3000);\r\n }\r\n // 地图鼠标移入事件\r\n y(\".maps .w .p2 span\").forEach((item, index) => {\r\n item.addEventListener(\"mouseenter\", function () {\r\n clearInterval(loopMapTimer);\r\n // 清除所有下划线\r\n y(\".maps .w .p2 span\").forEach((item) => {\r\n item.style.textDecoration = \"\";\r\n });\r\n // 为目标添加下划线\r\n this.style.textDecoration = \"underline\";\r\n // 清除所有放大\r\n y(\".mapsItem\").forEach((item) => {\r\n item.style.transform = \"\";\r\n });\r\n // 放大目标\r\n y(\".mapsItem\")[index].style.transform = \"scale(1.5)\";\r\n flag11 = index;\r\n });\r\n item.addEventListener(\"mouseleave\", function () {\r\n loopMaps();\r\n });\r\n });\r\n}\r\n"],"names":["module","exports","isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","doc","document","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","win","window","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","Dom7","arr","i","$","selector","context","els","tempParent","html","trim","indexOf","toCreate","innerHTML","push","match","split","nodeType","unique","uniqueArray","fn","prototype","Class","Methods","addClass","className","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments$1","arguments","getAttribute","attrName","removeAttr","removeAttribute","data","el","dom7ElementDataStorage","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","assign","args","len","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","undefined","events","event$1","dom7LiveListeners","proxyListener","event","dom7Listeners","off","handlers","handler","dom7proxy","splice","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","call","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","matchedItems","removeChild","toAdd","methodName","Utils","deleteProps","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","parseUrlQuery","url","params","param","query","urlToParse","paramsPart","decodeURIComponent","o","len$1","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","defineProperty","get","gestures","SwiperClass","self","eventsListeners","eventName","staticAccessors","components","configurable","priority","method","once","onceHandler","f7proxy","eventHandler","emit","Array","isArray","slice","useModulesParams","instanceParams","instance","modules","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","set","use","installModule","name","proto","static","install","m","concat","defineProperties","update","updateSize","width","height","swiper","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","boxSizing$1","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","i$1","slidesGridItem","i$2","slidesGridItem$1","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesSize$1","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","loop","slideDuplicateClass","slideDuplicateActiveClass","nextSlide","slideNextClass","prevSlide","slidePrevClass","slideDuplicateNextClass","slideDuplicatePrevClass","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","destroyed","transition$1","transitionStart","direction","dir","slideTo","initialSlide","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopFix","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","ie","edge","firefox","windows","electron","macos","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","ios","androidChrome","desktop","cordova","phonegap","toLowerCase","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","touchAngle","diffX","diffY","sqrt","pow","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","increment$1","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","defaults","init","updateOnWindowResize","uniqueNavElements","preloadImages","updateOnImagesReady","noSwipingClass","passiveListeners","containerModifierClass","slideClass","slideBlankClass","wrapperClass","prototypes","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","ref","innerWidth","wasLocked","lastSlidePosition","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","shadowRoot","options","touchEventsTouch","touchEventsDesktop","clickTimeout","__proto__","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","slideEl","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","support","Browser","isEdge","isSafari","isWebView","test","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","ref$1","addSlidesBefore","addSlidesAfter","ref$2","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","element","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarged","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent$1","sign","ignoreWheelEvents","sensitivity","timeout","recentWheelEvents$1","shift","prevEvent$1","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","getTime","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bullet","$bullet","bulletIndex","bulletActiveClass","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragEl","draggable","Parallax","setTransform","p","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","activeListenerWithCapture","slideSelector","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","$pictureEl","sourceIndex","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Controller","LinearSpline","guess","i1","i3","interpolate","array","binarySearch","getInterpolateFunction","c","controller","spline","setTranslate$1","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","a11y","makeElFocusable","makeElNotFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","part","setHistory","slugify","includes","currentState","state","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowAngle","sin","cos","scale1","shadowScale","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","perspectiveOrigin","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","hideOnClick","toEdge","fromEdge","isHidden","bulletElement","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","dragClass","containerClass","zoomedSlideClass","touchStart","touchEnd","doubleTap","slideChange","loadOnTransitionStart","preloaderClass","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","onVisibilityChange","visibilityState","beforeTransitionStart","sliderFirstMove","beforeDestroy","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","definition","hasOwnProperty","dataclassall","dataClass","item","Error","DOM","young","onmouseenter","other","inde","voiceActive","charitable","setInterval","onclick","news","enter","area","stockRight","recruit","needPerson","par","innerText","zhidingTop","zhidingHeight","linksUl","visibility","onmouseleave","pageYOffset","loopMapTimer","firstHref","console","log","obtn","documentElement","timer","isTop","osTop","clearInterval","ispeed","flag11","loopMaps","textDecoration"],"sourceRoot":""}