{"version":3,"file":"js/chunk-vendors-8cbd2506.de63da05.js","mappings":"oKAOA,IAUIA,EAVAC,EAAc,WAAc,OAAOC,QACR,cAA7BC,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACvB,0DAEH,EAgBI,SAASC,EAAUC,EAAOC,QAChB,IAAVA,IAAmBA,EAAQ,CAAC,GAEjC,IAAIC,EAAsBD,EAAMC,yBAAkD,IAAxBA,IAAiCA,EAAsB,CAAC,UAC3GD,EAAMC,oBAEb,IAAIC,EAAO,SAAUC,GACnB,IAAIC,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GAE/CL,GAASA,EAAMG,IACjBH,EAAMG,GAAMK,MAAMR,EAAOI,EAE7B,EAEI,kBAAmBK,WACrBlB,EAAemB,MAAK,WACdlB,KAEFmB,EAAwBZ,EAAOG,EAAMD,GACrCQ,UAAUG,cAAcC,MAAMH,MAAK,SAAUI,GAC3CZ,EAAK,QAASY,EAChB,IAAGC,OAAM,SAAUC,GAAS,OAAOC,EAAYf,EAAMc,EAAQ,MAG7DE,EAAgBnB,EAAOG,EAAMD,GAC7BQ,UAAUG,cAAcC,MAAMH,MAAK,SAAUI,GAC3CZ,EAAK,QAASY,EAChB,IAAGC,OAAM,SAAUC,GAAS,OAAOC,EAAYf,EAAMc,EAAQ,IAEjE,GAEJ,CAEA,SAASC,EAAaf,EAAMc,GACrBP,UAAUU,QACbjB,EAAK,WAEPA,EAAK,QAASc,EAChB,CAEA,SAASE,EAAiBnB,EAAOG,EAAMD,GACrCQ,UAAUG,cACPd,SAASC,EAAOE,GAChBS,MAAK,SAAUI,GACdZ,EAAK,aAAcY,GACfA,EAAaM,QACflB,EAAK,UAAWY,GAGlBA,EAAaO,cAAgB,WAC3BnB,EAAK,cAAeY,GACpB,IAAIQ,EAAmBR,EAAaS,WACpCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBG,QACfhB,UAAUG,cAAcc,WAK1BxB,EAAK,UAAWY,GAKhBZ,EAAK,SAAUY,GAGrB,CACF,CACF,IACCC,OAAM,SAAUC,GAAS,OAAOC,EAAYf,EAAMc,EAAQ,GAC/D,CAEA,SAASL,EAAyBZ,EAAOG,EAAMD,GAE7C0B,MAAM5B,GACHW,MAAK,SAAUkB,GAEU,MAApBA,EAASC,QAEX3B,EAAK,QAAS,IAAI4B,MAAO,+BAAiC/B,IAC1DgC,MACyE,IAAhEH,EAASI,QAAQC,IAAI,gBAAgBC,QAAQ,eACtDhC,EAAK,QAAS,IAAI4B,MAChB,YAAc/B,EAAd,kDACmB6B,EAASI,QAAQC,IAAI,kBAC1CF,KAGAb,EAAgBnB,EAAOG,EAAMD,EAEjC,IACCc,OAAM,SAAUC,GAAS,OAAOC,EAAYf,EAAMc,EAAQ,GAC/D,CAEO,SAASe,IACV,kBAAmBtB,WACrBA,UAAUG,cAAcC,MAAMH,MAAK,SAAUI,GAC3CA,EAAaiB,YACf,IAAGhB,OAAM,SAAUC,GAAS,OAAOC,EAAYf,KAAMc,EAAQ,GAEjE,CAlHsB,qBAAXtB,SAMPH,EADqB,qBAAZ4C,QACQ,IAAIA,SAAQ,SAAUC,GAAW,OAAO1C,OAAO2C,iBAAiB,OAAQD,EAAU,IAElF,CAAE1B,KAAM,SAAU4B,GAAM,OAAO5C,OAAO2C,iBAAiB,OAAQC,EAAK,G;;;;;;AChBzF,IAAIC,EAAmB,CACrB,iBACA,WACA,kBACA,eACA,gBACA,WACA,kBACA,cACA,QACA,OACA,cACA,cACA,uBACA,wBACA,wBACA,2BACA,4BAGEC,EAAqB,CACvB,YACA,YACA,WACA,gBACA,SACA,YACA,WACA,gBACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,gBAMF,SAASC,EAAMC,EAAKC,GACK,qBAAZC,UACTA,QAAQH,KAAK,cAAgBC,GAEzBC,GACFC,QAAQH,KAAKE,EAAIE,OAGvB,CAEA,SAAS7B,EAAO0B,EAAKC,GACI,qBAAZC,UACTA,QAAQ5B,MAAM,cAAgB0B,GAE1BC,GACFC,QAAQ5B,MAAM2B,EAAIE,OAGxB,CAEA,IAAIC,EAAUC,MAAMD,QAEpB,SAASE,EAAUC,GACjB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAEA,SAASC,EAAWC,GAClB,MAAsB,mBAARA,CAChB,CAEA,SAASC,EAAUD,GACjB,MAAsB,kBAARA,CAChB,CAEA,IAAIE,EAAWC,OAAOC,UAAUF,SAC5BG,EAAgB,kBACpB,SAASC,EAAeR,GACtB,OAAOI,EAASK,KAAKT,KAASO,CAChC,CAEA,SAASG,EAAQR,GACf,OAAe,OAARA,QAAwBS,IAART,CACzB,CAEA,SAASU,EAAYV,GACnB,MAAsB,oBAARA,CAChB,CAEA,SAASW,IACP,IAAI1D,EAAO,GAAIC,EAAMC,UAAUC,OAC/B,MAAQF,IAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAI0D,EAAS,KACTC,EAAS,KAiBb,OAhBoB,IAAhB5D,EAAKG,OACHyC,EAAS5C,EAAK,KAAO0C,EAAQ1C,EAAK,IACpC4D,EAAS5D,EAAK,GACc,kBAAZA,EAAK,KACrB2D,EAAS3D,EAAK,IAES,IAAhBA,EAAKG,SACS,kBAAZH,EAAK,KACd2D,EAAS3D,EAAK,KAGZ4C,EAAS5C,EAAK,KAAO0C,EAAQ1C,EAAK,OACpC4D,EAAS5D,EAAK,KAIX,CAAE2D,OAAQA,EAAQC,OAAQA,EACnC,CAEA,SAASC,EAAYhB,GACnB,OAAOiB,KAAKC,MAAMD,KAAKE,UAAUnB,GACnC,CAEA,SAASoB,EAAQC,EAAKC,GACpB,GAAID,EAAIE,OAAOD,GACb,OAAOD,CAEX,CAEA,SAASG,EAAWH,GAClB,IAAII,EAAM,GAEV,OADAJ,EAAIK,SAAQ,SAAUC,GAAK,OAAOF,EAAIG,KAAKD,EAAI,IACxCF,CACT,CAEA,SAASI,EAAUR,EAAKC,GACtB,SAAUD,EAAIpC,QAAQqC,EACxB,CAEA,IAAIQ,EAAiBzB,OAAOC,UAAUwB,eACtC,SAASC,EAAQ/B,EAAKgC,GACpB,OAAOF,EAAerB,KAAKT,EAAKgC,EAClC,CAEA,SAASC,EAAOC,GAId,IAHA,IAAIC,EAAc9E,UAEd+E,EAAS/B,OAAO6B,GACXG,EAAI,EAAGA,EAAIhF,UAAUC,OAAQ+E,IAAK,CACzC,IAAIC,EAASH,EAAYE,GACzB,QAAe1B,IAAX2B,GAAmC,OAAXA,EAAiB,CAC3C,IAAIN,OAAM,EACV,IAAKA,KAAOM,EACNP,EAAOO,EAAQN,KACbjC,EAASuC,EAAON,IAClBI,EAAOJ,GAAOC,EAAMG,EAAOJ,GAAMM,EAAON,IAExCI,EAAOJ,GAAOM,EAAON,GAI7B,CACF,CACA,OAAOI,CACT,CAEA,SAASG,EAAYZ,EAAGa,GACtB,GAAIb,IAAMa,EAAK,OAAO,EACtB,IAAIC,EAAY1C,EAAS4B,GACrBe,EAAY3C,EAASyC,GACzB,IAAIC,IAAaC,EAsBV,OAAKD,IAAcC,GACjBC,OAAOhB,KAAOgB,OAAOH,GAtB5B,IACE,IAAII,EAAW/C,EAAQ8B,GACnBkB,EAAWhD,EAAQ2C,GACvB,GAAII,GAAYC,EACd,OAAOlB,EAAErE,SAAWkF,EAAElF,QAAUqE,EAAEmB,OAAM,SAAUC,EAAGV,GACnD,OAAOE,EAAWQ,EAAGP,EAAEH,GACzB,IACK,GAAKO,GAAaC,EAQvB,OAAO,EAPP,IAAIG,EAAQ3C,OAAO4C,KAAKtB,GACpBuB,EAAQ7C,OAAO4C,KAAKT,GACxB,OAAOQ,EAAM1F,SAAW4F,EAAM5F,QAAU0F,EAAMF,OAAM,SAAUd,GAC5D,OAAOO,EAAWZ,EAAEK,GAAMQ,EAAER,GAC9B,GAKJ,CAAE,MAAOe,GAEP,OAAO,CACT,CAMJ,CAMA,SAASI,EAAWC,GAClB,OAAOA,EACJC,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACnB,CAWA,SAASC,EAAavC,GAQpB,OAPa,MAAVA,GACDV,OAAO4C,KAAKlC,GAAQW,SAAQ,SAAUM,GACV,iBAAhBjB,EAAOiB,KACfjB,EAAOiB,GAAOmB,EAAWpC,EAAOiB,IAEpC,IAEKjB,CACT,CAIA,SAASwC,EAAQC,GACVA,EAAIlD,UAAUwB,eAAe,UAEhCzB,OAAOoD,eAAeD,EAAIlD,UAAW,QAAS,CAC5CtB,IAAK,WAAkB,OAAO0E,KAAKC,KAAM,IAI7CH,EAAIlD,UAAUsD,GAAK,SAAU5B,GAC3B,IAAI6B,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GAErD,IAAI0G,EAAOJ,KAAKK,MAChB,OAAOD,EAAKE,GAAGzG,MAAMuG,EAAM,CAAE9B,EAAK8B,EAAKhD,OAAQgD,EAAKG,eAAgBP,MAAOQ,OAAQL,GACrF,EAEAL,EAAIlD,UAAU6D,IAAM,SAAUnC,EAAKoC,GACjC,IAAIP,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GAErD,IAAI0G,EAAOJ,KAAKK,MAChB,OAAOD,EAAKO,IAAI9G,MAAMuG,EAAM,CAAE9B,EAAK8B,EAAKhD,OAAQgD,EAAKG,eAAgBP,KAAMU,GAASF,OAAQL,GAC9F,EAEAL,EAAIlD,UAAUgE,IAAM,SAAUtC,EAAKlB,GACjC,IAAIgD,EAAOJ,KAAKK,MAChB,OAAOD,EAAKS,IAAIvC,EAAK8B,EAAKhD,OAAQgD,EAAKG,eAAgBnD,EACzD,EAEA0C,EAAIlD,UAAUkE,GAAK,SAAUC,GAC3B,IAAIC,EAEAvH,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GACnD,OAAQsH,EAAMhB,KAAKK,OAAOY,EAAEpH,MAAMmH,EAAK,CAAED,GAAQP,OAAQ/G,GAC3D,EAEAqG,EAAIlD,UAAUsE,GAAK,SAAUH,GAC3B,IAAIC,EAEAvH,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GACnD,OAAQsH,EAAMhB,KAAKK,OAAOc,EAAEtH,MAAMmH,EAAK,CAAED,GAAQP,OAAQ/G,GAC3D,CACF,CAUA,SAAS2H,EAAaC,GAGpB,SAASC,IACHtB,OAASA,KAAKuB,OAASvB,KAAKwB,SAASC,kBAAoBzB,KAAK0B,KAChE1B,KAAK0B,IAAIC,aAAa,eAAgB3B,KAAKwB,SAASC,iBAExD,CAEA,YARgB,IAAXJ,IAAoBA,GAAS,GAQ3BA,EACH,CAAEC,QAASA,GACX,CACFM,aAAc,WACZ,IAAIC,EAAU7B,KAAKwB,SAGnB,GAFAK,EAAQzB,KAAOyB,EAAQzB,OAAUyB,EAAQC,cAAgBD,EAAQE,OAAU,CAAC,EAAI,MAE5EF,EAAQzB,KACV,GAAIyB,EAAQzB,gBAAgB4B,GAAS,CAEnC,GAAKH,EAAQC,cAAgBD,EAAQE,OACnC,IACE,IAAIE,EAAiBJ,EAAQzB,MAAQyB,EAAQzB,KAAK8B,SAAWL,EAAQzB,KAAK8B,SAAW,CAAC,EAClFjC,EAAQ4B,EAAQC,cAAgBD,EAAQE,OAC5C9B,EAAMjC,SAAQ,SAAUmE,GACtBF,EAAiB1D,EAAM0D,EAAgB1E,KAAKC,MAAM2E,GACpD,IACAxF,OAAO4C,KAAK0C,GAAgBjE,SAAQ,SAAUZ,GAC5CyE,EAAQzB,KAAKgC,mBAAmBhF,EAAQ6E,EAAe7E,GACzD,GACF,CAAE,MAAOiC,GACH,CAGN,CAEFW,KAAKC,MAAQ4B,EAAQzB,KACrBJ,KAAKqC,aAAerC,KAAKC,MAAMqC,eACjC,MAAO,GAAIxF,EAAc+E,EAAQzB,MAAO,CACtC,IAAImC,EAAWvC,KAAKuB,OAASvB,KAAKuB,MAAMlB,OAASL,KAAKuB,MAAMlB,iBAAiB2B,GACzEhC,KAAKuB,MAAMlB,MACX,KAcJ,GAZIkC,IACFV,EAAQzB,KAAKoC,KAAOxC,KAAKuB,MACzBM,EAAQzB,KAAKqC,UAAYF,EAASE,UAClCZ,EAAQzB,KAAKsC,eAAiBH,EAASG,eACvCb,EAAQzB,KAAKuC,uBAAyBJ,EAASI,uBAC/Cd,EAAQzB,KAAKwC,sBAAwBL,EAASK,sBAC9Cf,EAAQzB,KAAKyC,mBAAqBN,EAASM,mBAC3ChB,EAAQzB,KAAK0C,mBAAqBP,EAASO,mBAC3CjB,EAAQzB,KAAK2C,yBAA2BR,EAASQ,0BAI9ClB,EAAQC,cAAgBD,EAAQE,OACnC,IACE,IAAIiB,EAAmBnB,EAAQzB,MAAQyB,EAAQzB,KAAK8B,SAAWL,EAAQzB,KAAK8B,SAAW,CAAC,EACpFe,EAAUpB,EAAQC,cAAgBD,EAAQE,OAC9CkB,EAAQjF,SAAQ,SAAUmE,GACxBa,EAAmBzE,EAAMyE,EAAkBzF,KAAKC,MAAM2E,GACxD,IACAN,EAAQzB,KAAK8B,SAAWc,CAC1B,CAAE,MAAO3D,GACH,CAGN,CAGF,IAAI2B,EAAMa,EAAQzB,KACd8C,EAAiBlC,EAAIkC,eACrBA,GAAkBpG,EAAcoG,KAClCrB,EAAQzB,KAAK8B,SAAW3D,EAAMsD,EAAQzB,KAAK8B,SAAUgB,IAGvDlD,KAAKC,MAAQ,IAAI+B,GAAQH,EAAQzB,MACjCJ,KAAKqC,aAAerC,KAAKC,MAAMqC,sBAELrF,IAAtB4E,EAAQzB,KAAK+C,MAAwBtB,EAAQzB,KAAK+C,QACpDnD,KAAKoD,eAAiBpD,KAAKK,MAAMgD,eAG/Bd,GACFA,EAASe,2BAA2BtD,KAAKC,MAE7C,MACM,OAIGD,KAAKuB,OAASvB,KAAKuB,MAAMlB,OAASL,KAAKuB,MAAMlB,iBAAiB2B,GAEvEhC,KAAKC,MAAQD,KAAKuB,MAAMlB,MACfwB,EAAQ0B,QAAU1B,EAAQ0B,OAAOlD,OAASwB,EAAQ0B,OAAOlD,iBAAiB2B,KAEnFhC,KAAKC,MAAQ4B,EAAQ0B,OAAOlD,MAEhC,EAEAmD,YAAa,WACX,IAAI3B,EAAU7B,KAAKwB,SACnBK,EAAQzB,KAAOyB,EAAQzB,OAAUyB,EAAQC,cAAgBD,EAAQE,OAAU,CAAC,EAAI,MAE5EF,EAAQzB,MACNyB,EAAQzB,gBAAgB4B,IAIjBlF,EAAc+E,EAAQzB,SAF/BJ,KAAKC,MAAMwD,sBAAsBzD,MACjCA,KAAK0D,cAAe,IASb1D,KAAKuB,OAASvB,KAAKuB,MAAMlB,OAASL,KAAKuB,MAAMlB,iBAAiB2B,IAG9DH,EAAQ0B,QAAU1B,EAAQ0B,OAAOlD,OAASwB,EAAQ0B,OAAOlD,iBAAiB2B,MAFnFhC,KAAKC,MAAMwD,sBAAsBzD,MACjCA,KAAK0D,cAAe,EAKxB,EAEApC,QAASA,EAETqC,cAAe,WACb,GAAK3D,KAAKC,MAAV,CAEA,IAAI2D,EAAO5D,KACXA,KAAK6D,WAAU,WACTD,EAAKF,eACPE,EAAK3D,MAAM6D,wBAAwBF,UAC5BA,EAAKF,cAGVE,EAAKvB,eACPuB,EAAKvB,eACLuB,EAAK3D,MAAM8D,mBACJH,EAAKvB,cAGVuB,EAAKR,iBACPQ,EAAKR,wBACEQ,EAAKR,eAEhB,GAnB0B,CAoB5B,EAEJ,CAIA,IAAIY,EAAyB,CAC3BC,KAAM,OACNC,YAAY,EACZC,MAAO,CACLC,IAAK,CACHC,KAAM,CAACpF,OAAQnG,QAAS6D,QACxB2H,QAAS,QAEXC,KAAM,CACJF,KAAMpF,OACNuF,UAAU,GAEZpH,OAAQ,CACNiH,KAAMpF,QAERwF,OAAQ,CACNJ,KAAM,CAACjI,MAAOO,UAGlB+H,OAAQ,SAAiBC,EAAG3D,GAC1B,IAAI4D,EAAO5D,EAAI4D,KACXrB,EAASvC,EAAIuC,OACbY,EAAQnD,EAAImD,MACZU,EAAQ7D,EAAI6D,MAEZxE,EAAQkD,EAAOlD,MACnB,GAAKA,EAAL,CAOA,IAAIkE,EAAOJ,EAAMI,KACbnH,EAAS+G,EAAM/G,OACfqH,EAASN,EAAMM,OACfpH,EAASwH,IACTC,EAAWzE,EAAM1B,EACnB4F,EACAnH,EACA2H,EAAoB1H,IAAWoH,EAC3BO,EAAgB3H,EAAOiH,QAASG,GAChCpH,GAGF+G,EAASD,EAAMC,MAAqB,IAAdD,EAAMC,MAA+B,IAAdD,EAAMC,IAAgBD,EAAMC,IAAM,OACnF,OAAOA,EAAMO,EAAEP,EAAKQ,EAAME,GAAYA,CAftC,CAgBF,GAGF,SAASC,EAAqB1H,GAC5B,IAAI4H,EACJ,IAAKA,KAAQ5H,EACX,GAAa,YAAT4H,EAAsB,OAAO,EAEnC,OAAOnM,QAAQmM,EACjB,CAEA,SAASD,EAAiBF,EAAUL,GAClC,IAAIpH,EAASoH,EAASS,EAAuBT,GAAU,CAAC,EAExD,IAAKK,EAAY,OAAOzH,EAGxByH,EAAWA,EAASK,QAAO,SAAUC,GACnC,OAAOA,EAAMhB,KAA6B,KAAtBgB,EAAMC,KAAKC,MACjC,IAEA,IAAIC,EAAaT,EAAS1F,MAAMoG,GAKhC,OAAOV,EAASW,OACdF,EAAaG,EAAmBC,EAChCtI,EAEJ,CAEA,SAAS6H,EAAwBT,GAK/B,OAAOrI,MAAMD,QAAQsI,GACjBA,EAAOgB,OAAOE,EAAkB,CAAC,GACjChJ,OAAOiJ,OAAO,CAAC,EAAGnB,EACxB,CAEA,SAASiB,EAAkBrI,EAAQ+H,GAIjC,OAHIA,EAAMR,MAAQQ,EAAMR,KAAKiB,OAAST,EAAMR,KAAKiB,MAAMC,QACrDzI,EAAO+H,EAAMR,KAAKiB,MAAMC,OAASV,GAE5B/H,CACT,CAEA,SAASsI,EAAkBtI,EAAQ+H,EAAOW,GAExC,OADA1I,EAAO0I,GAASX,EACT/H,CACT,CAEA,SAASmI,EAAwBQ,GAC/B,OAAOlN,QAAQkN,EAAMpB,MAAQoB,EAAMpB,KAAKiB,OAASG,EAAMpB,KAAKiB,MAAMC,MACpE,CAIA,IAgMIhG,EAhMAmG,EAAkB,CACpBhC,KAAM,SACNC,YAAY,EACZC,MAAO,CACLC,IAAK,CACHC,KAAM,CAACpF,OAAQnG,QAAS6D,QACxB2H,QAAS,QAEXvD,MAAO,CACLsD,KAAM6B,OACN1B,UAAU,GAEZ2B,OAAQ,CACN9B,KAAM,CAACpF,OAAQtC,SAEjBS,OAAQ,CACNiH,KAAMpF,SAGVyF,OAAQ,SAAiBC,EAAG3D,GAC1B,IAAImD,EAAQnD,EAAImD,MACZZ,EAASvC,EAAIuC,OACbqB,EAAO5D,EAAI4D,KAEXxE,EAAOmD,EAAOlD,MAElB,IAAKD,EAIH,OAAO,KAGT,IAAI9B,EAAM,KACNuD,EAAU,KAEVpF,EAAS0H,EAAMgC,QACjB7H,EAAM6F,EAAMgC,OACH9J,EAAS8H,EAAMgC,UACpBhC,EAAMgC,OAAO7H,MACfA,EAAM6F,EAAMgC,OAAO7H,KAIrBuD,EAAUlF,OAAO4C,KAAK4E,EAAMgC,QAAQV,QAAO,SAAUW,EAAKnB,GACxD,IAAI3I,EAEJ,OAAI6B,EAASvC,EAAkBqJ,GACtBtI,OAAOiJ,OAAO,CAAC,EAAGQ,GAAO9J,EAAM,CAAC,EAAGA,EAAI2I,GAAQd,EAAMgC,OAAOlB,GAAO3I,IAErE8J,CACT,GAAG,OAGL,IAAIhJ,EAAS+G,EAAM/G,QAAUgD,EAAKhD,OAC9BiJ,EAAQjG,EAAKkG,KAAKnC,EAAMpD,MAAO3D,EAAQkB,EAAKuD,GAE5C1B,EAASkG,EAAME,KAAI,SAAUC,EAAMT,GACrC,IAAIzJ,EAEAmK,EAAO7B,EAAK8B,aAAe9B,EAAK8B,YAAYF,EAAKnC,MACrD,OAAOoC,EAAOA,GAAOnK,EAAM,CAAC,EAAGA,EAAIkK,EAAKnC,MAAQmC,EAAKzF,MAAOzE,EAAIyJ,MAAQA,EAAOzJ,EAAI+J,MAAQA,EAAO/J,IAASkK,EAAKzF,KAClH,IAEIqD,EAASD,EAAMC,MAAqB,IAAdD,EAAMC,MAA+B,IAAdD,EAAMC,IAAgBD,EAAMC,IAAM,OACnF,OAAOA,EACHO,EAAEP,EAAK,CACPyB,MAAOjB,EAAKiB,MACZ,MAASjB,EAAK,SACd+B,YAAa/B,EAAK+B,aACjBxG,GACDA,CACN,GAKF,SAASyG,EAAMC,EAAIC,EAASd,GACrBe,EAAOF,EAAIb,IAEhBgB,EAAEH,EAAIC,EAASd,EACjB,CAEA,SAASiB,EAAQJ,EAAIC,EAASd,EAAOkB,GACnC,GAAKH,EAAOF,EAAIb,GAAhB,CAEA,IAAI5F,EAAO4F,EAAMmB,QAAQ9G,MACrB+G,EAAYP,EAAIb,IACjBnH,EAAWiI,EAAQ/F,MAAO+F,EAAQO,WAClCxI,EAAWgI,EAAGS,eAAgBlH,EAAKmH,iBAAiBnH,EAAKhD,UAE5D4J,EAAEH,EAAIC,EAASd,EAPkB,CAQnC,CAEA,SAASwB,EAAQX,EAAIC,EAASd,EAAOkB,GACnC,IAAIO,EAAKzB,EAAMmB,QACf,GAAKM,EAAL,CAKA,IAAIrH,EAAO4F,EAAMmB,QAAQ9G,OAAS,CAAC,EAC9ByG,EAAQY,UAAUC,UAAavH,EAAK2C,2BACvC8D,EAAGe,YAAc,IAEnBf,EAAGgB,SAAM5K,SACF4J,EAAG,OACVA,EAAGiB,aAAU7K,SACN4J,EAAG,WACVA,EAAGS,oBAAiBrK,SACb4J,EAAG,iBAXV,MAFE/K,EAAK,gDAcT,CAEA,SAASiL,EAAQF,EAAIb,GACnB,IAAIyB,EAAKzB,EAAMmB,QACf,OAAKM,IAKAA,EAAGpH,QACNvE,EAAK,qDACE,IANPA,EAAK,kDACE,EASX,CAEA,SAASsL,EAAaP,EAAIb,GACxB,IAAIyB,EAAKzB,EAAMmB,QACf,OAAON,EAAGiB,UAAYL,EAAGpH,MAAMjD,MACjC,CAEA,SAAS4J,EAAGH,EAAIC,EAASd,GACvB,IAAI+B,EAAOC,EAEPjH,EAAQ+F,EAAQ/F,MAEhBC,EAAMiH,EAAWlH,GACjBwD,EAAOvD,EAAIuD,KACXnH,EAAS4D,EAAI5D,OACb3D,EAAOuH,EAAIvH,KACXiH,EAASM,EAAIN,OACjB,GAAK6D,GAASnH,GAAW3D,EAKzB,GAAK8K,EAAL,CAKA,IAAIkD,EAAKzB,EAAMmB,QAEbN,EAAGgB,IAAMhB,EAAGe,YADA,MAAVlH,GACyBqH,EAAQN,EAAGpH,OAAO6H,GAAGrO,MAAMkO,EAAO,CAAExD,EAAM7D,GAASF,OAAQ2H,EAAW/K,EAAQ3D,MAE9EuO,EAAQP,EAAGpH,OAAO2G,EAAEnN,MAAMmO,EAAO,CAAEzD,GAAO/D,OAAQ2H,EAAW/K,EAAQ3D,KAElGoN,EAAGiB,QAAUL,EAAGpH,MAAMjD,OACtByJ,EAAGS,eAAiBG,EAAGpH,MAAMkH,iBAAiBE,EAAGpH,MAAMjD,OATvD,MAFEtB,EAAK,4CALLA,EAAK,2BAiBT,CAEA,SAASmM,EAAYlH,GACnB,IAAIwD,EACAnH,EACA3D,EACAiH,EAWJ,OATIjE,EAASsE,GACXwD,EAAOxD,EACEjE,EAAciE,KACvBwD,EAAOxD,EAAMwD,KACbnH,EAAS2D,EAAM3D,OACf3D,EAAOsH,EAAMtH,KACbiH,EAASK,EAAML,QAGV,CAAE6D,KAAMA,EAAMnH,OAAQA,EAAQ3D,KAAMA,EAAMiH,OAAQA,EAC3D,CAEA,SAASyH,EAAY/K,EAAQ3D,GAC3B,IAAI4D,EAAS,GAOb,OALAD,GAAUC,EAAOa,KAAKd,GAClB3D,IAAS2C,MAAMD,QAAQ1C,IAASqD,EAAcrD,KAChD4D,EAAOa,KAAKzE,GAGP4D,CACT,CAIA,SAAS+K,EAASC,EAAMxG,QACL,IAAZA,IAAqBA,EAAU,CAAER,QAAQ,IAO9C+G,EAAQE,WAAY,EAEpBxI,EAAMuI,EAESvI,EAAIyI,SAAWrC,OAAOpG,EAAIyI,QAAQC,MAAM,KAAK,IAO5D3I,EAAOC,GACPA,EAAI2I,MAAMrH,EAAYS,EAAQR,SAC9BvB,EAAI4I,UAAU,IAAK,CAAE9B,KAAMA,EAAMK,OAAQA,EAAQO,OAAQA,IACzD1H,EAAI6I,UAAU3E,EAAuBC,KAAMD,GAC3ClE,EAAI6I,UAAU1C,EAAgBhC,KAAMgC,GAGpC,IAAI2C,EAAS9I,EAAI+I,OAAOC,sBACxBF,EAAOxI,KAAO,SAAU2I,EAAWC,GACjC,YAAoB/L,IAAb+L,EACHD,EACAC,CACN,CACF,CAIA,IAAIC,EAAgB,WAClBjJ,KAAKkJ,QAAUvM,OAAOwM,OAAO,KAC/B,EAEAF,EAAcrM,UAAUwM,YAAc,SAAsBC,EAASlJ,GACnE,IAAKA,EACH,MAAO,CAACkJ,GAEV,IAAIC,EAAStJ,KAAKkJ,QAAQG,GAK1B,OAJKC,IACHA,EAAS9L,EAAM6L,GACfrJ,KAAKkJ,QAAQG,GAAWC,GAEnBC,EAAQD,EAAQnJ,EACzB,EAIA,IAAIqJ,EAAsB,WACtBC,EAAuB,WAE3B,SAASjM,EAAO2I,GACd,IAAImD,EAAS,GACTI,EAAW,EAEXrE,EAAO,GACX,MAAOqE,EAAWvD,EAAOvM,OAAQ,CAC/B,IAAI+P,EAAOxD,EAAOuD,KAClB,GAAa,MAATC,EAAc,CACZtE,GACFiE,EAAOpL,KAAK,CAAEmG,KAAM,OAAQtD,MAAOsE,IAGrCA,EAAO,GACP,IAAIuE,EAAM,GACVD,EAAOxD,EAAOuD,KACd,WAAgBzM,IAAT0M,GAA+B,MAATA,EAC3BC,GAAOD,EACPA,EAAOxD,EAAOuD,KAEhB,IAAIG,EAAoB,MAATF,EAEXtF,EAAOmF,EAAoBM,KAAKF,GAChC,OACAC,GAAYJ,EAAqBK,KAAKF,GACpC,QACA,UACNN,EAAOpL,KAAK,CAAE6C,MAAO6I,EAAKvF,KAAMA,GAClC,KAAoB,MAATsF,EAEkB,MAAvBxD,EAAO,KACTd,GAAQsE,GAGVtE,GAAQsE,CAEZ,CAIA,OAFAtE,GAAQiE,EAAOpL,KAAK,CAAEmG,KAAM,OAAQtD,MAAOsE,IAEpCiE,CACT,CAEA,SAASC,EAASD,EAAQnJ,GACxB,IAAI4J,EAAW,GACXhE,EAAQ,EAERiE,EAAO5N,MAAMD,QAAQgE,GACrB,OACA9D,EAAS8D,GACP,QACA,UACN,GAAa,YAAT6J,EAAsB,OAAOD,EAEjC,MAAOhE,EAAQuD,EAAO1P,OAAQ,CAC5B,IAAIqQ,EAAQX,EAAOvD,GACnB,OAAQkE,EAAM5F,MACZ,IAAK,OACH0F,EAAS7L,KAAK+L,EAAMlJ,OACpB,MACF,IAAK,OACHgJ,EAAS7L,KAAKiC,EAAO+J,SAASD,EAAMlJ,MAAO,MAC3C,MACF,IAAK,QACU,UAATiJ,GACFD,EAAS7L,KAAK,EAAS+L,EAAMlJ,QAM/B,MACF,IAAK,UACC,EAGJ,MAEJgF,GACF,CAEA,OAAOgE,CACT,CAWA,IAAII,EAAS,EACTC,EAAO,EACPC,EAAqB,EACrBC,GAAgB,EAGhBC,GAAc,EACdC,GAAU,EACVC,GAAe,EACfC,GAAW,EACXC,GAAc,EACdC,GAAkB,EAClBC,GAAkB,EAClBC,GAAa,EACbC,GAAQ,EAERC,GAAmB,GAEvBA,GAAiBT,IAAe,CAC9B,GAAM,CAACA,IACP,MAAS,CAACG,GAAUP,GACpB,IAAK,CAACQ,IACN,IAAO,CAACG,KAGVE,GAAiBR,IAAW,CAC1B,GAAM,CAACA,IACP,IAAK,CAACC,IACN,IAAK,CAACE,IACN,IAAO,CAACG,KAGVE,GAAiBP,IAAgB,CAC/B,GAAM,CAACA,IACP,MAAS,CAACC,GAAUP,GACpB,EAAK,CAACO,GAAUP,GAChB,OAAU,CAACO,GAAUP,IAGvBa,GAAiBN,IAAY,CAC3B,MAAS,CAACA,GAAUP,GACpB,EAAK,CAACO,GAAUP,GAChB,OAAU,CAACO,GAAUP,GACrB,GAAM,CAACK,GAASJ,GAChB,IAAK,CAACK,GAAcL,GACpB,IAAK,CAACO,GAAaP,GACnB,IAAO,CAACU,GAAYV,IAGtBY,GAAiBL,IAAe,CAC9B,IAAK,CAACC,GAAiBT,GACvB,IAAK,CAACU,GAAiBV,GACvB,IAAK,CAACQ,GAAaN,GACnB,IAAK,CAACG,GAASF,IACf,IAAOS,GACP,KAAQ,CAACJ,GAAaR,IAGxBa,GAAiBJ,IAAmB,CAClC,IAAK,CAACD,GAAaR,GACnB,IAAOY,GACP,KAAQ,CAACH,GAAiBT,IAG5Ba,GAAiBH,IAAmB,CAClC,IAAK,CAACF,GAAaR,GACnB,IAAOY,GACP,KAAQ,CAACF,GAAiBV,IAO5B,IAAIc,GAAiB,kDACrB,SAASC,GAAWC,GAClB,OAAOF,GAAenB,KAAKqB,EAC7B,CAMA,SAASC,GAAaC,GACpB,IAAIpN,EAAIoN,EAAIC,WAAW,GACnBxM,EAAIuM,EAAIC,WAAWD,EAAIzR,OAAS,GACpC,OAAOqE,IAAMa,GAAY,KAANb,GAAoB,KAANA,EAE7BoN,EADAA,EAAIE,MAAM,GAAI,EAEpB,CAMA,SAASC,GAAiBC,GACxB,QAAWxO,IAAPwO,GAA2B,OAAPA,EAAe,MAAO,MAE9C,IAAIC,EAAOD,EAAGH,WAAW,GAEzB,OAAQI,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACH,OAAOD,EAET,KAAK,GACL,KAAK,GACL,KAAK,GACH,MAAO,QAET,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,MACL,KAAK,KACL,KAAK,KACH,MAAO,KAGX,MAAO,OACT,CAQA,SAASE,GAAepH,GACtB,IAAIqH,EAAUrH,EAAKe,OAEnB,OAAuB,MAAnBf,EAAKsH,OAAO,KAAcC,MAAMvH,MAE7B2G,GAAUU,GAAWR,GAAYQ,GAAW,IAAMA,EAC3D,CAMA,SAASG,GAASxH,GAChB,IAIIyH,EACA1N,EACA2N,EACA5H,EACA6H,EACAC,EACAC,EAVA7M,EAAO,GACPwG,GAAS,EACTiE,EAAOO,GACP8B,EAAe,EAQfC,EAAU,GAuCd,SAASC,IACP,IAAIC,EAAWjI,EAAKwB,EAAQ,GAC5B,GAAKiE,IAASY,IAAgC,MAAb4B,GAC9BxC,IAASa,IAAgC,MAAb2B,EAI7B,OAHAzG,IACAkG,EAAU,KAAOO,EACjBF,EAAQnC,MACD,CAEX,CA9CAmC,EAAQlC,GAAQ,gBACFnN,IAARqB,IACFiB,EAAKrB,KAAKI,GACVA,OAAMrB,EAEV,EAEAqP,EAAQnC,GAAU,gBACJlN,IAARqB,EACFA,EAAM2N,EAEN3N,GAAO2N,CAEX,EAEAK,EAAQjC,GAAsB,WAC5BiC,EAAQnC,KACRkC,GACF,EAEAC,EAAQhC,IAAiB,WACvB,GAAI+B,EAAe,EACjBA,IACArC,EAAOW,GACP2B,EAAQnC,SACH,CAEL,GADAkC,EAAe,OACHpP,IAARqB,EAAqB,OAAO,EAEhC,GADAA,EAAMqN,GAAcrN,IACR,IAARA,EACF,OAAO,EAEPgO,EAAQlC,IAEZ,CACF,EAaA,MAAgB,OAATJ,EAIL,GAHAjE,IACAiG,EAAIzH,EAAKwB,GAEC,OAANiG,IAAcO,IAAlB,CAQA,GAJAlI,EAAOmH,GAAgBQ,GACvBI,EAAUpB,GAAiBhB,GAC3BkC,EAAaE,EAAQ/H,IAAS+H,EAAQ,SAAWrB,GAE7CmB,IAAenB,GACjB,OAKF,GAFAf,EAAOkC,EAAW,GAClBC,EAASG,EAAQJ,EAAW,IACxBC,IACFF,EAAUC,EAAW,GACrBD,OAAsBhP,IAAZgP,EACND,EACAC,GACa,IAAbE,KACF,OAIJ,GAAInC,IAASc,GACX,OAAOvL,CAvBT,CA0BJ,CAMA,IAAIkN,GAAW,WACbzM,KAAK0M,OAAS/P,OAAOwM,OAAO,KAC9B,EAKAsD,GAAS7P,UAAU+P,UAAY,SAAoBpI,GACjD,IAAIqI,EAAM5M,KAAK0M,OAAOnI,GAOtB,OANKqI,IACHA,EAAMb,GAAQxH,GACVqI,IACF5M,KAAK0M,OAAOnI,GAAQqI,IAGjBA,GAAO,EAChB,EAKAH,GAAS7P,UAAUiQ,aAAe,SAAuBvQ,EAAKiI,GAC5D,IAAKlI,EAASC,GAAQ,OAAO,KAE7B,IAAIwQ,EAAQ9M,KAAK2M,UAAUpI,GAC3B,GAAqB,IAAjBuI,EAAMlT,OACR,OAAO,KAEP,IAAIA,EAASkT,EAAMlT,OACfmT,EAAOzQ,EACPqC,EAAI,EACR,MAAOA,EAAI/E,EAAQ,CACjB,IAAImH,EAAQgM,EAAKD,EAAMnO,IACvB,QAAc1B,IAAV8D,GAAiC,OAAVA,EACzB,OAAO,KAETgM,EAAOhM,EACPpC,GACF,CAEA,OAAOoO,CAEX,EAMA,IAqkCIC,GArkCAC,GAAiB,0BACjBC,GAAiB,0DACjBC,GAAuB,wBACvBC,GAAkB,QAClBC,GAAmB,CACrB,MAAS,SAAUhC,GAAO,OAAOA,EAAIiC,mBAAqB,EAC1D,MAAS,SAAUjC,GAAO,OAAOA,EAAIkC,mBAAqB,EAC1D,WAAc,SAAUlC,GAAO,MAAQ,GAAMA,EAAIQ,OAAO,GAAGyB,oBAAwBjC,EAAImC,OAAO,EAAM,GAGlGC,GAAmB,IAAIxE,EAEvBjH,GAAU,SAAkBH,GAC9B,IAAI6L,EAAS1N,UACI,IAAZ6B,IAAqBA,EAAU,CAAC,IAMhC/B,GAAyB,qBAAX/G,QAA0BA,OAAO+G,KAClDsI,EAAQrP,OAAO+G,KAGjB,IAAI1C,EAASyE,EAAQzE,QAAU,QAC3BsF,GAA4C,IAA3Bb,EAAQa,iBAEzBb,EAAQa,gBAAkB,SAC1BR,EAAWL,EAAQK,UAAY,CAAC,EAChCyL,EAAkB9L,EAAQ8L,iBAAmB9L,EAAQ+L,iBAAmB,CAAC,EACzEC,EAAgBhM,EAAQgM,eAAiB,CAAC,EAE9C7N,KAAK8N,IAAM,KACX9N,KAAK+N,WAAalM,EAAQY,WAAagL,GACvCzN,KAAKgO,WAAanM,EAAQ6F,WAAa,CAAC,EACxC1H,KAAKiO,SAAWpM,EAAQqM,SAAW,KACnClO,KAAKmO,MAAQtM,EAAQW,MAAQ,KAC7BxC,KAAKoO,WAAyBnR,IAAjB4E,EAAQsB,QAA8BtB,EAAQsB,KAC3DnD,KAAKqO,mBAAyCpR,IAAzB4E,EAAQyM,gBAEvBzM,EAAQyM,aACdtO,KAAKuO,kCAAuEtR,IAAxC4E,EAAQ2M,+BAEtC3M,EAAQ2M,4BACdxO,KAAKyO,6BAA6DxR,IAAnC4E,EAAQc,0BAEjCd,EAAQc,uBACd3C,KAAK0O,4BAA2DzR,IAAlC4E,EAAQe,uBAElCf,EAAQe,sBACZ5C,KAAK2O,yBAAqD1R,IAA/B4E,EAAQgB,sBAE7BhB,EAAQgB,mBACd7C,KAAK4O,oBAAsB,CAAC,EAC5B5O,KAAK6O,kBAAoB,CAAC,EAC1B7O,KAAK8O,MAAQ,IAAIrC,GACjBzM,KAAK+O,eAAiB,IAAIC,IAC1BhP,KAAKiP,kCAAoCpN,EAAQqN,kCAAoC,KACrFlP,KAAKmP,+BAAiElS,IAArC4E,EAAQkB,4BAEnClB,EAAQkB,yBACd/C,KAAK8C,mBAAqBjB,EAAQiB,oBAAsB,CAAC,EACzD9C,KAAKoP,mBAAqBvN,EAAQwN,mBAAqB,MACvDrP,KAAKsP,iBAAmBzN,EAAQ0N,iBAAmB,KACnDvP,KAAKwP,qBAAuB3N,EAAQ4N,sBAAuB,EAEvD,wBAAyB5N,IAC3B7B,KAAK0P,oBAAsB7N,EAAQ6N,qBAQrC1P,KAAK2P,eAAiB,SAAUjP,EAAQkP,GACtC,IAAIC,EAAgBlT,OAAOmT,eAAepC,GAC1C,GAAImC,GAAiBA,EAAcF,eAAgB,CACjD,IAAII,EAA2BF,EAA4B,eAC3D,OAAO,EAA0B9S,KAAK2Q,EAAQhN,EAAQkP,EACxD,CAGA,IAAII,EAAc,SAAUC,EAASC,GAGnC,OAFAD,EAAUE,KAAKC,IAAIH,GAEI,IAAnBC,EACKD,EACHA,EAAU,EACR,EACA,EACF,EAGCA,EAAUE,KAAKE,IAAIJ,EAAS,GAAK,CAC1C,EAEA,OAAIvC,EAAOtQ,UAAUsQ,EAAO5K,mBACnB4K,EAAO5K,mBAAmB4K,EAAOtQ,QAAQvD,MAAM6T,EAAQ,CAAChN,EAAQkP,IAEhEI,EAAYtP,EAAQkP,EAE/B,EAGA5P,KAAKsQ,OAAS,SAAUjH,EAAS/K,GAC/B,SAAK+K,IAAY/K,MACZtB,EAAO0Q,EAAOoB,MAAMjC,aAAaxD,EAAS/K,OAE3C+K,EAAQ/K,GAEd,EAEgC,SAA5B0B,KAAKoP,oBAA6D,UAA5BpP,KAAKoP,oBAC7CzS,OAAO4C,KAAK2C,GAAUlE,SAAQ,SAAUZ,GACtCsQ,EAAO6C,oBAAoBnT,EAAQsQ,EAAO0B,mBAAoBlN,EAAS9E,GACzE,IAGF4C,KAAKwQ,QAAQ,CACXpT,OAAQA,EACRsF,eAAgBA,EAChBR,SAAUA,EACVyL,gBAAiBA,EACjBE,cAAeA,GAEnB,EAEI4C,GAAqB,CAAEhJ,GAAI,CAAEiJ,cAAc,GAAOxO,SAAU,CAAEwO,cAAc,GAAO/C,gBAAiB,CAAE+C,cAAc,GAAO7C,cAAe,CAAE6C,cAAc,GAAOC,iBAAkB,CAAED,cAAc,GAAOtT,OAAQ,CAAEsT,cAAc,GAAOhO,eAAgB,CAAEgO,cAAc,GAAO/N,uBAAwB,CAAE+N,cAAc,GAAOxC,QAAS,CAAEwC,cAAc,GAAOjO,UAAW,CAAEiO,cAAc,GAAO9N,sBAAuB,CAAE8N,cAAc,GAAO7N,mBAAoB,CAAE6N,cAAc,GAAO3N,yBAA0B,CAAE2N,cAAc,GAAOrB,kBAAmB,CAAEqB,cAAc,GAAOnB,gBAAiB,CAAEmB,cAAc,GAAOvN,KAAM,CAAEuN,cAAc,IAEvnB1O,GAAQpF,UAAU2T,oBAAsB,SAA8BnT,EAAQwT,EAAOvH,GACnF,IAAIyD,EAAQ,GAER+D,EAAK,SAAUD,EAAOxT,EAAQiM,EAASyD,GACzC,GAAIhQ,EAAcuM,GAChB1M,OAAO4C,KAAK8J,GAASrL,SAAQ,SAAUM,GACrC,IAAI9B,EAAM6M,EAAQ/K,GACdxB,EAAcN,IAChBsQ,EAAM5O,KAAKI,GACXwO,EAAM5O,KAAK,KACX2S,EAAGD,EAAOxT,EAAQZ,EAAKsQ,GACvBA,EAAMgE,MACNhE,EAAMgE,QAENhE,EAAM5O,KAAKI,GACXuS,EAAGD,EAAOxT,EAAQZ,EAAKsQ,GACvBA,EAAMgE,MAEV,SACK,GAAI3U,EAAQkN,GACjBA,EAAQrL,SAAQ,SAAUJ,EAAMmI,GAC1BjJ,EAAcc,IAChBkP,EAAM5O,KAAM,IAAM6H,EAAQ,KAC1B+G,EAAM5O,KAAK,KACX2S,EAAGD,EAAOxT,EAAQQ,EAAMkP,GACxBA,EAAMgE,MACNhE,EAAMgE,QAENhE,EAAM5O,KAAM,IAAM6H,EAAQ,KAC1B8K,EAAGD,EAAOxT,EAAQQ,EAAMkP,GACxBA,EAAMgE,MAEV,SACK,GAAIrU,EAAS4M,GAAU,CAC5B,IAAItL,EAAMkP,GAAenD,KAAKT,GAC9B,GAAItL,EAAK,CACP,IAAIhC,EAAM,6BAA+BsN,EAAU,iBAAoByD,EAAMiE,KAAK,IAAO,SAAW3T,EAAS,6FAC/F,SAAVwT,EACF9U,EAAKC,GACc,UAAV6U,GACTvW,EAAM0B,EAEV,CACF,CACF,EAEA8U,EAAGD,EAAOxT,EAAQiM,EAASyD,EAC7B,EAEA9K,GAAQpF,UAAU4T,QAAU,SAAkB5L,GAC5C,IAAIoM,EAASlR,EAAI+I,OAAOmI,OACxBlR,EAAI+I,OAAOmI,QAAS,EACpBhR,KAAK8N,IAAM,IAAIhO,EAAI,CAAE8E,KAAMA,EAAMqM,sBAAsB,IACvDnR,EAAI+I,OAAOmI,OAASA,CACtB,EAEAhP,GAAQpF,UAAUmH,UAAY,WAC5B/D,KAAK8N,IAAIoD,UACX,EAEAlP,GAAQpF,UAAU6G,sBAAwB,SAAgCgE,GACxEzH,KAAK+O,eAAeoC,IAAI1J,EAC1B,EAEAzF,GAAQpF,UAAUkH,wBAA0B,SAAkC2D,GAC5E/J,EAAOsC,KAAK+O,eAAgBtH,EAC9B,EAEAzF,GAAQpF,UAAU0F,cAAgB,WAC9B,IAAIoL,EAAS1N,KACf,OAAOA,KAAK8N,IAAIsD,OAAO,SAAS,WAC9B,IAAIC,EAAYvT,EAAU4P,EAAOqB,gBAC7BpQ,EAAI0S,EAAUzX,OAClB,MAAM+E,IACJmB,EAAIwR,UAAS,WACXD,EAAU1S,IAAM0S,EAAU1S,GAAG4S,cAC/B,GAEJ,GAAG,CAAEC,MAAM,GACb,EAEAxP,GAAQpF,UAAUyG,YAAc,SAAsBoO,GACpD,GAAKA,EAQE,CAEL,IAAKzR,KAAK0P,oBAAuB,OAAO,KACxC,IAAI9L,EAAO5D,KACP0R,EAAW1R,KAAK8N,IACpB,OAAO9N,KAAKyH,GAAG2J,OAAO,UAAU,SAAU5U,GACxCkV,EAASC,KAAKD,EAAU,SAAUlV,GAC9BoH,EAAK8L,qBAAuB+B,IAC9BA,EAASrU,OAAO2D,MAAQvE,GAE1BkV,EAASH,cACX,GAAG,CAAEK,WAAW,GAClB,CAlBE,IAAK5R,KAAKoO,QAAUpO,KAAKmO,MAAS,OAAO,KACzC,IAAI3P,EAASwB,KAAK8N,IAClB,OAAO9N,KAAKmO,MAAM9N,MAAMoH,GAAG2J,OAAO,UAAU,SAAU5U,GACpDgC,EAAOmT,KAAKnT,EAAQ,SAAUhC,GAC9BgC,EAAO+S,cACT,GAAG,CAAEK,WAAW,GAcpB,EAEA5P,GAAQpF,UAAU0G,2BAA6B,SAAqCuO,GAC9E7R,KAAKiP,mCACPjP,KAAKiP,kCAAkC4C,EAAS7R,KAEpD,EAEAyQ,GAAmBhJ,GAAGnM,IAAM,WAAc,OAAO0E,KAAK8N,GAAI,EAE1D2C,GAAmBvO,SAAS5G,IAAM,WAAc,OAAOgC,EAAW0C,KAAKO,eAAgB,EACvFkQ,GAAmB9C,gBAAgBrS,IAAM,WAAc,OAAOgC,EAAW0C,KAAK8R,sBAAuB,EACrGrB,GAAmB5C,cAAcvS,IAAM,WAAc,OAAOgC,EAAW0C,KAAK+R,oBAAqB,EACjGtB,GAAmBE,iBAAiBrV,IAAM,WAAc,OAAOqB,OAAO4C,KAAKS,KAAKkC,UAAU8P,MAAO,EAEjGvB,GAAmBrT,OAAO9B,IAAM,WAAc,OAAO0E,KAAK8N,IAAI1Q,MAAO,EACrEqT,GAAmBrT,OAAO6U,IAAM,SAAU7U,GACxC4C,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAK,SAAU1Q,EACpC,EAEAqT,GAAmB/N,eAAepH,IAAM,WAAc,OAAO0E,KAAK8N,IAAIpL,cAAe,EACrF+N,GAAmB/N,eAAeuP,IAAM,SAAU7U,GAChD4C,KAAKkS,kBAAoB,CAAC,EAC1BlS,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAK,iBAAkB1Q,EAC5C,EAEAqT,GAAmB9N,uBAAuBrH,IAAM,WAAc,OAAO0E,KAAKyO,uBAAwB,EAClGgC,GAAmB9N,uBAAuBsP,IAAM,SAAUE,GAAYnS,KAAKyO,wBAA0B0D,CAAU,EAE/G1B,GAAmBvC,QAAQ5S,IAAM,WAAc,OAAO0E,KAAKiO,QAAS,EACpEwC,GAAmBvC,QAAQ+D,IAAM,SAAUG,GAAWpS,KAAKiO,SAAWmE,CAAS,EAE/E3B,GAAmBhO,UAAUnH,IAAM,WAAc,OAAO0E,KAAK+N,UAAW,EACxE0C,GAAmBhO,UAAUwP,IAAM,SAAUxP,GAAazC,KAAK+N,WAAatL,CAAW,EAEvFgO,GAAmB7N,sBAAsBtH,IAAM,WAAc,OAAO0E,KAAK0O,sBAAuB,EAChG+B,GAAmB7N,sBAAsBqP,IAAM,SAAUjB,GAAUhR,KAAK0O,uBAAyBsC,CAAQ,EAEzGP,GAAmB5N,mBAAmBvH,IAAM,WAAc,OAAO0E,KAAK2O,mBAAoB,EAC1F8B,GAAmB5N,mBAAmBoP,IAAM,SAAUjB,GAAUhR,KAAK2O,oBAAsBqC,CAAQ,EAEnGP,GAAmB1N,yBAAyBzH,IAAM,WAAc,OAAO0E,KAAKmP,yBAA0B,EACtGsB,GAAmB1N,yBAAyBkP,IAAM,SAAUtK,GAAY3H,KAAKmP,0BAA4BxH,CAAU,EAEnH8I,GAAmBpB,kBAAkB/T,IAAM,WAAc,OAAO0E,KAAKoP,kBAAmB,EACxFqB,GAAmBpB,kBAAkB4C,IAAM,SAAUrB,GACjD,IAAIlD,EAAS1N,KAEXqS,EAAWrS,KAAKoP,mBAEpB,GADApP,KAAKoP,mBAAqBwB,EACtByB,IAAazB,IAAoB,SAAVA,GAA8B,UAAVA,GAAoB,CACjE,IAAI1O,EAAWlC,KAAKO,eACpB5D,OAAO4C,KAAK2C,GAAUlE,SAAQ,SAAUZ,GACtCsQ,EAAO6C,oBAAoBnT,EAAQsQ,EAAO0B,mBAAoBlN,EAAS9E,GACzE,GACF,CACF,EAEAqT,GAAmBlB,gBAAgBjU,IAAM,WAAc,OAAO0E,KAAKsP,gBAAiB,EACpFmB,GAAmBlB,gBAAgB0C,IAAM,SAAUG,GAAWpS,KAAKsP,iBAAmB8C,CAAS,EAE/F3B,GAAmBtN,KAAK7H,IAAM,WAAc,OAAO0E,KAAKoO,KAAM,EAC9DqC,GAAmBtN,KAAK8O,IAAM,SAAUzV,GAAOwD,KAAKoO,MAAQ5R,CAAK,EAEjEwF,GAAQpF,UAAU2D,aAAe,WAA2B,OAAOP,KAAK8N,IAAI5L,QAAS,EACrFF,GAAQpF,UAAUkV,oBAAsB,WAAkC,OAAO9R,KAAK8N,IAAIH,eAAgB,EAC1G3L,GAAQpF,UAAUmV,kBAAoB,WAAgC,OAAO/R,KAAK8N,IAAID,aAAc,EAEpG7L,GAAQpF,UAAU0V,aAAe,SAAuBlV,EAAQkB,EAAKiU,EAAQ9K,EAAItH,EAAQqS,GACvF,IAAKxV,EAAOuV,GAAW,OAAOA,EAC9B,GAAIvS,KAAKiO,SAAU,CACjB,IAAIwE,EAAazS,KAAKiO,SAASpU,MAAM,KAAM,CAACuD,EAAQkB,EAAKmJ,EAAItH,IAC7D,GAAI1D,EAASgW,GACX,OAAOA,CAEX,MACM,EAQN,GAAIzS,KAAKyO,wBAAyB,CAChC,IAAIiE,EAAavV,EAAUtD,WAAM,EAAQsG,GACzC,OAAOH,KAAK2S,QAAQrU,EAAKkU,EAAiBE,EAAWrV,OAAQiB,EAC/D,CACE,OAAOA,CAEX,EAEA0D,GAAQpF,UAAUgW,gBAAkB,SAA0BpW,GAC5D,OAAQwD,KAAKuO,8BAA+B/R,EAAMQ,EAAOR,MAAUQ,EAAOgD,KAAKmO,QAAUnO,KAAKqO,aAChG,EAEArM,GAAQpF,UAAUiW,sBAAwB,SAAgCvU,GACxE,OAAO0B,KAAK2O,+BAA+BmE,OACvC9S,KAAK2O,oBAAoB7E,KAAKxL,GAC9B0B,KAAK2O,mBACX,EAEA3M,GAAQpF,UAAUmW,kBAAoB,SAA4B3V,EAAQkB,GACxE,OAAO0B,KAAK6S,sBAAsBvU,KAAS0B,KAAK4S,mBAAqBxV,IAAW4C,KAAK0C,eACvF,EAEAV,GAAQpF,UAAUoW,yBAA2B,SAAmC1U,GAC9E,OAAO0B,KAAK0O,kCAAkCoE,OAC1C9S,KAAK0O,uBAAuB5E,KAAKxL,GACjC0B,KAAK0O,sBACX,EAEA1M,GAAQpF,UAAUqW,aAAe,SAC/B7V,EACAiM,EACA/K,EACA4U,EACAV,EACArS,EACAgT,GAEA,IAAK9J,EAAW,OAAO,KAEvB,IAGItL,EAHAqV,EAAUpT,KAAK8O,MAAMjC,aAAaxD,EAAS/K,GAC/C,GAAInC,EAAQiX,IAAYtW,EAAcsW,GAAY,OAAOA,EAGzD,GAAIpW,EAAOoW,GAAU,CAEnB,IAAItW,EAAcuM,GAShB,OAAO,KAPP,GADAtL,EAAMsL,EAAQ/K,IACR7B,EAASsB,KAAQb,EAAWa,GAIhC,OAAO,IAKb,KAAO,CAEL,IAAItB,EAAS2W,KAAYlW,EAAWkW,GAMlC,OAAO,KALPrV,EAAMqV,CAOV,CAOA,OAJI3W,EAASsB,KAASA,EAAIxC,QAAQ,OAAS,GAAKwC,EAAIxC,QAAQ,OAAS,KACnEwC,EAAMiC,KAAKqT,MAAMjW,EAAQiM,EAAStL,EAAKmV,EAAM,MAAO/S,EAAQgT,IAGvDnT,KAAK2S,QAAQ5U,EAAKyU,EAAiBrS,EAAQ7B,EACpD,EAEA0D,GAAQpF,UAAUyW,MAAQ,SACxBjW,EACAiM,EACAgC,EACA6H,EACAV,EACArS,EACAgT,GAEA,IAAIpV,EAAMsN,EAKNiI,EAAUvV,EAAI7E,MAAMgU,IAGxB,IAAK,IAAIqG,KAAOD,EAGd,GAAKA,EAAQlV,eAAemV,GAA5B,CAGA,IAAIC,EAAOF,EAAQC,GACfE,EAAuBD,EAAKta,MAAMiU,IAClCuG,EAAaD,EAAqB,GAChCE,EAAgBF,EAAqB,GAGvCG,EAAkBJ,EAAK7T,QAAQ+T,EAAY,IAAI/T,QAAQyN,GAAiB,IAE5E,GAAIjP,EAASgV,EAAkBS,GAI7B,OAAO7V,EAEToV,EAAiBjV,KAAK0V,GAGtB,IAAIC,EAAa7T,KAAKiT,aACpB7V,EAAQiM,EAASuK,EAAiBV,EACd,QAApBV,EAA4B,SAAWA,EACnB,QAApBA,OAA4BvV,EAAYkD,EACxCgT,GAGF,GAAInT,KAAK4S,gBAAgBiB,GAAa,CAKpC,IAAK7T,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,IAAIqH,EAAOxC,KAAKmO,MAAM9N,MACtBwT,EAAarR,EAAKsR,WAChBtR,EAAKjC,eAAgBiC,EAAKpF,OAAQoF,EAAKE,eACvCkR,EAAiBV,EAAMV,EAAiBrS,EAE5C,CACA0T,EAAa7T,KAAKsS,aAChBlV,EAAQwW,EAAiBC,EAAYX,EACrC/W,EAAQgE,GAAUA,EAAS,CAACA,GAC5BqS,GAGExS,KAAKgO,WAAW5P,eAAeuV,GACjCE,EAAa7T,KAAKgO,WAAW2F,GAAeE,GACnCxG,GAAiBjP,eAAeuV,KACzCE,EAAaxG,GAAiBsG,GAAeE,IAG/CV,EAAiBrC,MAGjB/S,EAAO8V,EAAmB9V,EAAI4B,QAAQ6T,EAAMK,GAAxB9V,CApDpB,CAuDF,OAAOA,CACT,EAEAiE,GAAQpF,UAAUmX,sBAAwB,SAAgC5T,EAAQsC,EAAW8B,EAAMiO,GAC/F,IAAI9E,EAAS1N,KAEXgU,EAAQ7X,EAAQgE,GAAUA,EAAS,GACnC8T,EAAS5X,EAAS8D,GAAUA,EAAS,CAAC,EACtC+T,EAAO,SAAUnO,GAAS,OAAOiO,EAAMjO,EAAQ,EAC/CoO,EAAQ,SAAU7V,GAAO,OAAO2V,EAAO3V,EAAM,EAC7C4D,EAAWlC,KAAKO,eAChBnD,EAAS4C,KAAK5C,OAElB,MAAO,CACL8W,KAAMA,EACNC,MAAOA,EACPhU,OAAQA,EACRsC,UAAWA,EACX8B,KAAMA,EACNrC,SAAUA,EACV9E,OAAQA,EACRgX,OAAQ,SAAUC,GAAa,OAAO3G,EAAOuF,aAAa7V,EAAQ8E,EAAS9E,IAAW,CAAC,EAAGiX,EAAW,KAAM7B,OAAiBvV,EAAW,CAACoX,GAAa,EAEzJ,EAEArS,GAAQpF,UAAU+V,QAAU,SAAkBtJ,EAASmJ,EAAiBrS,EAAQoE,GAC9E,GAAIrH,EAAWmM,GACb,OAAOA,EACLrJ,KAAK+T,sBAAsB5T,EAAQH,KAAK+N,YAAcN,GAAkBlJ,EAAMiO,IAIlF,IAAIzU,EAAMiC,KAAK+N,WAAW3E,YAAYC,EAASlJ,EAAQoE,GASvD,OANKxG,IACHA,EAAM0P,GAAiBrE,YAAYC,EAASlJ,EAAQoE,IAK3B,WAApBiO,GAAiC/V,EAASsB,GAAsBA,EAAfA,EAAIgT,KAAK,GACnE,EAEA/O,GAAQpF,UAAU0X,mBAAqB,SAA6BC,EAAO3W,EAAM4W,GAC/E,IAAIC,GAAS,EAYb,OAXKtW,EAASoW,EAAO3W,KACnB6W,GAAS,EACL7W,IACF6W,EAAmC,MAA1B7W,EAAKA,EAAKhE,OAAS,GAC5BgE,EAAOA,EAAK+B,QAAQ,KAAM,IAC1B4U,EAAMrW,KAAKN,GACP4W,GAAUA,EAAO5W,KACnB6W,EAASD,EAAO5W,MAIf6W,CACT,EAEAzS,GAAQpF,UAAU8X,qBAAuB,SAA+BH,EAAOnX,EAAQoX,GACrF,IAAIC,EACAnL,EAASlM,EAAOoL,MAAM,KAC1B,EAAG,CACD,IAAI5K,EAAO0L,EAAOyH,KAAK,KACvB0D,EAASzU,KAAKsU,mBAAmBC,EAAO3W,EAAM4W,GAC9ClL,EAAOqL,QAAQ,EAAG,EACpB,OAASrL,EAAO1P,SAAsB,IAAX6a,GAC3B,OAAOA,CACT,EAEAzS,GAAQpF,UAAUgY,oBAAsB,SAA8BL,EAAOM,EAAOL,GAElF,IADA,IAAIC,GAAS,EACJ9V,EAAI,EAAIA,EAAIkW,EAAMjb,QAAY2C,EAAUkY,GAAU9V,IAAK,CAC9D,IAAIvB,EAASyX,EAAMlW,GACflC,EAASW,KACXqX,EAASzU,KAAK0U,qBAAqBH,EAAOnX,EAAQoX,GAEtD,CACA,OAAOC,CACT,EAEAzS,GAAQpF,UAAUkY,gBAAkB,SAA0BC,EAAOrS,GACnE,GAAc,KAAVqS,EAAgB,MAAO,GAEtB/U,KAAKkS,oBACRlS,KAAKkS,kBAAoB,CAAC,GAG5B,IAAIqC,EAAQvU,KAAKkS,kBAAkB6C,GACnC,IAAKR,EAAO,CACL7R,IACHA,EAAiB1C,KAAK0C,gBAExB6R,EAAQ,GAGR,IAYIS,EAZAH,EAAQ,CAACE,GAGb,MAAO5Y,EAAQ0Y,GACbA,EAAQ7U,KAAK4U,oBACXL,EACAM,EACAnS,GAOFsS,EADE7Y,EAAQuG,GACCA,EACFrG,EAASqG,GAEdA,EAAe,WACNA,EAAe,WAEf,KAGFA,EAKXmS,EADEpY,EAASuY,GACH,CAACA,GAEDA,EAENH,GACF7U,KAAK4U,oBACHL,EACAM,EACA,MAGJ7U,KAAKkS,kBAAkB6C,GAASR,CAClC,CACA,OAAOA,CACT,EAEAvS,GAAQpF,UAAUkX,WAAa,SAC7B5R,EACA9E,EACA+U,EACA7T,EACA4U,EACAV,EACA/Y,GAIA,IAFA,IACIwb,EADAV,EAAQvU,KAAK8U,gBAAgB1X,EAAQ+U,GAEhCxT,EAAI,EAAGA,EAAI4V,EAAM3a,OAAQ+E,IAAK,CACrC,IAAIuW,EAAOX,EAAM5V,GAGjB,GAFAsW,EACEjV,KAAKiT,aAAaiC,EAAMhT,EAASgT,GAAO5W,EAAK4U,EAAMV,EAAiB/Y,EAAM,CAAC6E,KACxEtB,EAAOiY,GAIV,OAAOA,CAEX,CACA,OAAO,IACT,EAEAjT,GAAQpF,UAAU0D,GAAK,SAAahC,EAAKwJ,EAAS5F,EAAUgR,GACxD,IAAIlS,EAEAb,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GACvD,IAAK4E,EAAO,MAAO,GAEnB,IAAIoU,EAAavV,EAAUtD,WAAM,EAAQsG,GACtCH,KAAKwP,uBACNkD,EAAWrV,OAASuC,EAAa8S,EAAWrV,SAG9C,IAAID,EAASsV,EAAWtV,QAAU0K,EAE9B/J,EAAMiC,KAAK8T,WACb5R,EAAU9E,EAAQ4C,KAAK0C,eAAgBpE,EACvC4U,EAAM,SAAUR,EAAWrV,QAE7B,GAAI2C,KAAK4S,gBAAgB7U,GAAM,CAK7B,IAAKiC,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,OAAQ6F,EAAMhB,KAAKmO,OAAOjO,GAAGrG,MAAMmH,EAAK,CAAE1C,GAAMkC,OAAQL,GAC1D,CAKE,OAJApC,EAAMiC,KAAKsS,aAAalV,EAAQkB,EAAKP,EAAKmV,EAAM/S,EAAQ,UACpDH,KAAKsP,kBAA4B,OAARvR,QAAwBd,IAARc,IAC3CA,EAAMiC,KAAKsP,iBAAiBvR,EAAKO,IAE5BP,CAEX,EAEAiE,GAAQpF,UAAUoK,EAAI,SAAY1I,GAC9B,IAAI0C,EAEAb,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GACvD,OAAQsH,EAAMhB,MAAMM,GAAGzG,MAAMmH,EAAK,CAAE1C,EAAK0B,KAAK5C,OAAQ4C,KAAKO,eAAgB,MAAOC,OAAQL,GAC5F,EAEA6B,GAAQpF,UAAUuY,GAAK,SAAa7W,EAAKlB,EAAQ8E,EAAUgR,EAAM/S,GAC/D,IAAIpC,EACFiC,KAAK8T,WAAW5R,EAAU9E,EAAQ4C,KAAK0C,eAAgBpE,EAAK4U,EAAM,MAAO/S,GAC3E,GAAIH,KAAK4S,gBAAgB7U,GAAM,CAI7B,IAAKiC,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,OAAO6E,KAAKmO,MAAM9N,MAAM1B,EAAEL,EAAKlB,EAAQ+C,EACzC,CACE,OAAOH,KAAKsS,aAAalV,EAAQkB,EAAKP,EAAKmV,EAAM,CAAC/S,GAAS,MAE/D,EAEA6B,GAAQpF,UAAU+B,EAAI,SAAYL,EAAKlB,EAAQ+C,GAE7C,OAAK7B,GAEA7B,EAASW,KACZA,EAAS4C,KAAK5C,QAGT4C,KAAKmV,GAAG7W,EAAKlB,EAAQ4C,KAAKO,eAAgB,KAAMJ,IANpC,EAOrB,EAEA6B,GAAQpF,UAAU+D,IAAM,SACtBrC,EACAwJ,EACA5F,EACAgR,EACAxS,GAEE,IAAIM,EAEAb,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GACvD,IAAK4E,EAAO,MAAO,QACJrB,IAAXyD,IACFA,EAAS,GAGX,IAAI0U,EAAa,CAAE,MAAS1U,EAAQ,EAAKA,GACrCgS,EAAavV,EAAUtD,WAAM,EAAQsG,GAGzC,OAFAuS,EAAWrV,OAASV,OAAOiJ,OAAOwP,EAAY1C,EAAWrV,QACzD8C,EAA+B,OAAtBuS,EAAWtV,OAAkB,CAACsV,EAAWrV,QAAU,CAACqV,EAAWtV,OAAQsV,EAAWrV,QACpF2C,KAAKqV,aAAarU,EAAMhB,MAAMM,GAAGzG,MAAMmH,EAAK,CAAE1C,EAAKwJ,EAAS5F,EAAUgR,GAAO1S,OAAQL,IAAWO,EACzG,EAEAsB,GAAQpF,UAAUyY,YAAc,SAAsBhM,EAAS3I,GAE7D,IAAK2I,IAAY5M,EAAS4M,GAAY,OAAO,KAC7C,IAAIiM,EAAUjM,EAAQb,MAAM,KAG5B,OADA9H,EAASV,KAAK2P,eAAejP,EAAQ4U,EAAQ1b,QACxC0b,EAAQ5U,GACN4U,EAAQ5U,GAAQ4E,OADQ+D,CAEjC,EAEArH,GAAQpF,UAAUsL,GAAK,SAAa5J,EAAKoC,GACrC,IAAIM,EAEAb,EAAS,GAAIzG,EAAMC,UAAUC,OAAS,EAC1C,MAAQF,KAAQ,EAAIyG,EAAQzG,GAAQC,UAAWD,EAAM,GACvD,OAAQsH,EAAMhB,MAAMW,IAAI9G,MAAMmH,EAAK,CAAE1C,EAAK0B,KAAK5C,OAAQ4C,KAAKO,eAAgB,KAAMG,GAASF,OAAQL,GACrG,EAEA6B,GAAQpF,UAAUiE,IAAM,SAAcvC,EAAKlB,EAAQ8E,GAC/C,IAAIzI,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GAErD,IAAIoO,EAAU3K,EAAUtD,WAAM,EAAQJ,GAAM2D,QAAUA,EACtD,OAAO4C,KAAKsQ,OAAOpO,EAAS4F,GAAUxJ,EACxC,EAEA0D,GAAQpF,UAAU2Y,GAAK,SAAajX,EAAKlB,GACvC,OAAO4C,KAAKa,IAAIvC,EAAK0B,KAAK5C,OAAQ4C,KAAKO,eAAgBnD,EACzD,EAEA4E,GAAQpF,UAAU2K,iBAAmB,SAA2BnK,GAC9D,OAAOE,EAAW0C,KAAK8N,IAAI5L,SAAS9E,IAAW,CAAC,EAClD,EAEA4E,GAAQpF,UAAU4Y,iBAAmB,SAA2BpY,EAAQiM,GACtC,SAA5BrJ,KAAKoP,oBAA6D,UAA5BpP,KAAKoP,oBAC7CpP,KAAKuQ,oBAAoBnT,EAAQ4C,KAAKoP,mBAAoB/F,GAE5DrJ,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAI5L,SAAU9E,EAAQiM,EAC3C,EAEArH,GAAQpF,UAAUwF,mBAAqB,SAA6BhF,EAAQiM,GAC1C,SAA5BrJ,KAAKoP,oBAA6D,UAA5BpP,KAAKoP,oBAC7CpP,KAAKuQ,oBAAoBnT,EAAQ4C,KAAKoP,mBAAoB/F,GAE5DrJ,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAI5L,SAAU9E,EAAQmB,EACF,qBAA9ByB,KAAK8N,IAAI5L,SAAS9E,IAA2BT,OAAO4C,KAAKS,KAAK8N,IAAI5L,SAAS9E,IAASxD,OACvF+C,OAAOiJ,OAAO,CAAC,EAAG5F,KAAK8N,IAAI5L,SAAS9E,IACpC,CAAC,EACLiM,GAEJ,EAEArH,GAAQpF,UAAU6Y,kBAAoB,SAA4BrY,GAChE,OAAOE,EAAW0C,KAAK8N,IAAIH,gBAAgBvQ,IAAW,CAAC,EACzD,EAEA4E,GAAQpF,UAAU8Y,kBAAoB,SAA4BtY,EAAQ+I,GACxEnG,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAIH,gBAAiBvQ,EAAQ+I,GAChDnG,KAAK2V,qBAAqBvY,EAAQ+I,EACpC,EAEAnE,GAAQpF,UAAUgZ,oBAAsB,SAA8BxY,EAAQ+I,GAC5EnG,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAIH,gBAAiBvQ,EAAQmB,EAAMyB,KAAK8N,IAAIH,gBAAgBvQ,IAAW,CAAC,EAAG+I,IAC9FnG,KAAK2V,qBAAqBvY,EAAQ+I,EACpC,EAEAnE,GAAQpF,UAAU+Y,qBAAuB,SAA+BvY,EAAQ+I,GAE9E,IAAK,IAAI7H,KAAO6H,EAAQ,CACtB,IAAI0P,EAAKzY,EAAS,KAAOkB,EAEpB0B,KAAK4O,oBAAoBxQ,eAAeyX,WAItC7V,KAAK4O,oBAAoBiH,EAClC,CACF,EAEA7T,GAAQpF,UAAUkZ,kBAAoB,SACpC/U,EACA3D,EACA+U,EACAxE,EACArP,EACAuD,GAMA,IAJA,IAAIiG,EAAU1K,EACV2Y,EAAUpI,EAAgB7F,GAE1ByM,EAAQvU,KAAK8U,gBAAgB1X,EAAQ+U,GAChCxT,EAAI,EAAGA,EAAI4V,EAAM3a,OAAQ+E,IAAK,CACrC,IACIuW,EAAOX,EAAM5V,GAIjB,GAHAoX,EAAUpI,EAAgBuH,GAC1BpN,EAAUoN,GAENlY,EAAO+Y,KAAY/Y,EAAO+Y,EAAQzX,IAKpC,KAEJ,CAEA,GAAItB,EAAO+Y,IAAY/Y,EAAO+Y,EAAQzX,IACpC,OAAO,KAEP,IAEImE,EAFA0D,EAAS4P,EAAQzX,GAGrB,GAAIuD,EACFY,EAAY,IAAIuT,KAAKC,eAAenO,EAASnL,OAAOiJ,OAAO,CAAC,EAAGO,EAAQtE,QAClE,CACL,IAAIgU,EAAK/N,EAAU,KAAOxJ,EAC1BmE,EAAYzC,KAAK4O,oBAAoBiH,GAChCpT,IACHA,EAAYzC,KAAK4O,oBAAoBiH,GAAM,IAAIG,KAAKC,eAAenO,EAAS3B,GAEhF,CAEA,OAAO1D,EAAU0D,OAAOpF,EAE5B,EAEAiB,GAAQpF,UAAUsZ,GAAK,SAAanV,EAAO3D,EAAQkB,EAAKuD,GAOtD,IAAKvD,EAAK,CACR,IAAI6X,EAAOtU,EAA4C,IAAImU,KAAKC,eAAe7Y,EAAQyE,GAAlE,IAAImU,KAAKC,eAAe7Y,GAC7C,OAAO+Y,EAAIhQ,OAAOpF,EACpB,CAEA,IAAIhD,EACFiC,KAAK8V,kBAAkB/U,EAAO3D,EAAQ4C,KAAK0C,eAAgB1C,KAAK8R,sBAAuBxT,EAAKuD,GAC9F,GAAI7B,KAAK4S,gBAAgB7U,GAAM,CAK7B,IAAKiC,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,OAAO6E,KAAKmO,MAAM9N,MAAMY,EAAEF,EAAOzC,EAAKlB,EACxC,CACE,OAAOW,GAAO,EAElB,EAEAiE,GAAQpF,UAAUqE,EAAI,SAAYF,GAC9B,IAAItH,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GAErD,IAAI0D,EAAS4C,KAAK5C,OACdkB,EAAM,KACNuD,EAAU,KAgCd,OA9BoB,IAAhBpI,EAAKG,QACH6C,EAAShD,EAAK,IAChB6E,EAAM7E,EAAK,GACF4C,EAAS5C,EAAK,MACnBA,EAAK,GAAG2D,SACVA,EAAS3D,EAAK,GAAG2D,QAEf3D,EAAK,GAAG6E,MACVA,EAAM7E,EAAK,GAAG6E,MAIlBuD,EAAUlF,OAAO4C,KAAK9F,EAAK,IAAIgM,QAAO,SAAUW,EAAK9H,GACjD,IAAIhC,EAEN,OAAI6B,EAAStC,EAAoByC,GACxB3B,OAAOiJ,OAAO,CAAC,EAAGQ,GAAO9J,EAAM,CAAC,EAAGA,EAAIgC,GAAO7E,EAAK,GAAG6E,GAAMhC,IAE9D8J,CACT,GAAG,OAEsB,IAAhB3M,EAAKG,SACV6C,EAAShD,EAAK,MAChB6E,EAAM7E,EAAK,IAETgD,EAAShD,EAAK,MAChB2D,EAAS3D,EAAK,KAIXuG,KAAKkW,GAAGnV,EAAO3D,EAAQkB,EAAKuD,EACrC,EAEAG,GAAQpF,UAAUwZ,gBAAkB,SAA0BhZ,GAC5D,OAAOE,EAAW0C,KAAK8N,IAAID,cAAczQ,IAAW,CAAC,EACvD,EAEA4E,GAAQpF,UAAUyZ,gBAAkB,SAA0BjZ,EAAQ+I,GACpEnG,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAID,cAAezQ,EAAQ+I,GAC9CnG,KAAKsW,mBAAmBlZ,EAAQ+I,EAClC,EAEAnE,GAAQpF,UAAU2Z,kBAAoB,SAA4BnZ,EAAQ+I,GACxEnG,KAAK8N,IAAI6D,KAAK3R,KAAK8N,IAAID,cAAezQ,EAAQmB,EAAMyB,KAAK8N,IAAID,cAAczQ,IAAW,CAAC,EAAG+I,IAC1FnG,KAAKsW,mBAAmBlZ,EAAQ+I,EAClC,EAEAnE,GAAQpF,UAAU0Z,mBAAqB,SAA6BlZ,EAAQ+I,GAE1E,IAAK,IAAI7H,KAAO6H,EAAQ,CACtB,IAAI0P,EAAKzY,EAAS,KAAOkB,EAEpB0B,KAAK6O,kBAAkBzQ,eAAeyX,WAIpC7V,KAAK6O,kBAAkBgH,EAChC,CACF,EAEA7T,GAAQpF,UAAU4Z,oBAAsB,SACtCzV,EACA3D,EACA+U,EACAtE,EACAvP,EACAuD,GAMA,IAJA,IAAIiG,EAAU1K,EACV2Y,EAAUlI,EAAc/F,GAExByM,EAAQvU,KAAK8U,gBAAgB1X,EAAQ+U,GAChCxT,EAAI,EAAGA,EAAI4V,EAAM3a,OAAQ+E,IAAK,CACrC,IACIuW,EAAOX,EAAM5V,GAIjB,GAHAoX,EAAUlI,EAAcqH,GACxBpN,EAAUoN,GAENlY,EAAO+Y,KAAY/Y,EAAO+Y,EAAQzX,IAKpC,KAEJ,CAEA,GAAItB,EAAO+Y,IAAY/Y,EAAO+Y,EAAQzX,IACpC,OAAO,KAEP,IAEImE,EAFA0D,EAAS4P,EAAQzX,GAGrB,GAAIuD,EAEFY,EAAY,IAAIuT,KAAKS,aAAa3O,EAASnL,OAAOiJ,OAAO,CAAC,EAAGO,EAAQtE,QAChE,CACL,IAAIgU,EAAK/N,EAAU,KAAOxJ,EAC1BmE,EAAYzC,KAAK6O,kBAAkBgH,GAC9BpT,IACHA,EAAYzC,KAAK6O,kBAAkBgH,GAAM,IAAIG,KAAKS,aAAa3O,EAAS3B,GAE5E,CACA,OAAO1D,CAEX,EAEAT,GAAQpF,UAAU8Z,GAAK,SAAa3V,EAAO3D,EAAQkB,EAAKuD,GAEtD,IAAKG,GAAQgL,eAAe2J,aAI1B,MAAO,GAGT,IAAKrY,EAAK,CACR,IAAIsY,EAAM/U,EAA0C,IAAImU,KAAKS,aAAarZ,EAAQyE,GAA9D,IAAImU,KAAKS,aAAarZ,GAC1C,OAAOwZ,EAAGzQ,OAAOpF,EACnB,CAEA,IAAI0B,EAAYzC,KAAKwW,oBAAoBzV,EAAO3D,EAAQ4C,KAAK0C,eAAgB1C,KAAK+R,oBAAqBzT,EAAKuD,GACxG9D,EAAM0E,GAAaA,EAAU0D,OAAOpF,GACxC,GAAIf,KAAK4S,gBAAgB7U,GAAM,CAK7B,IAAKiC,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,OAAO6E,KAAKmO,MAAM9N,MAAMc,EAAEJ,EAAOpE,OAAOiJ,OAAO,CAAC,EAAG,CAAEtH,IAAKA,EAAKlB,OAAQA,GAAUyE,GACnF,CACE,OAAO9D,GAAO,EAElB,EAEAiE,GAAQpF,UAAUuE,EAAI,SAAYJ,GAC9B,IAAItH,EAAO,GAAIC,EAAMC,UAAUC,OAAS,EACxC,MAAQF,KAAQ,EAAID,EAAMC,GAAQC,UAAWD,EAAM,GAErD,IAAI0D,EAAS4C,KAAK5C,OACdkB,EAAM,KACNuD,EAAU,KAgCd,OA9BoB,IAAhBpI,EAAKG,OACH6C,EAAShD,EAAK,IAChB6E,EAAM7E,EAAK,GACF4C,EAAS5C,EAAK,MACnBA,EAAK,GAAG2D,SACVA,EAAS3D,EAAK,GAAG2D,QAEf3D,EAAK,GAAG6E,MACVA,EAAM7E,EAAK,GAAG6E,KAIhBuD,EAAUlF,OAAO4C,KAAK9F,EAAK,IAAIgM,QAAO,SAAUW,EAAK9H,GACjD,IAAIhC,EAEN,OAAI6B,EAASvC,EAAkB0C,GACtB3B,OAAOiJ,OAAO,CAAC,EAAGQ,GAAO9J,EAAM,CAAC,EAAGA,EAAIgC,GAAO7E,EAAK,GAAG6E,GAAMhC,IAE9D8J,CACT,GAAG,OAEoB,IAAhB3M,EAAKG,SACV6C,EAAShD,EAAK,MAChB6E,EAAM7E,EAAK,IAETgD,EAAShD,EAAK,MAChB2D,EAAS3D,EAAK,KAIXuG,KAAK0W,GAAG3V,EAAO3D,EAAQkB,EAAKuD,EACrC,EAEAG,GAAQpF,UAAU0J,KAAO,SAAevF,EAAO3D,EAAQkB,EAAKuD,GAE1D,IAAKG,GAAQgL,eAAe2J,aAI1B,MAAO,GAGT,IAAKrY,EAAK,CACR,IAAIsY,EAAM/U,EAA0C,IAAImU,KAAKS,aAAarZ,EAAQyE,GAA9D,IAAImU,KAAKS,aAAarZ,GAC1C,OAAOwZ,EAAGC,cAAc9V,EAC1B,CAEA,IAAI0B,EAAYzC,KAAKwW,oBAAoBzV,EAAO3D,EAAQ4C,KAAK0C,eAAgB1C,KAAK+R,oBAAqBzT,EAAKuD,GACxG9D,EAAM0E,GAAaA,EAAUoU,cAAc9V,GAC/C,GAAIf,KAAK4S,gBAAgB7U,GAAM,CAK7B,IAAKiC,KAAKmO,MAAS,MAAMhT,MAAM,oBAC/B,OAAO6E,KAAKmO,MAAM9N,MAAMiG,KAAKvF,EAAO3D,EAAQkB,EAAKuD,EACnD,CACE,OAAO9D,GAAO,EAElB,EAEApB,OAAOma,iBAAkB9U,GAAQpF,UAAW6T,IAI5C9T,OAAOoD,eAAeiC,GAAS,iBAAkB,CAC/C1G,IAAK,WACH,IAAK0R,GAAgB,CACnB,IAAI+J,EAA8B,qBAATf,KACzBhJ,GAAiB,CACfgK,eAAgBD,GAA8C,qBAAxBf,KAAKC,eAC3CU,aAAcI,GAA4C,qBAAtBf,KAAKS,aAE7C,CAEA,OAAOzJ,EACT,IAGFhL,GAAQoG,QAAUA,EAClBpG,GAAQuG,QAAU,SAElB,M,+CCnvEIA,EAAU,QAEd,SAAS0O,EAAQ3a,GAaf,OATE2a,EADoB,oBAAXC,QAAoD,kBAApBA,OAAOC,SACtC,SAAU7a,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,oBAAX4a,QAAyB5a,EAAI8a,cAAgBF,QAAU5a,IAAQ4a,OAAOta,UAAY,gBAAkBN,CAC3H,EAGK2a,EAAQ3a,EACjB,CAEA,SAAS+a,EAAgB/a,EAAKgC,EAAKyC,GAYjC,OAXIzC,KAAOhC,EACTK,OAAOoD,eAAezD,EAAKgC,EAAK,CAC9ByC,MAAOA,EACPuW,YAAY,EACZ5G,cAAc,EACd6G,UAAU,IAGZjb,EAAIgC,GAAOyC,EAGNzE,CACT,CAEA,SAASkb,EAAQC,EAAQC,GACvB,IAAInY,EAAO5C,OAAO4C,KAAKkY,GAEvB,GAAI9a,OAAOgb,sBAAuB,CAChC,IAAIC,EAAUjb,OAAOgb,sBAAsBF,GACvCC,IAAgBE,EAAUA,EAAQzS,QAAO,SAAU0S,GACrD,OAAOlb,OAAOmb,yBAAyBL,EAAQI,GAAKP,UACtD,KACA/X,EAAKrB,KAAKrE,MAAM0F,EAAMqY,EACxB,CAEA,OAAOrY,CACT,CAEA,SAASwY,EAAevZ,GACtB,IAAK,IAAIG,EAAI,EAAGA,EAAIhF,UAAUC,OAAQ+E,IAAK,CACzC,IAAIC,EAAyB,MAAhBjF,UAAUgF,GAAahF,UAAUgF,GAAK,CAAC,EAEhDA,EAAI,EACN6Y,EAAQ7a,OAAOiC,IAAS,GAAMZ,SAAQ,SAAUM,GAC9C+Y,EAAgB7Y,EAAQF,EAAKM,EAAON,GACtC,IACS3B,OAAOqb,0BAChBrb,OAAOma,iBAAiBtY,EAAQ7B,OAAOqb,0BAA0BpZ,IAEjE4Y,EAAQ7a,OAAOiC,IAASZ,SAAQ,SAAUM,GACxC3B,OAAOoD,eAAevB,EAAQF,EAAK3B,OAAOmb,yBAAyBlZ,EAAQN,GAC7E,GAEJ,CAEA,OAAOE,CACT,CAEA,SAASyZ,EAAmBta,GAC1B,OAAOua,EAAmBva,IAAQwa,EAAiBxa,IAAQya,EAA4Bza,IAAQ0a,GACjG,CAEA,SAASH,EAAmBva,GAC1B,GAAIvB,MAAMD,QAAQwB,GAAM,OAAO2a,EAAkB3a,EACnD,CAEA,SAASwa,EAAiBI,GACxB,GAAsB,qBAAXrB,QAA0BA,OAAOC,YAAYxa,OAAO4b,GAAO,OAAOnc,MAAMoc,KAAKD,EAC1F,CAEA,SAASH,EAA4BK,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOH,EAAkBG,EAAGC,GACvD,IAAIvX,EAAIxE,OAAOC,UAAUF,SAASK,KAAK0b,GAAGlN,MAAM,GAAI,GAEpD,MADU,WAANpK,GAAkBsX,EAAErB,cAAajW,EAAIsX,EAAErB,YAAYnT,MAC7C,QAAN9C,GAAqB,QAANA,EAAoB/E,MAAMoc,KAAKC,GACxC,cAANtX,GAAqB,2CAA2C2I,KAAK3I,GAAWmX,EAAkBG,EAAGC,QAAzG,CALc,CAMhB,CAEA,SAASJ,EAAkB3a,EAAKjE,IACnB,MAAPA,GAAeA,EAAMiE,EAAI/D,UAAQF,EAAMiE,EAAI/D,QAE/C,IAAK,IAAI+E,EAAI,EAAGga,EAAO,IAAIvc,MAAM1C,GAAMiF,EAAIjF,EAAKiF,IAAKga,EAAKha,GAAKhB,EAAIgB,GAEnE,OAAOga,CACT,CAEA,SAASN,IACP,MAAM,IAAIO,UAAU,uIACtB,CAEA,SAASC,EAA2BJ,EAAGK,GACrC,IAAIC,EAEJ,GAAsB,qBAAX7B,QAAgD,MAAtBuB,EAAEvB,OAAOC,UAAmB,CAC/D,GAAI/a,MAAMD,QAAQsc,KAAOM,EAAKX,EAA4BK,KAAOK,GAAkBL,GAAyB,kBAAbA,EAAE7e,OAAqB,CAChHmf,IAAIN,EAAIM,GACZ,IAAIpa,EAAI,EAEJqa,EAAI,WAAa,EAErB,MAAO,CACLC,EAAGD,EACH7X,EAAG,WACD,OAAIxC,GAAK8Z,EAAE7e,OAAe,CACxBsf,MAAM,GAED,CACLA,MAAM,EACNnY,MAAO0X,EAAE9Z,KAEb,EACAU,EAAG,SAAUA,GACX,MAAMA,CACR,EACA8Z,EAAGH,EAEP,CAEA,MAAM,IAAIJ,UAAU,wIACtB,CAEA,IAEI5c,EAFAod,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLJ,EAAG,WACDF,EAAKN,EAAEvB,OAAOC,WAChB,EACAhW,EAAG,WACD,IAAI+T,EAAO6D,EAAGO,OAEd,OADAF,EAAmBlE,EAAKgE,KACjBhE,CACT,EACA7V,EAAG,SAAUA,GACXga,GAAS,EACTrd,EAAMqD,CACR,EACA8Z,EAAG,WACD,IACOC,GAAiC,MAAbL,EAAGQ,QAAgBR,EAAGQ,QACjD,CAAE,QACA,GAAIF,EAAQ,MAAMrd,CACpB,CACF,EAEJ,CAOA,SAASG,EAAQqd,GACf,OAAOpd,MAAMD,QAAQqd,EACvB,CACA,SAASC,EAAYD,GACnB,MAAsB,qBAARA,CAChB,CACA,SAASnd,EAASmd,GAChB,MAAwB,WAAjBvC,EAAQuC,EACjB,CACA,SAASE,EAAaF,GACpB,MAAwB,WAAjBvC,EAAQuC,IAA6B,OAARA,CACtC,CACA,SAAStc,EAAWsc,GAClB,MAAsB,oBAARA,CAChB,CACA,SAAS/c,EAAS+c,GAChB,MAAsB,kBAARA,CAChB,CAEA,SAASG,IACP,IACE,OAAQF,EAAY1gB,OACtB,CAAE,MAAOsG,GACP,OAAO,CACT,CACF,CACA,IAAIua,EAAkBD,IAElBE,EAAUD,EAAkB7gB,OAAS,EAAA+gB,EAErC7d,EAAU4d,EAAQ5d,SAAW,CAAC,EAClC,SAASH,EAAKuP,GAEPpP,GAAYA,EAAQH,MAIzBG,EAAQH,KAAKuP,EACf,CACA,IAAI0O,EAA0B,WAC5B,OAAOje,EAAK,uDACd,EAMIke,EAAc,CAChBC,WAAOhd,EACPid,WAAY,GACZC,cAAe,KACfC,UAAW,CAAC,EACZC,UAAW,CAAC,EACZC,UAAW,CAAC,EACZC,KAAM,GACN/G,KAAM,GACNgH,KAAM,GACNC,MAAO,GACPC,OAAQ,GACRC,SAAU,GACVC,+BAAgC,GAChCC,sCAAuC,CAAC,GAEtCC,EAAgB,WAGhBC,EAAU,WAGVC,EAAY,gBAGZC,EAAe,gCAKfC,EAAe,OAEfC,EAAsB,WAEtBC,EAAiB,UAEjBC,EAAW,MAEXC,EAAe,GAEfC,GAAkB,EAClBC,EAAiB,CACnBT,QAASA,EACTC,UAAWA,EACXC,aAAcA,EACdC,aAAcA,EACdE,eAAgBA,EAChBD,oBAAqBA,EACrBI,gBAAiBA,EACjBD,aAAcA,EACdD,SAAUA,GAGRI,EAAkB9e,OAAO4C,KAAKya,GAE9B0B,EAAoB,CAACD,EAAgB,IAAKA,EAAgB,KAE1DE,EAAqB,CAACF,EAAgB,GAAIA,EAAgB,GAAI,WAAWjb,OAAOkb,GAEhFE,EAAwB,CAACH,EAAgB,GAAIA,EAAgB,GAAIA,EAAgB,IAEjFI,EAAuB,CAAC,OAAQ,QAAS,UAGzCC,EAAoB,CAAC,OAAQ,OAAQ,QAErCC,EAAuB,CAAC,WAAY,SAAU,SAE9CC,EAA6B,CAAC,YAAa,UAAW,QACtDC,EAAgB,CAAC,OAAQ,OAAQ,YAEjCC,EAAuB,CAAC,OAAQ,SAEhCC,EAAwB,CAAC,kBAAmB,MAAO,kBAAmB,QAAS,YAAa,WAAY,UAAW,UAAW,WAAY,UAAW,UAAW,iBAAkB,eAAgB,kBAAmB,QAAS,WAAY,UAAW,iBAAkB,SAAU,gBAAiB,QAAS,QAAS,YAAa,OAAQ,WAAY,QAAS,SAAU,WAAY,UAAW,aAAc,SAAU,OAAQ,cAAe,WAAY,WAAY,WAAY,SAAU,WAAY,WAAY,WAAY,YAAa,gBAAiB,WAE9hBC,EAAU,KACd,SAASC,EAAcC,EAAMC,EAAQC,GACnC,IAAIlB,EAAegB,EAAKhB,aAKnBiB,EAAOzB,GAAe2B,cAAgBF,EAAOzB,GAAe4B,cAA6B,YAAbF,IAC/ED,EAAOzB,GAAe2B,YAAc,MAGlCF,EAAOzB,GAAe2B,cAAgBF,EAAOzB,GAAe6B,SAG9DC,IAAY,WACEL,EAAOM,QAAQC,SAC7B,GAAGxB,EAEP,CASA,SAASsB,GAAYG,EAAUC,GAG7B,GAFAA,OAAsB/f,IAAZ+f,EAAwB,GAAKA,EAElCA,EASL,OAJAC,aAAab,GACbA,EAAUc,YAAW,WACnBH,GACF,GAAGC,GACIZ,EARLW,GASJ,CAUA,SAASI,GAAKC,EAAOC,EAAWC,GAC9B,GAAMlhB,MAAMQ,UAAUugB,KAWtB,OAAOC,EAAMD,KAAKE,EAAWC,GAT3B,IAAK,IAAI/J,EAAM,EAAGA,EAAM6J,EAAMxjB,OAAQ2Z,IACpC,GAAI8J,EAAUtgB,KAAKugB,EAASF,EAAM7J,GAAMA,EAAK6J,GAC3C,OAAOA,EAAM7J,EAQrB,CACA,SAASgK,GAAUH,EAAOC,EAAWC,GACnC,IAAMlhB,MAAMQ,UAAU2gB,UAAW,CAE/B,IAAK,IAAIhK,EAAM,EAAGA,EAAM6J,EAAMxjB,OAAQ2Z,IACpC,GAAI8J,EAAUtgB,KAAKugB,EAASF,EAAM7J,GAAMA,EAAK6J,GAC3C,OAAO7J,EAIX,OAAQ,CACV,CAEA,OAAO6J,EAAMG,UAAUF,EAAWC,EACpC,CACA,SAASE,GAAQhE,GACf,OAAMpd,MAAMoc,KAILpc,MAAMoc,KAAKgB,GAHTpd,MAAMQ,UAAU2O,MAAMxO,KAAKyc,EAItC,CACA,SAASrb,GAASif,EAAOrc,GACvB,IAAM3E,MAAMQ,UAAUuB,SAAU,CAC9B,IAAK,IAAIoV,KAAO6J,EACd,GAAIA,EAAM7J,KAASxS,EACjB,OAAO,EAIX,OAAO,CACT,CAEA,OAAOqc,EAAMjf,SAAS4C,EACxB,CAEA,IAAI0c,GAAgB,SAAuBjE,EAAK3S,GAC9C,OAAQA,GAAM6W,UAAUC,iBAAiBnE,EAC3C,EACA,SAASoE,GAAOC,EAAMzZ,GAKpB,OAJKyZ,EAAKzZ,KACRyZ,EAAKzZ,GAAOsZ,SAASI,qBAAqB1Z,GAAK,IAG1CyZ,EAAKzZ,EACd,CACA,SAAS2Z,GAAezB,GACtB,IAAI0B,EAAO1B,EAAK0B,KACZC,EAAQ3B,EAAK2B,MACjB,OAAOD,EAAO,OAASC,EAAQ,QAAU,MAC3C,CACA,SAASC,GAAcC,EAAYC,EAAOC,GACxC,IAAIC,EAAQF,EAAME,MACdtD,EAAYoD,EAAMpD,UAClB3W,EAAO+Z,EAAM/Z,KACb6W,EAAekD,EAAMlD,aACzBmD,EAAaA,GAAc,CAAC,EAC5B,IAAIE,EAAU,CAAC,GAAG/d,OAAO6D,EAAM,KAAK7D,OAAOwa,EAAW,MAAOxa,OAAO8d,EAAO,MAAQ,GAAG9d,OAAO6D,EAAM,UAAU7D,OAAO0a,EAAc,MAAM3U,KAAI,SAAUiY,GACpJ,IAAK,IAAIlgB,KAAO+f,EAAY,CAC1B,IAAI7hB,EAAM6hB,EAAW/f,GACjBmgB,EAAiBjiB,IAAe,IAARA,EAAe,KAAMgE,OAAOhE,EAAK,KAAQ,GACrEgiB,GAAS,SAAShe,OAAOlC,GAAKkC,OAAOie,EAAgB,IACvD,CAEA,OAAOD,CACT,IACA,OAAOhB,GAAQC,GAAcc,EAAQxN,KAAK,MAAOoN,GACnD,CACA,SAASO,GAAsBC,EAAOL,GACpC,IAAItD,EAAY2D,EAAM3D,UACtBwC,GAAQC,GAAc,IAAIjd,OAAOwa,EAAW,MAAOxa,OAAO8d,EAAO,QAAS/X,KAAI,SAAUM,GACtF,OAAOA,EAAGnJ,QACZ,GACF,CACA,SAASkhB,GAAgB/X,EAAIgY,GAC3BhY,EAAG+X,gBAAgBC,EACrB,CAEA,SAASC,GAAYrX,GAEnB,OADAA,EAAKA,GAAMzH,KACJyH,KAA6B,IAAtBA,EAAGqT,IAA2Bze,EAASoL,EAAGqT,IAC1D,CAEA,SAASiE,GAAiBtX,GAExB,OADAA,EAAKA,GAAMzH,KACJyH,IAAOgS,EAAYhS,EAAGqT,GAC/B,CAEA,SAASkE,GAAMzC,EAAQO,GAErB,OADAP,EAAOzB,GAAe6B,SAAU,EACzB,WACL,OAAOsC,GAAO1C,EAAQO,EACxB,CACF,CACA,SAASmC,GAAO1C,EAAQO,GAGtB,GAFAP,EAAOzB,GAAe6B,SAAU,EAE5BG,QAAuB7f,IAAZ6f,EACb,OAAOP,EAAOM,QAAQC,SAE1B,CAEA,SAASoC,GAAa3C,GACpB,IAAI4C,EAAS5C,EAAO6C,SAEhB7C,EAAOzB,GAAeuE,WAAcF,IAKxC5C,EAAOzB,GAAeuE,WAAY,EAClCF,EAAOG,YAAW,SAAUC,EAAI/G,EAAMc,GACpC0F,GAAMzC,GACNjD,GACF,IACA6F,EAAOK,WAAU,WACfjD,EAAO1Y,WAAU,WACf,IAAI4b,EAAUR,GAAO1C,GACjBmD,EAAWD,EAAQC,SAEnBA,GAAYxiB,EAAWwiB,EAASC,kBAClCD,EAASC,gBAAgBD,EAE7B,GACF,IACF,CAEA,IAAIpB,GAAQ,EACZ,SAASsB,GAAY9f,EAAK+B,GAExB,IAAIge,EAAwB,CAAC,YAAa,cAAe,eACrDC,GAAoB,EAExB,MAAO,CACLle,aAAc,WACZ,IAAIme,EAAS/f,KAETggB,EAAU,QACVze,EAAQvB,KAAKggB,GACbxe,EAAWxB,KAAKwB,SAChBye,EAAkBngB,EAAI+I,OAAOqX,SAgCjC,GA/BAvjB,OAAOoD,eAAeC,KAAM,eAAgB,CAC1C0Q,cAAc,EACdpV,IAAK,WAOH,OALI2kB,IAAoB1e,EAAMuZ,GAAeqF,0BAC3CrkB,EAAK,4IACLyF,EAAMuZ,GAAeqF,yBAA0B,GAG1CrB,GAAY9e,KACrB,IAGEA,OAASuB,GACXA,EAAM6e,MAAM,oBAAoB,WAO9B,GANAN,EAAoB9f,KAAK0B,KAA6B,IAAtB1B,KAAK0B,IAAI2e,UAAkBrgB,KAAK0B,IAAI4e,aAAa,yBAM5ER,GAAqBve,EAAMuZ,IAAiD,IAA/BvZ,EAAMuZ,GAAewD,MAAa,CAClF,IAAIiC,EAAU3C,GAAO,CAAC,EAAG,QACzBkC,EAAoBS,GAAWA,EAAQD,aAAaze,EAAQoZ,aAC9D,CACF,KAMExB,EAAYjY,EAASK,EAAQkZ,WAA2C,OAA9BvZ,EAASK,EAAQkZ,SAA/D,CA2BA,GAvBKxZ,EAAMuZ,KACTvZ,EAAMuZ,GAAiB,CACrBwD,MAAOA,IAETA,KAEI2B,GAAmB1e,EAAMC,SAASK,EAAQkZ,UAE5C/a,KAAK6D,WAAU,WAEb,IAAIuB,EAAQ+X,GAAK5b,EAAMif,WAAW,SAAUxU,GAC1C,OAAOA,EAAEyU,QAAUzU,EAAEyU,OAAOC,SAC9B,IAEItb,GAASA,EAAMqb,OAAOC,UAAU7e,EAAQkZ,UAC1Cjf,EAAK,6DAA6D0E,OAAOqB,EAAQkZ,QAAS,4JAE9F,MAMC/a,KAAK8a,GAAgB,CACxB9a,KAAK8a,IAAiB,EACtB,IAAIvX,EAASvD,KAAK2gB,QAElB,MAAOpd,GAAUA,IAAWhC,EACtBkY,EAAYlW,EAAOuX,MACrBvX,EAAOuX,IAAiB,GAG1BvX,EAASA,EAAOod,OAEpB,CAIIzjB,EAAWsE,EAASK,EAAQkZ,YAC9BvZ,EAASof,SAAWpf,EAASof,UAAY,CAAC,EAC1Cpf,EAASof,SAASC,UAAYrf,EAASK,EAAQkZ,SAE1C/a,KAAK8gB,WAIR9gB,KAAK+gB,IAAI,gBAAgB,WACvB/gB,KAAKoR,OAAO,aAAa,WACvBiL,EAAcxa,EAAS7B,KAAKggB,GAAU,UACxC,GACF,KAQAvG,EAAYlY,EAAMuZ,GAAe2B,eACnClb,EAAMuZ,GAAe2B,YAAczc,KAAK8gB,UAEnCvf,EAAMuZ,GAAe2B,cACnBlb,EAAMuZ,GAAekG,iBACxBzf,EAAMuZ,GAAekG,gBAAiB,EACtChhB,KAAK+gB,IAAI,oBAAoB,WAC3B,IAAIxf,EAAQvB,KAAKggB,GAGbF,IACFve,EAAMuZ,GAAewD,MAAQzc,EAAQwZ,SAEzC,KAIFrb,KAAK+gB,IAAI,gBAAgB,WACvB,IAAIxf,EAAQvB,KAAKggB,GAEbze,EAAMuZ,GAAe2B,cAMzBlb,EAAMuZ,GAAe4B,cAAe,EAEpC1c,KAAK6D,WAAU,WACb,IAAIod,EAAuB1f,EAAMsb,QAAQC,UACrCe,EAAOoD,EAAqBpD,KAC5B6B,EAAWuB,EAAqBvB,UAQvB,IAAT7B,GAAuD,OAArCtc,EAAMuZ,GAAe2B,aACzCzc,KAAK6D,WAAU,WACb,OAAOwY,EAAcxa,EAASN,EAAO,OACvC,IAGFA,EAAMuZ,GAAe2B,aAAc,SAC5Blb,EAAMuZ,GAAe4B,cAGvB7a,EAAQqf,yBAA2BxB,EAASC,iBAC/CT,GAAa3d,EAEjB,IACF,IAEIM,EAAQqf,yBACVhC,GAAa3d,KAKnBvB,KAAK+gB,IAAI,kBAAkB,WACzB,IAAII,EAAQnhB,KAMPA,KAAK2gB,SAAY7B,GAAY9e,eAI3BA,KAAKohB,aACZphB,KAAK6D,WAAU,WACb,GAAKhC,EAAQ0Z,iBAAoB4F,EAAMzf,KAAQyf,EAAMzf,IAAI2f,aAMzD,IAAIC,EAAWC,aAAY,WACrBJ,EAAMzf,KAAkC,OAA3Byf,EAAMzf,IAAI2f,eAK3BG,cAAcF,GACdjF,EAAcxa,EAASsf,EAAM5f,MAAO,aACtC,GAAG,SAbD8a,EAAcxa,EAASsf,EAAM5f,MAAO,YAcxC,IACF,IAEIvB,KAAK8gB,WAMTjB,EAAsB7hB,SAAQ,SAAUyjB,GACtC1B,EAAOgB,IAAI,QAAQvgB,OAAOihB,IAAgB,WACxCpF,EAAcxa,EAAS7B,KAAKggB,GAAUyB,EACxC,GACF,GAlKA,CAmKF,EAEJ,CAEA,SAASC,GAAW7f,GASlB,OAPAA,EAAUxF,EAASwF,GAAWA,EAAU,CAAC,EAOlC,CACLkZ,QAASlZ,EAAQ,YAAc2Z,EAAeT,QAC9CC,UAAWnZ,EAAQ,cAAgB2Z,EAAeR,UAClDC,aAAcpZ,EAAQ,iBAAmB2Z,EAAeP,aACxDC,aAAcrZ,EAAQ,iBAAmB2Z,EAAeN,aACxDE,eAAgBvZ,EAAQ,mBAAqB2Z,EAAeJ,eAC5DD,oBAAqBtZ,EAAQ,wBAA0B2Z,EAAeL,oBACtEG,aAAc7B,EAAY5X,EAAQ,iBAAmB2Z,EAAeF,aAAezZ,EAAQ,gBAC3F0Z,gBAAiB9B,EAAY5X,EAAQ,oBAAsB2Z,EAAeD,gBAAkB1Z,EAAQ,mBACpGwZ,SAAUxZ,EAAQ,aAAe2Z,EAAeH,SAChD6F,0BAA2Brf,EAAQ,2BAGvC,CACA,SAAS8f,GAAW9f,GAClB,IAAI+f,EAAc,CAAC,EAEnB,IAAK,IAAItjB,KAAOuD,EACd+f,EAAYtjB,GAAOuD,EAAQvD,GAG7B,OAAOsjB,CACT,CAEA,SAASC,GAAcrI,EAAKlb,GAC1B,OAAKA,GAAQjC,EAASmd,IAIjBrd,EAAQqd,EAAIlb,MACfkb,EAAIlb,GAAO,IAGNkb,GAPErd,EAAQqd,GAAOA,EAAM,EAQhC,CAEA,IAAIsI,GAAkB,CAAC,CAAC,KAAM,SAAU,CAAC,KAAM,QAAS,CAAC,KAAM,QAAS,CAAC,KAAM,UAAW,CAAC,KAAM,WAC7FC,GAAkB,CAAC,CAAC,KAAM,KAAM,CAAC,KAAM,KAAM,CAAC,KAAM,KAAM,CAAC,KAAM,KAAO,CAAC,KAAM,MAEnF,SAASC,GAAOC,EAAMpgB,EAASqgB,EAAeC,GAC5C,IAAIjH,EAAerZ,EAAQqZ,aACvBkH,EAAwBF,EAAcG,SACtCA,OAAqC,IAA1BD,EAAmC,SAAUE,GAC1D,OAAOA,CACT,EAAIF,EACAG,EAAU,CAAC,EAEf,IAAK,IAAIjkB,KAAO2jB,EAAM,CACpB,IAAIlhB,EAAQkhB,EAAK3jB,GAEjB,GAAIH,GAASwd,EAAoBrd,GAC/BikB,EAAQjkB,GAAOyC,MADjB,CAOA,IAAIyhB,EAAa9G,EAAkB,GAEnC,GAAIwG,EAAcM,IAAerkB,GAAS+jB,EAAcM,GAAalkB,GAEnEikB,EAAQjkB,GAAOyC,MAFjB,CAMA,IAAI0hB,EAAQR,EAAK/G,GAEjB,GAAIuH,IACFD,EAAa9G,EAAkB,GAE3BwG,EAAcM,IAAeN,EAAcM,GAAYC,IAAUtkB,GAAS+jB,EAAcM,GAAYC,GAAQnkB,IAC9GikB,EAAQjkB,GAAOyC,OAqBnB,GAhBItE,EAASsE,GACXwhB,EAAQjkB,GAAO+jB,EAASthB,GACf5E,EAAQ4E,GACjBwhB,EAAQjkB,GAAOyC,EAAMwF,KAAI,SAAU+b,GACjC,OAAI5I,EAAa4I,GACRN,GAAOM,EAAGzgB,EAASqgB,GAAe,GAGpCG,EAASC,EAClB,IACS5I,EAAa3Y,GACtBwhB,EAAQjkB,GAAO0jB,GAAOjhB,EAAOc,EAASqgB,GAAe,GAErDK,EAAQjkB,GAAOyC,EAGbohB,EAAY,CACd,IAAIO,EAAaL,EAAS/jB,GAEtBA,IAAQokB,IACVH,EAAQG,GAAcH,EAAQjkB,UACvBikB,EAAQjkB,GAEnB,CApCA,CAVA,CA+CF,CAEA,OAAOikB,CACT,CACA,SAASI,GAAe9gB,EAASogB,EAAMW,GACrCA,EAAkBA,GAAmB,GAGrC,IAAIV,EAAgB,CAClBG,SAAU,SAAkBthB,GAC1B,OAAO6hB,EAAgBnd,QAAO,SAAUjJ,EAAKqmB,GAC3C,OAAOrmB,EAAImD,QAAQkjB,EAAI,GAAIA,EAAI,GACjC,GAAG9hB,EACL,GAcF,OAZA2a,EAAkB1d,SAAQ,SAAUwkB,EAAYzc,GAC9C,GAAc,IAAVA,EACF8b,GAAcI,EAAMO,QACf,GAAc,IAAVzc,EACT,IAAK,IAAIzH,KAAO2jB,EAAKO,GACnBX,GAAcI,EAAKO,GAAalkB,GAIpC4jB,EAAcM,GAAcP,EAAKO,EACnC,IAEOR,GAAOC,EAAMpgB,EAASqgB,EAC/B,CAEA,SAASY,GAAcxG,EAAMyG,EAAYC,EAAUC,GACjD,IAAIta,EAAY2T,EAAK3T,UACjBwS,EAAsBmB,EAAKnB,oBAC3BC,EAAiBkB,EAAKlB,eAE1B,OAAiB,IAAb4H,IAAyD,IAApCD,EAAW5H,KAKhC1B,EAAYuJ,IAAaD,EAAW5H,KACtC6H,EAAWD,EAAW5H,GACtB4H,EAAW5H,IAAuB,GAI/B6H,GAMDvJ,EAAYwJ,KACdA,EAAQF,EAAW3H,IAGrB2H,EAAW3H,GAAkBle,EAAW8lB,GAAYA,EAASjmB,KAAK4L,EAAWsa,GAASD,EAASrjB,QAAQ,MAAOsjB,IACvG,WATEF,EAAW5H,IACX,GASX,CAEA,SAAS+H,GAAY5G,EAAM9d,EAAQI,GACjC,IAAI+J,EAAY2T,EAAK3T,UACjBuS,EAAeoB,EAAKpB,aACpBC,EAAsBmB,EAAKnB,oBAC3BC,EAAiBkB,EAAKlB,eAItB+H,EAAc,GAElB,OAAK3kB,EAAO5E,QAAWgF,EAAOhF,QAI9B4E,EAAOR,SAAQ,SAAUolB,EAAYC,GAEnC,GAAKD,EAAWlI,GAAhB,CAKA,IAAIoI,EAAc/F,GAAU3e,GAAQ,SAAUhB,GAC5C,OAAOA,EAAKsd,KAAkBkI,EAAWlI,EAC3C,IACIqI,EAAa3kB,EAAO0kB,GAExB,IAAqB,IAAjBA,EAAJ,CAQA,GAAIlI,KAAkBmI,QAA6CtmB,IAA/BsmB,EAAWnI,IAAiC,cAAemI,QAAuCtmB,IAAzBsmB,EAAWC,UAItH,OAHAL,EAAYjlB,KAAKklB,QAEjBxkB,EAAO+V,OAAO2O,EAAa,GAM7B,GAAmC,OAA/BC,EAAWnI,IAAqD,OAAzBmI,EAAWC,UAAtD,CAOA,IAAIC,EAAiBL,EAAWjI,GAEhC,GAAKsI,EAAL,CAIA,IAAIC,EAAiBH,EAAWpI,GAEhC,IAAKuI,EASH,OAPAZ,GAAc,CACZna,UAAWA,EACXwS,oBAAqBA,EACrBC,eAAgBA,GACfmI,EAAYE,QAEfF,EAAWP,UAAW,GAInBO,EAAWnI,IAEd0H,GAAc,CACZna,UAAWA,EACXwS,oBAAqBA,EACrBC,eAAgBA,GACfmI,OAAYtmB,EAAWmmB,EAAWhI,GAtBvC,CAPA,MAFExc,EAAO+V,OAAO2O,EAAa,EAhB7B,MAFEH,EAAYjlB,KAAKklB,EARnB,MAFED,EAAYjlB,KAAKklB,EA6DrB,IACOD,EAAY3iB,OAAO5B,IApEjBukB,CAqEX,CACA,IAAIQ,IAAe,EACnB,SAASplB,GAAMC,EAAQI,EAAQiD,GAyB7B,OAxBAA,EAAUA,GAAW,CAAC,OAID5E,IAAjB2B,EAAOqb,cACFrb,EAAOqb,MAGhB2B,EAAsB5d,SAAQ,SAAU4lB,GACtC,GAAKhlB,EAAOglB,GAIZ,IAAK,IAAItlB,KAAOM,EAAOglB,GACjBtlB,KAAOM,EAAOglB,SAAqC3mB,IAAzB2B,EAAOglB,GAAStlB,KACxCH,GAASge,EAAuB7d,KAASqlB,KAC3C7nB,EAAK,8IACL6nB,IAAe,UAGV/kB,EAAOglB,GAAStlB,GAG7B,IACO,IAAUE,EAAQI,EAAQ,CAC/BilB,WAAY,SAAoB7c,EAAGiS,GACjC,OAAOiK,GAAYrhB,EAASmF,EAAGiS,EACjC,GAEJ,CAEA,SAAS6K,GAAqBjiB,EAAS8G,GACrC,OAAOob,GAAmBliB,GAAW,CAAC,EAAG8G,EAAWqR,EACtD,CAgBA,SAAS+J,GAAmBliB,EAAS8G,EAAW4J,GAG9C,GAFAA,EAASA,GAAU,CAAC,EAEhB5J,EAAUqb,UACZ,OAAOzR,EAGT1Q,EAAUA,GAAW,CAAC,EACtB,IAAIoiB,EAAWpiB,EACXkZ,EAAUkJ,EAASlJ,QACnB8F,EAAYlY,EAAUkY,UACtBrf,EAAWmH,EAAUnH,SACrBgf,EAAY7X,EAAU6X,UAE1B,GAAIhf,EAASuZ,GAAU,CAKrB,IAAInW,EAAOic,GAAarf,EAASuZ,GAI7B1e,EAASuI,KACX2N,EAAShU,GAAMgU,EAAQ3N,EAAM/C,GAEjC,CAeA,OAZI2e,EAAU5mB,QACZ4mB,EAAUxiB,SAAQ,SAAUkmB,GAGrBnF,GAAiBmF,KAItB3R,EAASwR,GAAmBliB,EAASqiB,EAAgB3R,GACvD,IAGKA,CACT,CAEA,IAAI4R,GAAY,GAChB,SAASC,GAAcnjB,GACrB,MAAsC,cAA9BA,GAAKyc,UAAU2G,UACzB,CACA,SAASC,GAAY9F,EAAOzB,GACD,IAArBpjB,UAAUC,SACZmjB,EAAWyB,EACXA,EAAQ,IAGV2F,GAAUjmB,KAAK,CAACsgB,EAAOzB,GACzB,CACA,SAASwH,GAAajI,EAAMjY,EAAMwZ,EAAM2G,GACtC,IAAItJ,EAAeoB,EAAKpB,aACpBuJ,GAAmB,EAUvB,OATA5G,EAAK7f,SAAQ,SAAUoG,GAChBA,EAAI8W,IAAkB9W,EAAI2Y,WAI/B0H,GAAmB,EACnBH,GAAY,GAAG9jB,OAAO6D,EAAM,UAAU7D,OAAO0a,EAAc,MAAO1a,OAAO4D,EAAI8W,GAAe,MAAQ9W,EAAI2Y,UAC1G,IAEKyH,GAAqBC,EAInBC,KAHED,CAIX,CACA,SAASC,KACHN,KACFO,KAOFjH,SAASkH,mBAAqB,WAC5BD,IACF,CACF,CACA,SAASA,GAAeE,GACtBV,GAAUnmB,SAAQ,SAAUvE,GAG1B,IAAI+kB,EAAQ/kB,EAAK,GACbsjB,EAAWtjB,EAAK,GAChBqrB,EAAW,GAAGtkB,OAAOge,EAAO,4BAC5BuG,EAAW,GAEVF,IACHE,EAAWvH,GAAQC,GAAcqH,KAG/BD,GAAgBA,EAAavR,QAAQwR,KACvCC,EAAW,CAACF,IAGdE,EAAS/mB,SAAQ,SAAUgnB,GAKzB,IAAIA,EAAQC,QAAZ,CAIA,IAAIC,EAAS,WAIXF,EAAQC,SAAU,EAMlBrG,GAAgBoG,EAAS,UACzBjI,EAASiI,EACX,EAUIA,EAAQG,OACVD,IAIGF,EAAQI,UACXJ,EAAQI,SAAU,EAClBJ,EAAQtpB,iBAAiB,OAAQwpB,GA/BnC,CAiCF,GACF,GACF,CAIA,IAgTIG,GAhTAC,GAAe,CAAC,EAQpB,SAASC,GAAgBjH,EAAOzc,EAASwC,EAAMwB,EAAOzB,GACpD,IAAIkY,EAAOza,GAAW,CAAC,EACnBmZ,EAAYsB,EAAKtB,UAEjBwK,EAAoBphB,EAAIqhB,aAAazK,GAErCwK,IACFF,GAAajhB,GAAQ9G,KAAKC,MAAMkoB,UAAUF,IAC1C5G,GAAgBxa,EAAK4W,IAGvB,IAAIpW,EAAO0gB,GAAajhB,IAAS,CAAC,EAC9BshB,EAAW,GAGf,IAAK,IAAIC,KAAQhhB,OACI3H,IAAf2H,EAAKghB,IAAuBtH,KAAS1Z,EAAKghB,KAC5CD,EAASznB,KAAK0nB,GAET/f,EAAM+f,WACFhhB,EAAKghB,GAAMtH,IAKxB,IAAK,IAAIuH,KAAShgB,EAAO,CACvB,IAAIigB,EAAWlhB,EAAKihB,GAEfC,GAAYA,EAASxH,KAAWzY,EAAMggB,KACzCF,EAASznB,KAAK2nB,QAEO5oB,IAAjB4I,EAAMggB,KACRjhB,EAAKihB,GAASjhB,EAAKihB,IAAU,CAAC,EAC9BjhB,EAAKihB,GAAOvH,GAASzY,EAAMggB,IAGjC,CAEA,IAAK,IAAI1Q,EAAK,EAAG4Q,EAAYJ,EAAUxQ,EAAK4Q,EAAUnsB,OAAQub,IAAM,CAClE,IAAI6Q,EAASD,EAAU5Q,GACnB8Q,EAAYrhB,EAAKohB,GACjBE,EAAa,GAEjB,IAAK,IAAIC,KAAUF,EACjB7pB,MAAMQ,UAAUsB,KAAKrE,MAAMqsB,EAAY,GAAG1lB,OAAOylB,EAAUE,KAG7D,GAAID,EAAWtsB,OAAQ,CACrB,IAAIwsB,EAAYjoB,GAASge,EAAuB6J,IAAWE,EAAWG,KAAKvtB,SAAW,GAAKotB,EAAW/gB,QAAO,SAAUmd,GACrH,YAAarlB,IAANqlB,CACT,IAAGvR,KAAK,KACR3M,EAAIzC,aAAaqkB,EAAQI,EAC3B,MACExH,GAAgBxa,EAAK4hB,EAEzB,CAEAV,GAAajhB,GAAQO,CACvB,CAOA,SAAS0hB,GAAYrM,IACdA,GAAmB,KAAVA,KAIdyD,SAASzD,MAAQA,EACnB,CAWA,SAASsM,GAAUjI,EAAOzc,EAASwC,EAAMwZ,EAAM2I,EAAMxI,GACnD,IAAI1B,EAAOza,GAAW,CAAC,EACnBmZ,EAAYsB,EAAKtB,UACjBE,EAAeoB,EAAKpB,aAEpBuL,EAAiBvK,EAAqB3Q,QAC1Ckb,EAAevoB,KAAKgd,GACpB,IAAIwL,EAAc,GACdC,EAAe,CACjBrI,MAAOA,EACPtD,UAAWA,EACX3W,KAAMA,EACN6W,aAAcA,GAEZ0L,EAAkB,CACpBJ,KAAMtI,GAAcsI,EAAMG,GAC1B1I,MAAOC,GAAcF,EAAM2I,EAAc,CACvC1I,OAAO,IAETD,KAAME,GAAcF,EAAM2I,EAAc,CACtC3I,MAAM,KAIV,GAAIH,EAAKjkB,OAAS,EAAG,CAInB,IAAIitB,EAAQ,GACZhJ,EAAOA,EAAK1Y,QAAO,SAAU2hB,GAC3B,IAAIC,EAAIxpB,KAAKE,UAAUqpB,GACnB7R,GAAO9W,GAAS0oB,EAAOE,GAE3B,OADAF,EAAM3oB,KAAK6oB,GACJ9R,CACT,GACF,CAEA4I,EAAK7f,SAAQ,SAAUoG,GACrB,IAAIA,EAAI4iB,KAAR,CAIA,IAAIC,EAAavJ,SAASwJ,cAAc7iB,GAEnCD,EAAI+iB,MACPF,EAAWtlB,aAAaqZ,EAAWsD,GAGrC3hB,OAAO4C,KAAK6E,GAAKpG,SAAQ,SAAU4nB,GAEjC,IAAIznB,GAAS8d,EAAe2J,GAI5B,GAAa,cAATA,EAKJ,GAAa,SAATA,EAKJ,GAAa,YAATA,EAWJ,GAAa,aAATA,EAAJ,CAQA,IAAIC,EAAQ1nB,GAASsoB,EAAgBb,GAAQ,QAAQplB,OAAOolB,GAAQA,EAEhEwB,EAAqBjpB,GAASge,EAAuByJ,GAEzD,IAAIwB,GAAuBhjB,EAAIwhB,GAA/B,CAIA,IAAI7kB,EAAQqmB,EAAqB,GAAKhjB,EAAIwhB,GAC1CqB,EAAWtlB,aAAakkB,EAAO9kB,EAH/B,CARA,MALEkmB,EAAW/B,OAAS,WAClB,OAAO9gB,EAAIwhB,GAAMqB,EACnB,OAbIA,EAAWI,WAEbJ,EAAWI,WAAWC,QAAUljB,EAAIkjB,QAEpCL,EAAWM,YAAY7J,SAAS8J,eAAepjB,EAAIkjB,eATrDL,EAAWzD,UAAYjmB,KAAKE,UAAU2G,EAAIqjB,WAL1CR,EAAWzD,UAAYpf,EAAIof,SAsC/B,IACA,IAEIkE,EAFAC,EAAcf,EAAgB7I,GAAe3Z,IAG7CwjB,EAAkBD,EAAYtB,MAAK,SAAUwB,EAAa9hB,GAE5D,OADA2hB,EAAgB3hB,EACTkhB,EAAWa,YAAYD,EAChC,IAEID,IAAoBF,GAAmC,IAAlBA,GACvCC,EAAYhT,OAAO+S,EAAe,GAElChB,EAAYxoB,KAAK+oB,EAjEnB,CAmEF,IACA,IAAIU,EAAc,GAElB,IAAK,IAAII,KAASnB,EAChBxqB,MAAMQ,UAAUsB,KAAKrE,MAAM8tB,EAAaf,EAAgBmB,IAqB1D,OAjBAJ,EAAY3pB,SAAQ,SAAUgnB,GAC5BA,EAAQ7G,WAAW6J,YAAYhD,EACjC,IAEA0B,EAAY1oB,SAAQ,SAAUgnB,GACxBA,EAAQ1E,aAAa,aACvBtC,EAAKuJ,YAAYvC,GAIfA,EAAQ1E,aAAa,cACvBtC,EAAKiK,aAAajD,EAAShH,EAAKkK,YAIlC1B,EAAKe,YAAYvC,EACnB,IACO,CACLmD,QAASR,EACTS,QAAS1B,EAEb,CAQA,SAAS2B,GAAqB/J,EAAOzc,EAASymB,GAC5CzmB,EAAUA,GAAW,CAAC,EACtB,IAAIoiB,EAAWpiB,EACXoZ,EAAegJ,EAAShJ,aACxBI,EAAW4I,EAAS5I,SAEpBwC,EAAO,CAAC,EACR0C,EAAU3C,GAAOC,EAAM,QAE3B,GAAIS,IAAUjD,GAAYkF,EAAQD,aAAarF,GAAe,CAE5D2D,GAAgB2B,EAAStF,GAEzB,IAAIsN,GAAmB,EAWvB,OAVA1M,EAAqB7d,SAAQ,SAAUqG,GACjCikB,EAAQjkB,IAASkgB,GAAa1iB,EAASwC,EAAMikB,EAAQjkB,MACvDkkB,GAAmB,EAEvB,IAEIA,GACF7D,MAGK,CACT,CAGA,IAAI8D,EAAY,CAAC,EACbC,EAAc,CAAC,EAEnB,IAAK,IAAIpkB,KAAQikB,EAEf,IAAInqB,GAASwd,EAAoBtX,GAIjC,GAAa,UAATA,GAMJ,GAAIlG,GAASyd,EAAuBvX,GAApC,CACE,IAAIqkB,EAAUrkB,EAAKmJ,OAAO,EAAG,GAC7B+X,GAAgBjH,EAAOzc,EAASwC,EAAMikB,EAAQjkB,GAAOuZ,GAAOC,EAAM6K,GAEpE,MAGA,GAAKvsB,EAAQmsB,EAAQjkB,IAArB,CAIA,IAAIskB,EAAapC,GAAUjI,EAAOzc,EAASwC,EAAMikB,EAAQjkB,GAAOuZ,GAAOC,EAAM,QAASD,GAAOC,EAAM,SAC/FsK,EAAUQ,EAAWR,QACrBC,EAAUO,EAAWP,QAErBA,EAAQxuB,SACV4uB,EAAUnkB,GAAQ+jB,EAClBK,EAAYpkB,GAAQ8jB,EARtB,OAbE7B,GAAYgC,EAAQrO,OAyBxB,MAAO,CACLuO,UAAWA,EACXC,YAAaA,EAEjB,CAGA,SAASG,GAAOrM,EAAQ+B,EAAOzc,GAC7B,MAAO,CACLoQ,IAAK,SAAayN,GAChB,OAAOmJ,GAAYtM,EAAQ+B,EAAOzc,EAAS6d,EAC7C,EACAhiB,OAAQ,WACN,OAAOorB,GAAevM,EAAQ+B,EAAOzc,EACvC,EAEJ,CACA,SAASgnB,GAAYtM,EAAQ+B,EAAOzc,EAAS6d,GAE3C,GAAInD,GAAUA,EAAO7a,IACnB,OAAO2mB,GAAqB/J,EAAOzc,EAAS6d,GAK9C2F,GAAeA,IAAgB,CAAC,EAChCA,GAAa/G,GAASoB,CACxB,CACA,SAASoJ,GAAevM,EAAQ+B,EAAOzc,GACrC,GAAI0a,GAAUA,EAAO7a,IAAK,CACxB,IAGIqnB,EAHAlL,EAAO,CAAC,EAERmL,EAAYnQ,EAA2B+C,GAG3C,IACE,IAAKoN,EAAU/P,MAAO8P,EAAQC,EAAU7nB,KAAK+X,MAAO,CAClD,IAAI7U,EAAO0kB,EAAMhoB,MACb2nB,EAAUrkB,EAAKmJ,OAAO,EAAG,GAC7B+X,GAAgBjH,EAAOzc,EAASwC,EAAM,CAAC,EAAGuZ,GAAOC,EAAM6K,GACzD,CACF,CAAE,MAAO1sB,GACPgtB,EAAU3pB,EAAErD,EACd,CAAE,QACAgtB,EAAU7P,GACZ,CAEA,OAAOuF,GAAsB7c,EAASyc,EACxC,CAEI+G,GAAa/G,YACR+G,GAAa/G,GACpB2K,KAEJ,CACA,SAASC,KACP,OAAO7D,EACT,CACA,SAAS4D,GAAkBE,IACrBA,GAAUxsB,OAAO4C,KAAK8lB,IAAczrB,SACtCyrB,QAAepoB,EAEnB,CAUA,SAASmsB,GAAYvnB,EAASogB,EAAMW,EAAiBja,GACnD9G,EAAUA,GAAW,CAAC,EACtB+gB,EAAkBA,GAAmB,GACrC,IAAIqB,EAAWpiB,EACXqZ,EAAe+I,EAAS/I,aAyC5B,OAtCI+G,EAAKhI,QACPgI,EAAK/H,WAAa+H,EAAKhI,OAIrBgI,EAAK9H,eAAwC,OAAvB8H,EAAK9H,eAC7B2I,GAAc,CACZna,UAAWA,EACXyS,eAAgB,SACf6G,EAAMA,EAAK9H,cAAe8H,EAAK/H,YAAc,IAK9C+H,EAAK1H,OACP0H,EAAK1H,KAAO5d,OAAO4C,KAAK0iB,EAAK1H,MAAM3gB,OAAS,CAACqoB,EAAK1H,MAAQ,IAGxD0H,EAAKzH,OAEPyH,EAAKzH,KAAOyH,EAAKzH,KAAKrV,QAAO,SAAUkkB,EAAUtjB,EAAOpI,GACtD,IAAI2rB,IAAYD,EAASnO,GAEzB,IAAKoO,EACH,OAAO,EAGT,IAAIC,EAAqBxjB,IAAUwX,GAAU5f,GAAK,SAAUC,GAC1D,OAAOA,EAAKsd,KAAkBmO,EAASnO,EACzC,IACA,OAAOqO,CACT,IAEAtH,EAAKzH,KAAKxc,SAAQ,SAAUwrB,GAC1B,OAAO1G,GAAcjhB,EAAS2nB,EAChC,KAGK7G,GAAe9gB,EAASogB,EAAMW,EACvC,CAaA,SAAS9F,GAAQP,EAAQ1a,GAGvB,GAFAA,EAAUA,GAAW,CAAC,GAEjB0a,EAAOzB,GAEV,OADAf,IACO,CAAC,EAIV,IAAI0P,EAAU3F,GAAqBjiB,EAAS0a,GACxCmD,EAAW0J,GAAYvnB,EAAS4nB,EAAS1H,GAAiBxF,GAC1D+B,EAAQ/B,EAAOzB,GAAewD,MAC9BT,EAAOwK,GAAqB/J,EAAOzc,EAAS6d,GAE5C7B,GAAQ3gB,EAAWwiB,EAASgK,WAC9BhK,EAASgK,QAAQhK,EAAU7B,EAAK2K,UAAW3K,EAAK4K,aAChD5K,EAAO,CACL8L,UAAW9L,EAAK2K,UAChBoB,YAAa/L,EAAK4K,cAItB,IAAIpD,EAAe6D,KAEnB,GAAI7D,EAAc,CAChB,IAAK,IAAIwE,KAAmBxE,EAC1BgD,GAAqBwB,EAAiBhoB,EAASwjB,EAAawE,WACrDxE,EAAawE,GAGtBZ,IAAkB,EACpB,CAEA,MAAO,CACLxhB,GAAI8U,EACJmD,SAAUA,EAEV7B,KAAMA,EAEV,CAUA,SAASiM,GAAmBjoB,EAASwC,EAAMO,EAAM0X,GAC/C,IAAIyN,EAAkBzN,EAAKyN,gBAEvB3L,EAAQvc,GAAW,CAAC,EACpBmZ,EAAYoD,EAAMpD,UAClBC,EAAemD,EAAMnD,aAErB+O,EAAe,GAEnB,IAAK,IAAIpE,KAAQhhB,EAAM,CACrB,IAAIkhB,EAAWlhB,EAAKghB,GAChBM,EAAa,GAEjB,IAAK,IAAI5H,KAASwH,EAChBI,EAAWhoB,KAAKrE,MAAMqsB,EAAYjO,EAAmB,GAAGzX,OAAOslB,EAASxH,MAGtE4H,EAAWtsB,SACbowB,GAAgB7N,EAAsBhe,SAASynB,IAASM,EAAWG,KAAKvtB,SAAW,GAAG0H,OAAOolB,GAAQ,GAAGplB,OAAOolB,EAAM,MAAOplB,OAAO0lB,EAAWnV,KAAK,KAAM,KACzJiZ,GAAgB,IAEpB,CAMA,OAJIA,IACFA,GAAgB,GAAGxpB,OAAOwa,EAAW,MAAOxa,OAAOypB,UAAU1sB,KAAKE,UAAUmH,IAAQ,MAGzE,cAATP,GAAwB0lB,EACnB,GAAGvpB,OAAOya,GAAcza,OAAOwpB,EAAe,IAAM,IAAIxpB,OAAOwpB,GAGjEA,CACT,CASA,SAASE,GAAeroB,EAASwC,EAAMO,EAAMulB,GAC3C,IAAI7N,EAAO6N,GAAoB,CAAC,EAC5BC,EAAK9N,EAAK8N,GAEd,OAAKxlB,EAIE,IAAIpE,OAAO6D,EAAM,KAAK7D,OAAOoE,EAAM,MAAMpE,OAAO6D,EAAM,KAAK7D,OAAO4pB,EAAK,KAAO,IAH5E,EAIX,CAUA,SAASC,GAAaxoB,EAASwC,EAAMwZ,EAAMsM,GACzC,IAAI7N,EAAOza,GAAW,CAAC,EACnBwZ,EAAWiB,EAAKjB,SAChBL,EAAYsB,EAAKtB,UACjBE,EAAeoB,EAAKpB,aAEpBkD,EAAQ+L,GAAoB,CAAC,EAC7B7L,EAAQF,EAAME,MACdgM,EAAclM,EAAMmM,MACpBA,OAAwB,IAAhBD,GAAgCA,EACxCE,EAAapM,EAAMJ,KACnBA,OAAsB,IAAfwM,GAAgCA,EACvCC,EAAcrM,EAAMH,MACpBA,OAAwB,IAAhBwM,GAAiCA,EACzCC,EAAWtM,EAAMgM,GACjBA,OAAkB,IAAbM,GAA8BA,EAEnCjE,EAAiB,CAACvL,GAAc1a,OAAOyX,EAAmBiE,IAE9D,OAAK2B,GAASA,EAAKjkB,OAKZikB,EAAKpY,QAAO,SAAUklB,EAASvmB,GACpC,GAAIA,EAAI4iB,KACN,OAAO2D,EAGT,IAAIC,EAAUjuB,OAAO4C,KAAK6E,GAE1B,GAAuB,IAAnBwmB,EAAQhxB,OACV,OAAO+wB,EAGT,GAAI7xB,QAAQsL,EAAI4Z,QAAUA,GAAQllB,QAAQsL,EAAI6Z,SAAWA,EACvD,OAAO0M,EAGT,IAAI9kB,EAAQzB,EAAI+iB,KAAO,GAAK,IAAI3mB,OAAOwa,EAAW,MAAOxa,OAAO8d,KAAoB,IAAViM,EAAkB,IAAMlP,GAAW,KAE7G,IAAK,IAAIuK,KAAQxhB,EAEf,IAAI4X,EAA2B7d,SAASynB,KAAS3J,EAAc9d,SAASynB,GAIxE,GAAa,aAATA,EAAJ,CAMA,IAAIiF,EAAS,GAETpE,EAAetoB,SAASynB,KAC1BiF,EAAS,SAGX,IAAIC,GAAiBD,GAAU1O,EAAsBhe,SAASynB,GAE1DkF,IAAkB1mB,EAAIwhB,KAI1B/f,GAAS,IAAIrF,OAAOqqB,GAAQrqB,OAAOolB,IAASkF,EAAgB,GAAK,KAAMtqB,OAAO4D,EAAIwhB,GAAO,MAfzF,MAFE/f,GAAS,0BAoBb,IAAI4hB,EAAO,GAEPrjB,EAAIqjB,OACNA,EAAOlqB,KAAKE,UAAU2G,EAAIqjB,OAI5B,IAAIsD,EAAU3mB,EAAIof,WAAapf,EAAIkjB,SAAWG,EAG1CuD,GAAalP,EAAkB3d,SAASkG,GAExC4mB,EAAaD,GAAajP,EAAqB5d,SAASkG,GAE5D,MAAO,GAAG7D,OAAOmqB,EAAS,KAAKnqB,OAAO6D,GAAM7D,OAAOqF,GAAOrF,QAAQyqB,GAAcD,EAAY,IAAM,GAAI,MAAQC,EAAa,GAAGzqB,OAAOuqB,EAAS,MAAMvqB,OAAO6D,EAAM,KAAO,KAAO+lB,EAAK,KAAO,GAC7L,GAAG,IA/DM,EAgEX,CAUA,SAASc,GAAuBrpB,EAAS6d,EAAUyL,GACjD,IAAIC,EAAiB,CACnBxmB,KAAM8a,EACN2L,eAAWpuB,EACXquB,QAAS,SAAiBhN,EAAOoB,GAC/B1f,KAAKqrB,UAAYrrB,KAAKqrB,WAAa,CAAC,EACpCrrB,KAAKqrB,UAAU/M,GAASoB,CAC1B,EACA6L,cAAe,SAAuBC,GACpC,IAAIC,EAAIzrB,KAAK0rB,UAEb,OAAQF,EAAKxN,MAAQwN,EAAKvN,MAAQ,GAAKwN,EAAExR,MAAM5U,KAAKmmB,IAASC,EAAEjR,KAAKnV,KAAKmmB,GAAQC,EAAElR,KAAKlV,KAAKmmB,GAAQC,EAAEjY,KAAKnO,KAAKmmB,GAAQC,EAAEhR,MAAMpV,KAAKmmB,GAAQC,EAAE/Q,OAAOrV,KAAKmmB,GAAQC,EAAE9Q,SAAStV,KAAKmmB,EACtL,EACAE,UAAW,CACTlF,KAAM,SAAc4D,GAClB,OAAOgB,EAAeG,cAAcxT,EAAeA,EAAe,CAAC,EAAGoT,GAAsB,CAAC,EAAG,CAC9Ff,GAAIA,IAER,EACAuB,YAAa,SAAqBvB,GAChC,OAAOgB,EAAeG,cAAcxT,EAAeA,EAAe,CAAC,EAAGoT,GAAsB,CAAC,EAAG,CAC9Ff,GAAIA,EACJnM,OAAO,IAEX,EACA2N,WAAY,SAAoBxB,GAC9B,OAAOgB,EAAeG,cAAcxT,EAAeA,EAAe,CAAC,EAAGoT,GAAsB,CAAC,EAAG,CAC9Ff,GAAIA,EACJpM,MAAM,IAEV,IAIA6N,EAAQ,SAAexnB,GACzB,GAAIsX,EAAmBxd,SAASkG,GAC9B,MAAO,WAGT+mB,EAAeM,UAAUrnB,GAAQ,CAC/BgB,KAAM,SAAcymB,GAClB,IAAI/B,GAAoC,IAAlB+B,EAKtB,GAJAA,EAAgB/T,EAAeA,EAAe,CAC5CgS,gBAAiBA,GAChBoB,GAAsBW,GAEZ,UAATznB,EACF,OAAO6lB,GAAeroB,EAASwC,EAAM+mB,EAAexmB,KAAKP,GAAOynB,GAGlE,GAAIlQ,EAAsBzd,SAASkG,GAAO,CACxC,IAAI0nB,EAAgB,CAAC,EACjBnnB,EAAOwmB,EAAexmB,KAAKP,GAE/B,GAAIO,EAAM,CACR,IAAI0Z,GAAgC,IAAxBwN,EAAcvB,MAAkB,IAAM1oB,EAAQwZ,SAE1D,IAAK,IAAIuK,KAAQhhB,EACfmnB,EAAcnG,GAAQvO,EAAgB,CAAC,EAAGiH,EAAO1Z,EAAKghB,GAE1D,CAEA,GAAIwF,EAAeC,UACjB,IAAK,IAAIlF,KAAUiF,EAAeC,UAAW,CAC3C,IAAIW,EAAQZ,EAAeC,UAAUlF,GAAQ9hB,GAE7C,GAAI2nB,EACF,IAAK,IAAInG,KAASmG,EAChBD,EAAclG,GAAS9N,EAAeA,EAAe,CAAC,EAAGgU,EAAclG,IAAS,CAAC,EAAGxO,EAAgB,CAAC,EAAG8O,EAAQ6F,EAAMnG,IAG5H,CAGF,OAAOiE,GAAmBjoB,EAASwC,EAAM0nB,EAAeD,EAC1D,CAEA,IAAIzgB,EAAMgf,GAAaxoB,EAASwC,EAAM+mB,EAAexmB,KAAKP,GAAOynB,GAEjE,GAAIV,EAAeC,UACjB,IAAK,IAAIY,KAAWb,EAAeC,UAAW,CAC5C,IAAIa,EAASd,EAAeC,UAAUY,GAAS5nB,GAC3C8nB,EAAW9B,GAAaxoB,EAASwC,EAAM6nB,EAAQnU,EAAe,CAChEuG,MAAO2N,GACNH,IACHzgB,EAAM,GAAG7K,OAAO6K,GAAK7K,OAAO2rB,EAC9B,CAGF,OAAO9gB,CACT,EAEJ,EAEA,IAAK,IAAIhH,KAAQ2V,EACJ6R,EAAMxnB,GAKnB,OAAO+mB,CACT,CAUA,SAASgB,GAAO7P,EAAQ1a,EAASiqB,GAE/B,IAAKvP,EAAOzB,GAEV,OADAf,IACO,CAAC,EAIV,IAAI0P,EAAU3F,GAAqBjiB,EAAS0a,GACxCmD,EAAW0J,GAAYvnB,EAAS4nB,EAAS3H,GAAiBvF,GAE1D6O,EAAiBF,GAAuBrpB,EAAS6d,EAAUoM,GAE3DzG,EAAe6D,KAEnB,GAAI7D,EAAc,CAChB,IAAK,IAAIwE,KAAmBxE,EAC1B+F,EAAeE,QAAQzB,EAAiBxE,EAAawE,WAC9CxE,EAAawE,GAGtBZ,IAAkB,EACpB,CAEA,OAAOmC,EAAeM,SACxB,CAEA,SAAS7O,GAAMhb,GACbA,EAAUA,GAAW,CAAC,EAOtB,IAAIN,EAAQvB,KAAKuB,MACjB,MAAO,CACLogB,WAAY,WACV,OAAOA,GAAW9f,EACpB,EACA6f,WAAY,SAAoB2K,GAC9B,IAAIC,EAAgB,0BAEhBD,GAAcA,EAAWC,KAC3BzqB,EAAQqf,0BAA4BmL,EAAWC,GAC/CpN,GAAa3d,IAGf,IAAIgrB,EAAkB,eAEtB,GAAIF,GAAcE,KAAmBF,EAAY,CAC/C,IAAI/Q,EAAepR,SAASmiB,EAAWE,IAElCzgB,MAAMwP,KACTzZ,EAAQyZ,aAAeA,EAE3B,CAEA,IAAIkR,EAAqB,kBAErBH,GAAcG,KAAsBH,IACtCxqB,EAAQ0Z,kBAAoB8Q,EAAWG,GAE3C,EACA1P,QAAS,WACP,OAAOA,GAAQvb,EAAOM,EACxB,EACAuqB,OAAQ,SAAkBN,GACxB,OAAQM,GAAO7qB,EAAOM,EAASiqB,EACjC,EACA9M,MAAO,WACL,OAAOA,GAAMzd,EACf,EACA0d,OAAQ,WACN,OAAOA,GAAO1d,EAChB,EACAqnB,OAAQ,SAAkBtK,GACxB,OAAOsK,GAAOrnB,EAAO+c,EAAOzc,EAC9B,EAEJ,CAEA,SAAS4qB,GAAShD,EAAS5nB,GACzBA,EAAU6f,GAAW7f,GACrB,IAAI6d,EAAW0J,GAAYvnB,EAAS4nB,EAAS3H,IACzCsJ,EAAiBF,GAAuBrpB,EAAS6d,GACrD,OAAO0L,EAAeM,SACxB,CAOA,SAAStjB,GAAQtI,EAAK+B,GAChB/B,EAAI4sB,sBAIR5sB,EAAI4sB,qBAAsB,EAC1B7qB,EAAU6f,GAAW7f,GAErB/B,EAAIlD,UAAUigB,MAAQ,WACpB,OAAOA,GAAM9f,KAAKiD,KAAM6B,EAC1B,EAEA/B,EAAI2I,MAAMmX,GAAY9f,EAAK+B,IAC7B,CAEA,IAAIkE,GAAQ,CACVwC,QAASA,EACTH,QAASA,GACTqkB,SAAU,SAAoB/M,EAAU7d,GACtC,OAAQ4qB,GAAS/M,EAAU7d,EAC7B,EACAid,YAAaA,IAGf,M","sources":["webpack://horto-sanctorum-v2/./node_modules/register-service-worker/index.js","webpack://horto-sanctorum-v2/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://horto-sanctorum-v2/./node_modules/vue-meta/dist/vue-meta.esm.js"],"sourcesContent":["// Register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\nvar isLocalhost = function () { return Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n); }\n\nvar waitWindowLoad\n// https://github.com/yyx990803/register-service-worker/pull/33#discussion_r394181861\nif (typeof window !== 'undefined') {\n // Typically, a browser that supports `serviceWorker` should also have supported\n // `Promise`. But as this package can be used in environments without service\n // worker support (in that case it would do nothing), there's a chance that\n // `Promise` does not exist. So we must check for its existence first.\n if (typeof Promise !== 'undefined') {\n waitWindowLoad = new Promise(function (resolve) { return window.addEventListener('load', resolve); })\n } else {\n waitWindowLoad = { then: function (cb) { return window.addEventListener('load', cb); } }\n }\n}\n\nexport function register (swUrl, hooks) {\n if ( hooks === void 0 ) hooks = {};\n\n var registrationOptions = hooks.registrationOptions; if ( registrationOptions === void 0 ) registrationOptions = {};\n delete hooks.registrationOptions\n\n var emit = function (hook) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n if (hooks && hooks[hook]) {\n hooks[hook].apply(hooks, args)\n }\n }\n\n if ('serviceWorker' in navigator) {\n waitWindowLoad.then(function () {\n if (isLocalhost()) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, emit, registrationOptions)\n navigator.serviceWorker.ready.then(function (registration) {\n emit('ready', registration)\n }).catch(function (error) { return handleError(emit, error); })\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl, emit, registrationOptions)\n navigator.serviceWorker.ready.then(function (registration) {\n emit('ready', registration)\n }).catch(function (error) { return handleError(emit, error); })\n }\n })\n }\n}\n\nfunction handleError (emit, error) {\n if (!navigator.onLine) {\n emit('offline')\n }\n emit('error', error)\n}\n\nfunction registerValidSW (swUrl, emit, registrationOptions) {\n navigator.serviceWorker\n .register(swUrl, registrationOptions)\n .then(function (registration) {\n emit('registered', registration)\n if (registration.waiting) {\n emit('updated', registration)\n return\n }\n registration.onupdatefound = function () {\n emit('updatefound', registration)\n var installingWorker = registration.installing\n installingWorker.onstatechange = function () {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n emit('updated', registration)\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n emit('cached', registration)\n }\n }\n }\n }\n })\n .catch(function (error) { return handleError(emit, error); })\n}\n\nfunction checkValidServiceWorker (swUrl, emit, registrationOptions) {\n // Check if the service worker can be found.\n fetch(swUrl)\n .then(function (response) {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (response.status === 404) {\n // No service worker found.\n emit('error', new Error((\"Service worker not found at \" + swUrl)))\n unregister()\n } else if (response.headers.get('content-type').indexOf('javascript') === -1) {\n emit('error', new Error(\n \"Expected \" + swUrl + \" to have javascript content-type, \" +\n \"but received \" + (response.headers.get('content-type'))))\n unregister()\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, emit, registrationOptions)\n }\n })\n .catch(function (error) { return handleError(emit, error); })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(function (registration) {\n registration.unregister()\n }).catch(function (error) { return handleError(emit, error); })\n }\n}\n","/*!\n * vue-i18n v8.28.2 \n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\nvar dateTimeFormatKeys = [\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'localeMatcher',\n \"hour12\",\n \"hourCycle\",\n \"timeZone\",\n \"formatMatcher\",\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName' ];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\n/**\n * Mixin\n * \n * If `bridge` mode, empty mixin is returned,\n * else regulary mixin implementation is returned.\n */\nfunction defineMixin (bridge) {\n if ( bridge === void 0 ) bridge = false;\n\n function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n }\n\n return bridge\n ? { mounted: mounted } // delegate `vue-i18n-bridge` mixin implementation\n : { // regulary \n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n = options.__i18nBridge || options.__i18n;\n _i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n$1 = options.__i18nBridge || options.__i18n;\n _i18n$1.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: mounted,\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n }\n}\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue, options) {\n if ( options === void 0 ) options = { bridge: false };\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(defineMixin(options.bridge));\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-zA-Z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_:|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-zA-Z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || options.datetimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._fallbackRootWithEmptyString = options.fallbackRootWithEmptyString === undefined\n ? true\n : !!options.fallbackRootWithEmptyString;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n if ('__VUE_I18N_BRIDGE__' in options) {\n this.__VUE_I18N_BRIDGE__ = options.__VUE_I18N_BRIDGE__;\n }\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true },sync: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data, __VUE18N__INSTANCE__: true });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var this$1 = this;\n return this._vm.$watch('$data', function () {\n var listeners = arrayFrom(this$1._dataListeners);\n var i = listeners.length;\n while(i--) {\n Vue.nextTick(function () {\n listeners[i] && listeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale (composer) {\n if (!composer) {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n } else {\n // deal with vue-i18n-bridge\n if (!this.__VUE_I18N_BRIDGE__) { return null }\n var self = this;\n var target$1 = this._vm;\n return this.vm.$watch('locale', function (val) {\n target$1.$set(target$1, 'locale', val);\n if (self.__VUE_I18N_BRIDGE__ && composer) {\n composer.locale.value = val;\n }\n target$1.$forceUpdate();\n }, { immediate: true })\n }\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nprototypeAccessors.sync.get = function () { return this._sync };\nprototypeAccessors.sync.set = function (val) { this._sync = val; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return (this._fallbackRootWithEmptyString? !val : isNull(val)) && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n\n // eslint-disable-next-line no-autofix/prefer-const\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values, formatter, path, interpolateMode) {\n var this$1 = this;\n\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n var messages = this._getMessages();\n var locale = this.locale;\n\n return {\n list: list,\n named: named,\n values: values,\n formatter: formatter,\n path: path,\n messages: messages,\n locale: locale,\n linked: function (linkedKey) { return this$1._interpolate(locale, messages[locale] || {}, linkedKey, null, interpolateMode, undefined, [linkedKey]); }\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(\n this._createMessageContext(values, this._formatter || defaultFormatter, path, interpolateMode)\n )\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? Object.assign({}, this._vm.messages[locale])\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n }\n\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key, options) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);\n return dtf.format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(dateTimeFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key, options)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.28.2';\n\nexport default VueI18n;\n","/**\n * vue-meta v2.4.0\n * (c) 2020\n * - Declan de Wet\n * - Sébastien Chopin (@Atinux)\n * - Pim (@pimlie)\n * - All the amazing contributors\n * @license MIT\n */\n\nimport deepmerge from 'deepmerge';\n\nvar version = \"2.4.0\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n/**\n * checks if passed argument is an array\n * @param {any} arg - the object to check\n * @return {Boolean} - true if `arg` is an array\n */\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction isUndefined(arg) {\n return typeof arg === 'undefined';\n}\nfunction isObject(arg) {\n return _typeof(arg) === 'object';\n}\nfunction isPureObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction hasGlobalWindowFn() {\n try {\n return !isUndefined(window);\n } catch (e) {\n return false;\n }\n}\nvar hasGlobalWindow = hasGlobalWindowFn();\n\nvar _global = hasGlobalWindow ? window : global;\n\nvar console = _global.console || {};\nfunction warn(str) {\n /* istanbul ignore next */\n if (!console || !console.warn) {\n return;\n }\n\n console.warn(str);\n}\nvar showWarningNotSupported = function showWarningNotSupported() {\n return warn('This vue app/component has no vue-meta configuration');\n};\n\n/**\n * These are constant variables used throughout the application.\n */\n// set some sane defaults\nvar defaultInfo = {\n title: undefined,\n titleChunk: '',\n titleTemplate: '%s',\n htmlAttrs: {},\n bodyAttrs: {},\n headAttrs: {},\n base: [],\n link: [],\n meta: [],\n style: [],\n script: [],\n noscript: [],\n __dangerouslyDisableSanitizers: [],\n __dangerouslyDisableSanitizersByTagID: {}\n};\nvar rootConfigKey = '_vueMeta'; // This is the name of the component option that contains all the information that\n// gets converted to the various meta tags & attributes for the page.\n\nvar keyName = 'metaInfo'; // This is the attribute vue-meta arguments on elements to know which it should\n// manage and which it should ignore.\n\nvar attribute = 'data-vue-meta'; // This is the attribute that goes on the `html` tag to inform `vue-meta`\n// that the server has already generated the meta tags for the initial render.\n\nvar ssrAttribute = 'data-vue-meta-server-rendered'; // This is the property that tells vue-meta to overwrite (instead of append)\n// an item in a tag list. For example, if you have two `meta` tag list items\n// that both have `vmid` of \"description\", then vue-meta will overwrite the\n// shallowest one with the deepest one.\n\nvar tagIDKeyName = 'vmid'; // This is the key name for possible meta templates\n\nvar metaTemplateKeyName = 'template'; // This is the key name for the content-holding property\n\nvar contentKeyName = 'content'; // The id used for the ssr app\n\nvar ssrAppId = 'ssr'; // How long meta update\n\nvar debounceWait = 10; // How long meta update\n\nvar waitOnDestroyed = true;\nvar defaultOptions = {\n keyName: keyName,\n attribute: attribute,\n ssrAttribute: ssrAttribute,\n tagIDKeyName: tagIDKeyName,\n contentKeyName: contentKeyName,\n metaTemplateKeyName: metaTemplateKeyName,\n waitOnDestroyed: waitOnDestroyed,\n debounceWait: debounceWait,\n ssrAppId: ssrAppId\n}; // might be a bit ugly, but minimizes the browser bundles a bit\n\nvar defaultInfoKeys = Object.keys(defaultInfo); // The metaInfo property keys which are used to disable escaping\n\nvar disableOptionKeys = [defaultInfoKeys[12], defaultInfoKeys[13]]; // List of metaInfo property keys which are configuration options (and dont generate html)\n\nvar metaInfoOptionKeys = [defaultInfoKeys[1], defaultInfoKeys[2], 'changed'].concat(disableOptionKeys); // List of metaInfo property keys which only generates attributes and no tags\n\nvar metaInfoAttributeKeys = [defaultInfoKeys[3], defaultInfoKeys[4], defaultInfoKeys[5]]; // HTML elements which support the onload event\n\nvar tagsSupportingOnload = ['link', 'style', 'script']; // HTML elements which dont have a head tag (shortened to our needs)\n// see: https://www.w3.org/TR/html52/document-metadata.html\n\nvar tagsWithoutEndTag = ['base', 'meta', 'link']; // HTML elements which can have inner content (shortened to our needs)\n\nvar tagsWithInnerContent = ['noscript', 'script', 'style']; // Attributes which are inserted as childNodes instead of HTMLAttribute\n\nvar tagAttributeAsInnerContent = ['innerHTML', 'cssText', 'json'];\nvar tagProperties = ['once', 'skip', 'template']; // Attributes which should be added with data- prefix\n\nvar commonDataAttributes = ['body', 'pbody']; // from: https://github.com/kangax/html-minifier/blob/gh-pages/src/htmlminifier.js#L202\n\nvar booleanHtmlAttributes = ['allowfullscreen', 'amp', 'amp-boilerplate', 'async', 'autofocus', 'autoplay', 'checked', 'compact', 'controls', 'declare', 'default', 'defaultchecked', 'defaultmuted', 'defaultselected', 'defer', 'disabled', 'enabled', 'formnovalidate', 'hidden', 'indeterminate', 'inert', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nohref', 'noresize', 'noshade', 'novalidate', 'nowrap', 'open', 'pauseonexit', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'sortable', 'truespeed', 'typemustmatch', 'visible'];\n\nvar batchId = null;\nfunction triggerUpdate(_ref, rootVm, hookName) {\n var debounceWait = _ref.debounceWait;\n\n // if an update was triggered during initialization or when an update was triggered by the\n // metaInfo watcher, set initialized to null\n // then we keep falsy value but know we need to run a triggerUpdate after initialization\n if (!rootVm[rootConfigKey].initialized && (rootVm[rootConfigKey].initializing || hookName === 'watcher')) {\n rootVm[rootConfigKey].initialized = null;\n }\n\n if (rootVm[rootConfigKey].initialized && !rootVm[rootConfigKey].pausing) {\n // batch potential DOM updates to prevent extraneous re-rendering\n // eslint-disable-next-line no-void\n batchUpdate(function () {\n return void rootVm.$meta().refresh();\n }, debounceWait);\n }\n}\n/**\n * Performs a batched update.\n *\n * @param {(null|Number)} id - the ID of this update\n * @param {Function} callback - the update to perform\n * @return {Number} id - a new ID\n */\n\nfunction batchUpdate(callback, timeout) {\n timeout = timeout === undefined ? 10 : timeout;\n\n if (!timeout) {\n callback();\n return;\n }\n\n clearTimeout(batchId);\n batchId = setTimeout(function () {\n callback();\n }, timeout);\n return batchId;\n}\n\n/*\n * To reduce build size, this file provides simple polyfills without\n * overly excessive type checking and without modifying\n * the global Array.prototype\n * The polyfills are automatically removed in the commonjs build\n * Also, only files in client/ & shared/ should use these functions\n * files in server/ still use normal js function\n */\nfunction find(array, predicate, thisArg) {\n if ( !Array.prototype.find) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return array[idx];\n }\n }\n\n return;\n }\n\n return array.find(predicate, thisArg);\n}\nfunction findIndex(array, predicate, thisArg) {\n if ( !Array.prototype.findIndex) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return array.findIndex(predicate, thisArg);\n}\nfunction toArray(arg) {\n if ( !Array.from) {\n return Array.prototype.slice.call(arg);\n }\n\n return Array.from(arg);\n}\nfunction includes(array, value) {\n if ( !Array.prototype.includes) {\n for (var idx in array) {\n if (array[idx] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n return array.includes(value);\n}\n\nvar querySelector = function querySelector(arg, el) {\n return (el || document).querySelectorAll(arg);\n};\nfunction getTag(tags, tag) {\n if (!tags[tag]) {\n tags[tag] = document.getElementsByTagName(tag)[0];\n }\n\n return tags[tag];\n}\nfunction getElementsKey(_ref) {\n var body = _ref.body,\n pbody = _ref.pbody;\n return body ? 'body' : pbody ? 'pbody' : 'head';\n}\nfunction queryElements(parentNode, _ref2, attributes) {\n var appId = _ref2.appId,\n attribute = _ref2.attribute,\n type = _ref2.type,\n tagIDKeyName = _ref2.tagIDKeyName;\n attributes = attributes || {};\n var queries = [\"\".concat(type, \"[\").concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"), \"\".concat(type, \"[data-\").concat(tagIDKeyName, \"]\")].map(function (query) {\n for (var key in attributes) {\n var val = attributes[key];\n var attributeValue = val && val !== true ? \"=\\\"\".concat(val, \"\\\"\") : '';\n query += \"[data-\".concat(key).concat(attributeValue, \"]\");\n }\n\n return query;\n });\n return toArray(querySelector(queries.join(', '), parentNode));\n}\nfunction removeElementsByAppId(_ref3, appId) {\n var attribute = _ref3.attribute;\n toArray(querySelector(\"[\".concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"))).map(function (el) {\n return el.remove();\n });\n}\nfunction removeAttribute(el, attributeName) {\n el.removeAttribute(attributeName);\n}\n\nfunction hasMetaInfo(vm) {\n vm = vm || this;\n return vm && (vm[rootConfigKey] === true || isObject(vm[rootConfigKey]));\n} // a component is in a metaInfo branch when itself has meta info or one of its (grand-)children has\n\nfunction inMetaInfoBranch(vm) {\n vm = vm || this;\n return vm && !isUndefined(vm[rootConfigKey]);\n}\n\nfunction pause(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = true;\n return function () {\n return resume(rootVm, refresh);\n };\n}\nfunction resume(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = false;\n\n if (refresh || refresh === undefined) {\n return rootVm.$meta().refresh();\n }\n}\n\nfunction addNavGuards(rootVm) {\n var router = rootVm.$router; // return when nav guards already added or no router exists\n\n if (rootVm[rootConfigKey].navGuards || !router) {\n /* istanbul ignore next */\n return;\n }\n\n rootVm[rootConfigKey].navGuards = true;\n router.beforeEach(function (to, from, next) {\n pause(rootVm);\n next();\n });\n router.afterEach(function () {\n rootVm.$nextTick(function () {\n var _resume = resume(rootVm),\n metaInfo = _resume.metaInfo;\n\n if (metaInfo && isFunction(metaInfo.afterNavigation)) {\n metaInfo.afterNavigation(metaInfo);\n }\n });\n });\n}\n\nvar appId = 1;\nfunction createMixin(Vue, options) {\n // for which Vue lifecycle hooks should the metaInfo be refreshed\n var updateOnLifecycleHook = ['activated', 'deactivated', 'beforeMount'];\n var wasServerRendered = false; // watch for client side component updates\n\n return {\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var rootKey = '$root';\n var $root = this[rootKey];\n var $options = this.$options;\n var devtoolsEnabled = Vue.config.devtools;\n Object.defineProperty(this, '_hasMetaInfo', {\n configurable: true,\n get: function get() {\n // Show deprecation warning once when devtools enabled\n if (devtoolsEnabled && !$root[rootConfigKey].deprecationWarningShown) {\n warn('VueMeta DeprecationWarning: _hasMetaInfo has been deprecated and will be removed in a future version. Please use hasMetaInfo(vm) instead');\n $root[rootConfigKey].deprecationWarningShown = true;\n }\n\n return hasMetaInfo(this);\n }\n });\n\n if (this === $root) {\n $root.$once('hook:beforeMount', function () {\n wasServerRendered = this.$el && this.$el.nodeType === 1 && this.$el.hasAttribute('data-server-rendered'); // In most cases when you have a SSR app it will be the first app thats gonna be\n // initiated, if we cant detect the data-server-rendered attribute from Vue but we\n // do see our own ssrAttribute then _assume_ the Vue app with appId 1 is the ssr app\n // attempted fix for #404 & #562, but we rly need to refactor how we pass appIds from\n // ssr to the client\n\n if (!wasServerRendered && $root[rootConfigKey] && $root[rootConfigKey].appId === 1) {\n var htmlTag = getTag({}, 'html');\n wasServerRendered = htmlTag && htmlTag.hasAttribute(options.ssrAttribute);\n }\n });\n } // Add a marker to know if it uses metaInfo\n // _vnode is used to know that it's attached to a real component\n // useful if we use some mixin to add some meta tags (like nuxt-i18n)\n\n\n if (isUndefined($options[options.keyName]) || $options[options.keyName] === null) {\n return;\n }\n\n if (!$root[rootConfigKey]) {\n $root[rootConfigKey] = {\n appId: appId\n };\n appId++;\n\n if (devtoolsEnabled && $root.$options[options.keyName]) {\n // use nextTick so the children should be added to $root\n this.$nextTick(function () {\n // find the first child that lists fnOptions\n var child = find($root.$children, function (c) {\n return c.$vnode && c.$vnode.fnOptions;\n });\n\n if (child && child.$vnode.fnOptions[options.keyName]) {\n warn(\"VueMeta has detected a possible global mixin which adds a \".concat(options.keyName, \" property to all Vue components on the page. This could cause severe performance issues. If possible, use $meta().addApp to add meta information instead\"));\n }\n });\n }\n } // to speed up updates we keep track of branches which have a component with vue-meta info defined\n // if _vueMeta = true it has info, if _vueMeta = false a child has info\n\n\n if (!this[rootConfigKey]) {\n this[rootConfigKey] = true;\n var parent = this.$parent;\n\n while (parent && parent !== $root) {\n if (isUndefined(parent[rootConfigKey])) {\n parent[rootConfigKey] = false;\n }\n\n parent = parent.$parent;\n }\n } // coerce function-style metaInfo to a computed prop so we can observe\n // it on creation\n\n\n if (isFunction($options[options.keyName])) {\n $options.computed = $options.computed || {};\n $options.computed.$metaInfo = $options[options.keyName];\n\n if (!this.$isServer) {\n // if computed $metaInfo exists, watch it for updates & trigger a refresh\n // when it changes (i.e. automatically handle async actions that affect metaInfo)\n // credit for this suggestion goes to [Sébastien Chopin](https://github.com/Atinux)\n this.$on('hook:created', function () {\n this.$watch('$metaInfo', function () {\n triggerUpdate(options, this[rootKey], 'watcher');\n });\n });\n }\n } // force an initial refresh on page load and prevent other lifecycleHooks\n // to triggerUpdate until this initial refresh is finished\n // this is to make sure that when a page is opened in an inactive tab which\n // has throttled rAF/timers we still immediately set the page title\n\n\n if (isUndefined($root[rootConfigKey].initialized)) {\n $root[rootConfigKey].initialized = this.$isServer;\n\n if (!$root[rootConfigKey].initialized) {\n if (!$root[rootConfigKey].initializedSsr) {\n $root[rootConfigKey].initializedSsr = true;\n this.$on('hook:beforeMount', function () {\n var $root = this[rootKey]; // if this Vue-app was server rendered, set the appId to 'ssr'\n // only one SSR app per page is supported\n\n if (wasServerRendered) {\n $root[rootConfigKey].appId = options.ssrAppId;\n }\n });\n } // we use the mounted hook here as on page load\n\n\n this.$on('hook:mounted', function () {\n var $root = this[rootKey];\n\n if ($root[rootConfigKey].initialized) {\n return;\n } // used in triggerUpdate to check if a change was triggered\n // during initialization\n\n\n $root[rootConfigKey].initializing = true; // refresh meta in nextTick so all child components have loaded\n\n this.$nextTick(function () {\n var _$root$$meta$refresh = $root.$meta().refresh(),\n tags = _$root$$meta$refresh.tags,\n metaInfo = _$root$$meta$refresh.metaInfo; // After ssr hydration (identifier by tags === false) check\n // if initialized was set to null in triggerUpdate. That'd mean\n // that during initilazation changes where triggered which need\n // to be applied OR a metaInfo watcher was triggered before the\n // current hook was called\n // (during initialization all changes are blocked)\n\n\n if (tags === false && $root[rootConfigKey].initialized === null) {\n this.$nextTick(function () {\n return triggerUpdate(options, $root, 'init');\n });\n }\n\n $root[rootConfigKey].initialized = true;\n delete $root[rootConfigKey].initializing; // add the navigation guards if they havent been added yet\n // they are needed for the afterNavigation callback\n\n if (!options.refreshOnceOnNavigation && metaInfo.afterNavigation) {\n addNavGuards($root);\n }\n });\n }); // add the navigation guards if requested\n\n if (options.refreshOnceOnNavigation) {\n addNavGuards($root);\n }\n }\n }\n\n this.$on('hook:destroyed', function () {\n var _this = this;\n\n // do not trigger refresh:\n // - when user configured to not wait for transitions on destroyed\n // - when the component doesnt have a parent\n // - doesnt have metaInfo defined\n if (!this.$parent || !hasMetaInfo(this)) {\n return;\n }\n\n delete this._hasMetaInfo;\n this.$nextTick(function () {\n if (!options.waitOnDestroyed || !_this.$el || !_this.$el.offsetParent) {\n triggerUpdate(options, _this.$root, 'destroyed');\n return;\n } // Wait that element is hidden before refreshing meta tags (to support animations)\n\n\n var interval = setInterval(function () {\n if (_this.$el && _this.$el.offsetParent !== null) {\n /* istanbul ignore next line */\n return;\n }\n\n clearInterval(interval);\n triggerUpdate(options, _this.$root, 'destroyed');\n }, 50);\n });\n }); // do not trigger refresh on the server side\n\n if (this.$isServer) {\n /* istanbul ignore next */\n return;\n } // no need to add this hooks on server side\n\n\n updateOnLifecycleHook.forEach(function (lifecycleHook) {\n _this2.$on(\"hook:\".concat(lifecycleHook), function () {\n triggerUpdate(options, this[rootKey], lifecycleHook);\n });\n });\n }\n };\n}\n\nfunction setOptions(options) {\n // combine options\n options = isObject(options) ? options : {}; // The options are set like this so they can\n // be minified by terser while keeping the\n // user api intact\n // terser --mangle-properties keep_quoted=strict\n\n /* eslint-disable dot-notation */\n\n return {\n keyName: options['keyName'] || defaultOptions.keyName,\n attribute: options['attribute'] || defaultOptions.attribute,\n ssrAttribute: options['ssrAttribute'] || defaultOptions.ssrAttribute,\n tagIDKeyName: options['tagIDKeyName'] || defaultOptions.tagIDKeyName,\n contentKeyName: options['contentKeyName'] || defaultOptions.contentKeyName,\n metaTemplateKeyName: options['metaTemplateKeyName'] || defaultOptions.metaTemplateKeyName,\n debounceWait: isUndefined(options['debounceWait']) ? defaultOptions.debounceWait : options['debounceWait'],\n waitOnDestroyed: isUndefined(options['waitOnDestroyed']) ? defaultOptions.waitOnDestroyed : options['waitOnDestroyed'],\n ssrAppId: options['ssrAppId'] || defaultOptions.ssrAppId,\n refreshOnceOnNavigation: !!options['refreshOnceOnNavigation']\n };\n /* eslint-enable dot-notation */\n}\nfunction getOptions(options) {\n var optionsCopy = {};\n\n for (var key in options) {\n optionsCopy[key] = options[key];\n }\n\n return optionsCopy;\n}\n\nfunction ensureIsArray(arg, key) {\n if (!key || !isObject(arg)) {\n return isArray(arg) ? arg : [];\n }\n\n if (!isArray(arg[key])) {\n arg[key] = [];\n }\n\n return arg;\n}\n\nvar serverSequences = [[/&/g, '&'], [//g, '>'], [/\"/g, '"'], [/'/g, ''']];\nvar clientSequences = [[/&/g, \"&\"], [//g, \">\"], [/\"/g, \"\\\"\"], [/'/g, \"'\"]]; // sanitizes potentially dangerous characters\n\nfunction escape(info, options, escapeOptions, escapeKeys) {\n var tagIDKeyName = options.tagIDKeyName;\n var _escapeOptions$doEsca = escapeOptions.doEscape,\n doEscape = _escapeOptions$doEsca === void 0 ? function (v) {\n return v;\n } : _escapeOptions$doEsca;\n var escaped = {};\n\n for (var key in info) {\n var value = info[key]; // no need to escape configuration options\n\n if (includes(metaInfoOptionKeys, key)) {\n escaped[key] = value;\n continue;\n } // do not use destructuring for disableOptionKeys, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n\n var disableKey = disableOptionKeys[0];\n\n if (escapeOptions[disableKey] && includes(escapeOptions[disableKey], key)) {\n // this info[key] doesnt need to escaped if the option is listed in __dangerouslyDisableSanitizers\n escaped[key] = value;\n continue;\n }\n\n var tagId = info[tagIDKeyName];\n\n if (tagId) {\n disableKey = disableOptionKeys[1]; // keys which are listed in __dangerouslyDisableSanitizersByTagID for the current vmid do not need to be escaped\n\n if (escapeOptions[disableKey] && escapeOptions[disableKey][tagId] && includes(escapeOptions[disableKey][tagId], key)) {\n escaped[key] = value;\n continue;\n }\n }\n\n if (isString(value)) {\n escaped[key] = doEscape(value);\n } else if (isArray(value)) {\n escaped[key] = value.map(function (v) {\n if (isPureObject(v)) {\n return escape(v, options, escapeOptions, true);\n }\n\n return doEscape(v);\n });\n } else if (isPureObject(value)) {\n escaped[key] = escape(value, options, escapeOptions, true);\n } else {\n escaped[key] = value;\n }\n\n if (escapeKeys) {\n var escapedKey = doEscape(key);\n\n if (key !== escapedKey) {\n escaped[escapedKey] = escaped[key];\n delete escaped[key];\n }\n }\n }\n\n return escaped;\n}\nfunction escapeMetaInfo(options, info, escapeSequences) {\n escapeSequences = escapeSequences || []; // do not use destructuring for seq, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n var escapeOptions = {\n doEscape: function doEscape(value) {\n return escapeSequences.reduce(function (val, seq) {\n return val.replace(seq[0], seq[1]);\n }, value);\n }\n };\n disableOptionKeys.forEach(function (disableKey, index) {\n if (index === 0) {\n ensureIsArray(info, disableKey);\n } else if (index === 1) {\n for (var key in info[disableKey]) {\n ensureIsArray(info[disableKey], key);\n }\n }\n\n escapeOptions[disableKey] = info[disableKey];\n }); // begin sanitization\n\n return escape(info, options, escapeOptions);\n}\n\nfunction applyTemplate(_ref, headObject, template, chunk) {\n var component = _ref.component,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n\n if (template === true || headObject[metaTemplateKeyName] === true) {\n // abort, template was already applied\n return false;\n }\n\n if (isUndefined(template) && headObject[metaTemplateKeyName]) {\n template = headObject[metaTemplateKeyName];\n headObject[metaTemplateKeyName] = true;\n } // return early if no template defined\n\n\n if (!template) {\n // cleanup faulty template properties\n delete headObject[metaTemplateKeyName];\n return false;\n }\n\n if (isUndefined(chunk)) {\n chunk = headObject[contentKeyName];\n }\n\n headObject[contentKeyName] = isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk);\n return true;\n}\n\nfunction _arrayMerge(_ref, target, source) {\n var component = _ref.component,\n tagIDKeyName = _ref.tagIDKeyName,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n // we concat the arrays without merging objects contained in,\n // but we check for a `vmid` property on each object in the array\n // using an O(1) lookup associative array exploit\n var destination = [];\n\n if (!target.length && !source.length) {\n return destination;\n }\n\n target.forEach(function (targetItem, targetIndex) {\n // no tagID so no need to check for duplicity\n if (!targetItem[tagIDKeyName]) {\n destination.push(targetItem);\n return;\n }\n\n var sourceIndex = findIndex(source, function (item) {\n return item[tagIDKeyName] === targetItem[tagIDKeyName];\n });\n var sourceItem = source[sourceIndex]; // source doesnt contain any duplicate vmid's, we can keep targetItem\n\n if (sourceIndex === -1) {\n destination.push(targetItem);\n return;\n } // when sourceItem explictly defines contentKeyName or innerHTML as undefined, its\n // an indication that we need to skip the default behaviour or child has preference over parent\n // which means we keep the targetItem and ignore/remove the sourceItem\n\n\n if (contentKeyName in sourceItem && sourceItem[contentKeyName] === undefined || 'innerHTML' in sourceItem && sourceItem.innerHTML === undefined) {\n destination.push(targetItem); // remove current index from source array so its not concatenated to destination below\n\n source.splice(sourceIndex, 1);\n return;\n } // we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem\n // if source specifies null as content then ignore both the target as the source\n\n\n if (sourceItem[contentKeyName] === null || sourceItem.innerHTML === null) {\n // remove current index from source array so its not concatenated to destination below\n source.splice(sourceIndex, 1);\n return;\n } // now we only need to check if the target has a template to combine it with the source\n\n\n var targetTemplate = targetItem[metaTemplateKeyName];\n\n if (!targetTemplate) {\n return;\n }\n\n var sourceTemplate = sourceItem[metaTemplateKeyName];\n\n if (!sourceTemplate) {\n // use parent template and child content\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, targetTemplate); // set template to true to indicate template was already applied\n\n sourceItem.template = true;\n return;\n }\n\n if (!sourceItem[contentKeyName]) {\n // use parent content and child template\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, undefined, targetItem[contentKeyName]);\n }\n });\n return destination.concat(source);\n}\nvar warningShown = false;\nfunction merge(target, source, options) {\n options = options || {}; // remove properties explicitly set to false so child components can\n // optionally _not_ overwrite the parents content\n // (for array properties this is checked in arrayMerge)\n\n if (source.title === undefined) {\n delete source.title;\n }\n\n metaInfoAttributeKeys.forEach(function (attrKey) {\n if (!source[attrKey]) {\n return;\n }\n\n for (var key in source[attrKey]) {\n if (key in source[attrKey] && source[attrKey][key] === undefined) {\n if (includes(booleanHtmlAttributes, key) && !warningShown) {\n warn('VueMeta: Please note that since v2 the value undefined is not used to indicate boolean attributes anymore, see migration guide for details');\n warningShown = true;\n }\n\n delete source[attrKey][key];\n }\n }\n });\n return deepmerge(target, source, {\n arrayMerge: function arrayMerge(t, s) {\n return _arrayMerge(options, t, s);\n }\n });\n}\n\nfunction getComponentMetaInfo(options, component) {\n return getComponentOption(options || {}, component, defaultInfo);\n}\n/**\n * Returns the `opts.option` $option value of the given `opts.component`.\n * If methods are encountered, they will be bound to the component context.\n * If `opts.deep` is true, will recursively merge all child component\n * `opts.option` $option values into the returned result.\n *\n * @param {Object} opts - options\n * @param {Object} opts.component - Vue component to fetch option data from\n * @param {Boolean} opts.deep - look for data in child components as well?\n * @param {Function} opts.arrayMerge - how should arrays be merged?\n * @param {String} opts.keyName - the name of the option to look for\n * @param {Object} [result={}] - result so far\n * @return {Object} result - final aggregated result\n */\n\nfunction getComponentOption(options, component, result) {\n result = result || {};\n\n if (component._inactive) {\n return result;\n }\n\n options = options || {};\n var _options = options,\n keyName = _options.keyName;\n var $metaInfo = component.$metaInfo,\n $options = component.$options,\n $children = component.$children; // only collect option data if it exists\n\n if ($options[keyName]) {\n // if $metaInfo exists then [keyName] was defined as a function\n // and set to the computed prop $metaInfo in the mixin\n // using the computed prop should be a small performance increase\n // because Vue caches those internally\n var data = $metaInfo || $options[keyName]; // only merge data with result when its an object\n // eg it could be a function when metaInfo() returns undefined\n // dueo to the or statement above\n\n if (isObject(data)) {\n result = merge(result, data, options);\n }\n } // collect & aggregate child options if deep = true\n\n\n if ($children.length) {\n $children.forEach(function (childComponent) {\n // check if the childComponent is in a branch\n // return otherwise so we dont walk all component branches unnecessarily\n if (!inMetaInfoBranch(childComponent)) {\n return;\n }\n\n result = getComponentOption(options, childComponent, result);\n });\n }\n\n return result;\n}\n\nvar callbacks = [];\nfunction isDOMComplete(d) {\n return (d || document).readyState === 'complete';\n}\nfunction addCallback(query, callback) {\n if (arguments.length === 1) {\n callback = query;\n query = '';\n }\n\n callbacks.push([query, callback]);\n}\nfunction addCallbacks(_ref, type, tags, autoAddListeners) {\n var tagIDKeyName = _ref.tagIDKeyName;\n var hasAsyncCallback = false;\n tags.forEach(function (tag) {\n if (!tag[tagIDKeyName] || !tag.callback) {\n return;\n }\n\n hasAsyncCallback = true;\n addCallback(\"\".concat(type, \"[data-\").concat(tagIDKeyName, \"=\\\"\").concat(tag[tagIDKeyName], \"\\\"]\"), tag.callback);\n });\n\n if (!autoAddListeners || !hasAsyncCallback) {\n return hasAsyncCallback;\n }\n\n return addListeners();\n}\nfunction addListeners() {\n if (isDOMComplete()) {\n applyCallbacks();\n return;\n } // Instead of using a MutationObserver, we just apply\n\n /* istanbul ignore next */\n\n\n document.onreadystatechange = function () {\n applyCallbacks();\n };\n}\nfunction applyCallbacks(matchElement) {\n callbacks.forEach(function (args) {\n // do not use destructuring for args, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n var query = args[0];\n var callback = args[1];\n var selector = \"\".concat(query, \"[onload=\\\"this.__vm_l=1\\\"]\");\n var elements = [];\n\n if (!matchElement) {\n elements = toArray(querySelector(selector));\n }\n\n if (matchElement && matchElement.matches(selector)) {\n elements = [matchElement];\n }\n\n elements.forEach(function (element) {\n /* __vm_cb: whether the load callback has been called\n * __vm_l: set by onload attribute, whether the element was loaded\n * __vm_ev: whether the event listener was added or not\n */\n if (element.__vm_cb) {\n return;\n }\n\n var onload = function onload() {\n /* Mark that the callback for this element has already been called,\n * this prevents the callback to run twice in some (rare) conditions\n */\n element.__vm_cb = true;\n /* onload needs to be removed because we only need the\n * attribute after ssr and if we dont remove it the node\n * will fail isEqualNode on the client\n */\n\n removeAttribute(element, 'onload');\n callback(element);\n };\n /* IE9 doesnt seem to load scripts synchronously,\n * causing a script sometimes/often already to be loaded\n * when we add the event listener below (thus adding an onload event\n * listener has no use because it will never be triggered).\n * Therefore we add the onload attribute during ssr, and\n * check here if it was already loaded or not\n */\n\n\n if (element.__vm_l) {\n onload();\n return;\n }\n\n if (!element.__vm_ev) {\n element.__vm_ev = true;\n element.addEventListener('load', onload);\n }\n });\n });\n}\n\n// instead of adding it to the html\n\nvar attributeMap = {};\n/**\n * Updates the document's html tag attributes\n *\n * @param {Object} attrs - the new document html attributes\n * @param {HTMLElement} tag - the HTMLElement tag to update with new attrs\n */\n\nfunction updateAttribute(appId, options, type, attrs, tag) {\n var _ref = options || {},\n attribute = _ref.attribute;\n\n var vueMetaAttrString = tag.getAttribute(attribute);\n\n if (vueMetaAttrString) {\n attributeMap[type] = JSON.parse(decodeURI(vueMetaAttrString));\n removeAttribute(tag, attribute);\n }\n\n var data = attributeMap[type] || {};\n var toUpdate = []; // remove attributes from the map\n // which have been removed for this appId\n\n for (var attr in data) {\n if (data[attr] !== undefined && appId in data[attr]) {\n toUpdate.push(attr);\n\n if (!attrs[attr]) {\n delete data[attr][appId];\n }\n }\n }\n\n for (var _attr in attrs) {\n var attrData = data[_attr];\n\n if (!attrData || attrData[appId] !== attrs[_attr]) {\n toUpdate.push(_attr);\n\n if (attrs[_attr] !== undefined) {\n data[_attr] = data[_attr] || {};\n data[_attr][appId] = attrs[_attr];\n }\n }\n }\n\n for (var _i = 0, _toUpdate = toUpdate; _i < _toUpdate.length; _i++) {\n var _attr2 = _toUpdate[_i];\n var _attrData = data[_attr2];\n var attrValues = [];\n\n for (var _appId in _attrData) {\n Array.prototype.push.apply(attrValues, [].concat(_attrData[_appId]));\n }\n\n if (attrValues.length) {\n var attrValue = includes(booleanHtmlAttributes, _attr2) && attrValues.some(Boolean) ? '' : attrValues.filter(function (v) {\n return v !== undefined;\n }).join(' ');\n tag.setAttribute(_attr2, attrValue);\n } else {\n removeAttribute(tag, _attr2);\n }\n }\n\n attributeMap[type] = data;\n}\n\n/**\n * Updates the document title\n *\n * @param {String} title - the new title of the document\n */\nfunction updateTitle(title) {\n if (!title && title !== '') {\n return;\n }\n\n document.title = title;\n}\n\n/**\n * Updates meta tags inside and on the client. Borrowed from `react-helmet`:\n * https://github.com/nfl/react-helmet/blob/004d448f8de5f823d10f838b02317521180f34da/src/Helmet.js#L195-L245\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} type - the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - a representation of what tags changed\n */\n\nfunction updateTag(appId, options, type, tags, head, body) {\n var _ref = options || {},\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var dataAttributes = commonDataAttributes.slice();\n dataAttributes.push(tagIDKeyName);\n var newElements = [];\n var queryOptions = {\n appId: appId,\n attribute: attribute,\n type: type,\n tagIDKeyName: tagIDKeyName\n };\n var currentElements = {\n head: queryElements(head, queryOptions),\n pbody: queryElements(body, queryOptions, {\n pbody: true\n }),\n body: queryElements(body, queryOptions, {\n body: true\n })\n };\n\n if (tags.length > 1) {\n // remove duplicates that could have been found by merging tags\n // which include a mixin with metaInfo and that mixin is used\n // by multiple components on the same page\n var found = [];\n tags = tags.filter(function (x) {\n var k = JSON.stringify(x);\n var res = !includes(found, k);\n found.push(k);\n return res;\n });\n }\n\n tags.forEach(function (tag) {\n if (tag.skip) {\n return;\n }\n\n var newElement = document.createElement(type);\n\n if (!tag.once) {\n newElement.setAttribute(attribute, appId);\n }\n\n Object.keys(tag).forEach(function (attr) {\n /* istanbul ignore next */\n if (includes(tagProperties, attr)) {\n return;\n }\n\n if (attr === 'innerHTML') {\n newElement.innerHTML = tag.innerHTML;\n return;\n }\n\n if (attr === 'json') {\n newElement.innerHTML = JSON.stringify(tag.json);\n return;\n }\n\n if (attr === 'cssText') {\n if (newElement.styleSheet) {\n /* istanbul ignore next */\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n\n return;\n }\n\n if (attr === 'callback') {\n newElement.onload = function () {\n return tag[attr](newElement);\n };\n\n return;\n }\n\n var _attr = includes(dataAttributes, attr) ? \"data-\".concat(attr) : attr;\n\n var isBooleanAttribute = includes(booleanHtmlAttributes, attr);\n\n if (isBooleanAttribute && !tag[attr]) {\n return;\n }\n\n var value = isBooleanAttribute ? '' : tag[attr];\n newElement.setAttribute(_attr, value);\n });\n var oldElements = currentElements[getElementsKey(tag)]; // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n var indexToDelete;\n var hasEqualElement = oldElements.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n });\n\n if (hasEqualElement && (indexToDelete || indexToDelete === 0)) {\n oldElements.splice(indexToDelete, 1);\n } else {\n newElements.push(newElement);\n }\n });\n var oldElements = [];\n\n for (var _type in currentElements) {\n Array.prototype.push.apply(oldElements, currentElements[_type]);\n } // remove old elements\n\n\n oldElements.forEach(function (element) {\n element.parentNode.removeChild(element);\n }); // insert new elements\n\n newElements.forEach(function (element) {\n if (element.hasAttribute('data-body')) {\n body.appendChild(element);\n return;\n }\n\n if (element.hasAttribute('data-pbody')) {\n body.insertBefore(element, body.firstChild);\n return;\n }\n\n head.appendChild(element);\n });\n return {\n oldTags: oldElements,\n newTags: newElements\n };\n}\n\n/**\n * Performs client-side updates when new meta info is received\n *\n * @param {Object} newInfo - the meta info to update to\n */\n\nfunction updateClientMetaInfo(appId, options, newInfo) {\n options = options || {};\n var _options = options,\n ssrAttribute = _options.ssrAttribute,\n ssrAppId = _options.ssrAppId; // only cache tags for current update\n\n var tags = {};\n var htmlTag = getTag(tags, 'html'); // if this is a server render, then dont update\n\n if (appId === ssrAppId && htmlTag.hasAttribute(ssrAttribute)) {\n // remove the server render attribute so we can update on (next) changes\n removeAttribute(htmlTag, ssrAttribute); // add load callbacks if the\n\n var addLoadListeners = false;\n tagsSupportingOnload.forEach(function (type) {\n if (newInfo[type] && addCallbacks(options, type, newInfo[type])) {\n addLoadListeners = true;\n }\n });\n\n if (addLoadListeners) {\n addListeners();\n }\n\n return false;\n } // initialize tracked changes\n\n\n var tagsAdded = {};\n var tagsRemoved = {};\n\n for (var type in newInfo) {\n // ignore these\n if (includes(metaInfoOptionKeys, type)) {\n continue;\n }\n\n if (type === 'title') {\n // update the title\n updateTitle(newInfo.title);\n continue;\n }\n\n if (includes(metaInfoAttributeKeys, type)) {\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, newInfo[type], getTag(tags, tagName));\n continue;\n } // tags should always be an array, ignore if it isnt\n\n\n if (!isArray(newInfo[type])) {\n continue;\n }\n\n var _updateTag = updateTag(appId, options, type, newInfo[type], getTag(tags, 'head'), getTag(tags, 'body')),\n oldTags = _updateTag.oldTags,\n newTags = _updateTag.newTags;\n\n if (newTags.length) {\n tagsAdded[type] = newTags;\n tagsRemoved[type] = oldTags;\n }\n }\n\n return {\n tagsAdded: tagsAdded,\n tagsRemoved: tagsRemoved\n };\n}\n\nvar appsMetaInfo;\nfunction addApp(rootVm, appId, options) {\n return {\n set: function set(metaInfo) {\n return setMetaInfo(rootVm, appId, options, metaInfo);\n },\n remove: function remove() {\n return removeMetaInfo(rootVm, appId, options);\n }\n };\n}\nfunction setMetaInfo(rootVm, appId, options, metaInfo) {\n // if a vm exists _and_ its mounted then immediately update\n if (rootVm && rootVm.$el) {\n return updateClientMetaInfo(appId, options, metaInfo);\n } // store for later, the info\n // will be set on the first refresh\n\n\n appsMetaInfo = appsMetaInfo || {};\n appsMetaInfo[appId] = metaInfo;\n}\nfunction removeMetaInfo(rootVm, appId, options) {\n if (rootVm && rootVm.$el) {\n var tags = {};\n\n var _iterator = _createForOfIteratorHelper(metaInfoAttributeKeys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var type = _step.value;\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, {}, getTag(tags, tagName));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return removeElementsByAppId(options, appId);\n }\n\n if (appsMetaInfo[appId]) {\n delete appsMetaInfo[appId];\n clearAppsMetaInfo();\n }\n}\nfunction getAppsMetaInfo() {\n return appsMetaInfo;\n}\nfunction clearAppsMetaInfo(force) {\n if (force || !Object.keys(appsMetaInfo).length) {\n appsMetaInfo = undefined;\n }\n}\n\n/**\n * Returns the correct meta info for the given component\n * (child components will overwrite parent meta info)\n *\n * @param {Object} component - the Vue instance to get meta info from\n * @return {Object} - returned meta info\n */\n\nfunction getMetaInfo(options, info, escapeSequences, component) {\n options = options || {};\n escapeSequences = escapeSequences || [];\n var _options = options,\n tagIDKeyName = _options.tagIDKeyName; // Remove all \"template\" tags from meta\n // backup the title chunk in case user wants access to it\n\n if (info.title) {\n info.titleChunk = info.title;\n } // replace title with populated template\n\n\n if (info.titleTemplate && info.titleTemplate !== '%s') {\n applyTemplate({\n component: component,\n contentKeyName: 'title'\n }, info, info.titleTemplate, info.titleChunk || '');\n } // convert base tag to an array so it can be handled the same way\n // as the other tags\n\n\n if (info.base) {\n info.base = Object.keys(info.base).length ? [info.base] : [];\n }\n\n if (info.meta) {\n // remove meta items with duplicate vmid's\n info.meta = info.meta.filter(function (metaItem, index, arr) {\n var hasVmid = !!metaItem[tagIDKeyName];\n\n if (!hasVmid) {\n return true;\n }\n\n var isFirstItemForVmid = index === findIndex(arr, function (item) {\n return item[tagIDKeyName] === metaItem[tagIDKeyName];\n });\n return isFirstItemForVmid;\n }); // apply templates if needed\n\n info.meta.forEach(function (metaObject) {\n return applyTemplate(options, metaObject);\n });\n }\n\n return escapeMetaInfo(options, info, escapeSequences);\n}\n\n/**\n * When called, will update the current meta info with new meta info.\n * Useful when updating meta info as the result of an asynchronous\n * action that resolves after the initial render takes place.\n *\n * Credit to [Sébastien Chopin](https://github.com/Atinux) for the suggestion\n * to implement this method.\n *\n * @return {Object} - new meta info\n */\n\nfunction refresh(rootVm, options) {\n options = options || {}; // make sure vue-meta was initiated\n\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, clientSequences, rootVm);\n var appId = rootVm[rootConfigKey].appId;\n var tags = updateClientMetaInfo(appId, options, metaInfo); // emit \"event\" with new info\n\n if (tags && isFunction(metaInfo.changed)) {\n metaInfo.changed(metaInfo, tags.tagsAdded, tags.tagsRemoved);\n tags = {\n addedTags: tags.tagsAdded,\n removedTags: tags.tagsRemoved\n };\n }\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n updateClientMetaInfo(additionalAppId, options, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return {\n vm: rootVm,\n metaInfo: metaInfo,\n // eslint-disable-line object-shorthand\n tags: tags\n };\n}\n\n/**\n * Generates tag attributes for use on the server.\n *\n * @param {('bodyAttrs'|'htmlAttrs'|'headAttrs')} type - the type of attributes to generate\n * @param {Object} data - the attributes to generate\n * @return {Object} - the attribute generator\n */\n\nfunction attributeGenerator(options, type, data, _ref) {\n var addSsrAttribute = _ref.addSsrAttribute;\n\n var _ref2 = options || {},\n attribute = _ref2.attribute,\n ssrAttribute = _ref2.ssrAttribute;\n\n var attributeStr = '';\n\n for (var attr in data) {\n var attrData = data[attr];\n var attrValues = [];\n\n for (var appId in attrData) {\n attrValues.push.apply(attrValues, _toConsumableArray([].concat(attrData[appId])));\n }\n\n if (attrValues.length) {\n attributeStr += booleanHtmlAttributes.includes(attr) && attrValues.some(Boolean) ? \"\".concat(attr) : \"\".concat(attr, \"=\\\"\").concat(attrValues.join(' '), \"\\\"\");\n attributeStr += ' ';\n }\n }\n\n if (attributeStr) {\n attributeStr += \"\".concat(attribute, \"=\\\"\").concat(encodeURI(JSON.stringify(data)), \"\\\"\");\n }\n\n if (type === 'htmlAttrs' && addSsrAttribute) {\n return \"\".concat(ssrAttribute).concat(attributeStr ? ' ' : '').concat(attributeStr);\n }\n\n return attributeStr;\n}\n\n/**\n * Generates title output for the server\n *\n * @param {'title'} type - the string \"title\"\n * @param {String} data - the title text\n * @return {Object} - the title generator\n */\nfunction titleGenerator(options, type, data, generatorOptions) {\n var _ref = generatorOptions || {},\n ln = _ref.ln;\n\n if (!data) {\n return '';\n }\n\n return \"<\".concat(type, \">\").concat(data, \"\").concat(ln ? '\\n' : '');\n}\n\n/**\n * Generates meta, base, link, style, script, noscript tags for use on the server\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - the tag generator\n */\n\nfunction tagGenerator(options, type, tags, generatorOptions) {\n var _ref = options || {},\n ssrAppId = _ref.ssrAppId,\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var _ref2 = generatorOptions || {},\n appId = _ref2.appId,\n _ref2$isSSR = _ref2.isSSR,\n isSSR = _ref2$isSSR === void 0 ? true : _ref2$isSSR,\n _ref2$body = _ref2.body,\n body = _ref2$body === void 0 ? false : _ref2$body,\n _ref2$pbody = _ref2.pbody,\n pbody = _ref2$pbody === void 0 ? false : _ref2$pbody,\n _ref2$ln = _ref2.ln,\n ln = _ref2$ln === void 0 ? false : _ref2$ln;\n\n var dataAttributes = [tagIDKeyName].concat(_toConsumableArray(commonDataAttributes));\n\n if (!tags || !tags.length) {\n return '';\n } // build a string containing all tags of this type\n\n\n return tags.reduce(function (tagsStr, tag) {\n if (tag.skip) {\n return tagsStr;\n }\n\n var tagKeys = Object.keys(tag);\n\n if (tagKeys.length === 0) {\n return tagsStr; // Bail on empty tag object\n }\n\n if (Boolean(tag.body) !== body || Boolean(tag.pbody) !== pbody) {\n return tagsStr;\n }\n\n var attrs = tag.once ? '' : \" \".concat(attribute, \"=\\\"\").concat(appId || (isSSR === false ? '1' : ssrAppId), \"\\\"\"); // build a string containing all attributes of this tag\n\n for (var attr in tag) {\n // these attributes are treated as children on the tag\n if (tagAttributeAsInnerContent.includes(attr) || tagProperties.includes(attr)) {\n continue;\n }\n\n if (attr === 'callback') {\n attrs += ' onload=\"this.__vm_l=1\"';\n continue;\n } // these form the attribute list for this tag\n\n\n var prefix = '';\n\n if (dataAttributes.includes(attr)) {\n prefix = 'data-';\n }\n\n var isBooleanAttr = !prefix && booleanHtmlAttributes.includes(attr);\n\n if (isBooleanAttr && !tag[attr]) {\n continue;\n }\n\n attrs += \" \".concat(prefix).concat(attr) + (isBooleanAttr ? '' : \"=\\\"\".concat(tag[attr], \"\\\"\"));\n }\n\n var json = '';\n\n if (tag.json) {\n json = JSON.stringify(tag.json);\n } // grab child content from one of these attributes, if possible\n\n\n var content = tag.innerHTML || tag.cssText || json; // generate tag exactly without any other redundant attribute\n // these tags have no end tag\n\n var hasEndTag = !tagsWithoutEndTag.includes(type); // these tag types will have content inserted\n\n var hasContent = hasEndTag && tagsWithInnerContent.includes(type); // the final string for this specific tag\n\n return \"\".concat(tagsStr, \"<\").concat(type).concat(attrs).concat(!hasContent && hasEndTag ? '/' : '', \">\") + (hasContent ? \"\".concat(content, \"\") : '') + (ln ? '\\n' : '');\n }, '');\n}\n\n/**\n * Converts a meta info property to one that can be stringified on the server\n *\n * @param {String} type - the type of data to convert\n * @param {(String|Object|Array)} data - the data value\n * @return {Object} - the new injector\n */\n\nfunction generateServerInjector(options, metaInfo, globalInjectOptions) {\n var serverInjector = {\n data: metaInfo,\n extraData: undefined,\n addInfo: function addInfo(appId, metaInfo) {\n this.extraData = this.extraData || {};\n this.extraData[appId] = metaInfo;\n },\n callInjectors: function callInjectors(opts) {\n var m = this.injectors; // only call title for the head\n\n return (opts.body || opts.pbody ? '' : m.title.text(opts)) + m.meta.text(opts) + m.base.text(opts) + m.link.text(opts) + m.style.text(opts) + m.script.text(opts) + m.noscript.text(opts);\n },\n injectors: {\n head: function head(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln\n }));\n },\n bodyPrepend: function bodyPrepend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n pbody: true\n }));\n },\n bodyAppend: function bodyAppend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n body: true\n }));\n }\n }\n };\n\n var _loop = function _loop(type) {\n if (metaInfoOptionKeys.includes(type)) {\n return \"continue\";\n }\n\n serverInjector.injectors[type] = {\n text: function text(injectOptions) {\n var addSsrAttribute = injectOptions === true;\n injectOptions = _objectSpread2(_objectSpread2({\n addSsrAttribute: addSsrAttribute\n }, globalInjectOptions), injectOptions);\n\n if (type === 'title') {\n return titleGenerator(options, type, serverInjector.data[type], injectOptions);\n }\n\n if (metaInfoAttributeKeys.includes(type)) {\n var attributeData = {};\n var data = serverInjector.data[type];\n\n if (data) {\n var appId = injectOptions.isSSR === false ? '1' : options.ssrAppId;\n\n for (var attr in data) {\n attributeData[attr] = _defineProperty({}, appId, data[attr]);\n }\n }\n\n if (serverInjector.extraData) {\n for (var _appId in serverInjector.extraData) {\n var _data = serverInjector.extraData[_appId][type];\n\n if (_data) {\n for (var _attr in _data) {\n attributeData[_attr] = _objectSpread2(_objectSpread2({}, attributeData[_attr]), {}, _defineProperty({}, _appId, _data[_attr]));\n }\n }\n }\n }\n\n return attributeGenerator(options, type, attributeData, injectOptions);\n }\n\n var str = tagGenerator(options, type, serverInjector.data[type], injectOptions);\n\n if (serverInjector.extraData) {\n for (var _appId2 in serverInjector.extraData) {\n var _data2 = serverInjector.extraData[_appId2][type];\n var extraStr = tagGenerator(options, type, _data2, _objectSpread2({\n appId: _appId2\n }, injectOptions));\n str = \"\".concat(str).concat(extraStr);\n }\n }\n\n return str;\n }\n };\n };\n\n for (var type in defaultInfo) {\n var _ret = _loop(type);\n\n if (_ret === \"continue\") continue;\n }\n\n return serverInjector;\n}\n\n/**\n * Converts the state of the meta info object such that each item\n * can be compiled to a tag string on the server\n *\n * @vm {Object} - Vue instance - ideally the root component\n * @return {Object} - server meta info with `toString` methods\n */\n\nfunction inject(rootVm, options, injectOptions) {\n // make sure vue-meta was initiated\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences, rootVm); // generate server injector\n\n var serverInjector = generateServerInjector(options, metaInfo, injectOptions); // add meta info from additional apps\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n serverInjector.addInfo(additionalAppId, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return serverInjector.injectors;\n}\n\nfunction $meta(options) {\n options = options || {};\n /**\n * Returns an injector for server-side rendering.\n * @this {Object} - the Vue instance (a root component)\n * @return {Object} - injector\n */\n\n var $root = this.$root;\n return {\n getOptions: function getOptions$1() {\n return getOptions(options);\n },\n setOptions: function setOptions(newOptions) {\n var refreshNavKey = 'refreshOnceOnNavigation';\n\n if (newOptions && newOptions[refreshNavKey]) {\n options.refreshOnceOnNavigation = !!newOptions[refreshNavKey];\n addNavGuards($root);\n }\n\n var debounceWaitKey = 'debounceWait';\n\n if (newOptions && debounceWaitKey in newOptions) {\n var debounceWait = parseInt(newOptions[debounceWaitKey]);\n\n if (!isNaN(debounceWait)) {\n options.debounceWait = debounceWait;\n }\n }\n\n var waitOnDestroyedKey = 'waitOnDestroyed';\n\n if (newOptions && waitOnDestroyedKey in newOptions) {\n options.waitOnDestroyed = !!newOptions[waitOnDestroyedKey];\n }\n },\n refresh: function refresh$1() {\n return refresh($root, options);\n },\n inject: function inject$1(injectOptions) {\n return inject($root, options, injectOptions) ;\n },\n pause: function pause$1() {\n return pause($root);\n },\n resume: function resume$1() {\n return resume($root);\n },\n addApp: function addApp$1(appId) {\n return addApp($root, appId, options);\n }\n };\n}\n\nfunction generate(rawInfo, options) {\n options = setOptions(options);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences);\n var serverInjector = generateServerInjector(options, metaInfo);\n return serverInjector.injectors;\n}\n\n/**\n * Plugin install function.\n * @param {Function} Vue - the Vue constructor.\n */\n\nfunction install(Vue, options) {\n if (Vue.__vuemeta_installed) {\n return;\n }\n\n Vue.__vuemeta_installed = true;\n options = setOptions(options);\n\n Vue.prototype.$meta = function () {\n return $meta.call(this, options);\n };\n\n Vue.mixin(createMixin(Vue, options));\n}\n\nvar index = {\n version: version,\n install: install,\n generate: function generate$1(metaInfo, options) {\n return generate(metaInfo, options) ;\n },\n hasMetaInfo: hasMetaInfo\n};\n\nexport default index;\n"],"names":["waitWindowLoad","isLocalhost","Boolean","window","location","hostname","match","register","swUrl","hooks","registrationOptions","emit","hook","args","len","arguments","length","apply","navigator","then","checkValidServiceWorker","serviceWorker","ready","registration","catch","error","handleError","registerValidSW","onLine","waiting","onupdatefound","installingWorker","installing","onstatechange","state","controller","fetch","response","status","Error","unregister","headers","get","indexOf","Promise","resolve","addEventListener","cb","numberFormatKeys","dateTimeFormatKeys","warn","msg","err","console","stack","isArray","Array","isObject","obj","isBoolean","val","isString","toString","Object","prototype","OBJECT_STRING","isPlainObject","call","isNull","undefined","isFunction","parseArgs","locale","params","looseClone","JSON","parse","stringify","remove","arr","item","delete","arrayFrom","ret","forEach","a","push","includes","hasOwnProperty","hasOwn","key","merge","target","arguments$1","output","i","source","looseEqual","b","isObjectA","isObjectB","String","isArrayA","isArrayB","every","e","keysA","keys","keysB","escapeHtml","rawText","replace","escapeParams","extend","Vue","defineProperty","this","_i18n","$t","values","i18n","$i18n","_t","_getMessages","concat","$tc","choice","_tc","$te","_te","$d","value","ref","d","$n","n","defineMixin","bridge","mounted","$root","$options","__INTLIFY_META__","$el","setAttribute","beforeCreate","options","__i18nBridge","__i18n","VueI18n","localeMessages","messages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","root","formatter","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","_i18n$1","sharedMessages","sync","_localeWatcher","watchLocale","onComponentInstanceCreated","parent","beforeMount","subscribeDataChanging","_subscribing","beforeDestroy","self","$nextTick","unsubscribeDataChanging","destroyVM","interpolationComponent","name","functional","props","tag","type","default","path","required","places","render","h","data","slots","children","onlyHasDefaultPlace","useLegacyPlaces","prop","createParamsFromPlaces","filter","child","text","trim","everyPlace","vnodeHasPlaceAttribute","reduce","assignChildPlace","assignChildIndex","assign","attrs","place","index","vnode","numberComponent","Number","format","acc","parts","_ntp","map","part","slot","scopedSlots","staticClass","bind","el","binding","assert","t","update","oldVNode","context","localeEqual","oldValue","_localeMessage","getLocaleMessage","unbind","vm","modifiers","preserve","textContent","_vt","_locale","ref$1","ref$2","parseValue","tc","makeParams","install","_Vue","installed","version","split","mixin","directive","component","strats","config","optionMergeStrategies","parentVal","childVal","BaseFormatter","_caches","create","interpolate","message","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","position","char","sub","isClosed","test","compiled","mode","token","parseInt","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","str","charCodeAt","slice","getPathCharType","ch","code","formatSubPath","trimmed","charAt","isNaN","parse$1","c","newChar","transition","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","I18nPath","_cache","parsePath","hit","getPathValue","paths","last","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","substr","defaultFormatter","this$1","dateTimeFormats","datetimeFormats","numberFormats","_vm","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_fallbackRootWithEmptyString","fallbackRootWithEmptyString","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","Set","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","__VUE_I18N_BRIDGE__","getChoiceIndex","choicesLength","thisPrototype","getPrototypeOf","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","Math","abs","min","_exist","_checkLocaleMessage","_initVM","prototypeAccessors","configurable","availableLocales","level","fn","pop","join","silent","__VUE18N__INSTANCE__","$destroy","add","$watch","listeners","nextTick","$forceUpdate","deep","composer","target$1","$set","immediate","newI18n","_getDateTimeFormats","_getNumberFormats","sort","set","_localeChainCache","fallback","handler","orgLevel","_warnDefault","result","interpolateMode","missingRet","parsedArgs","_render","_isFallbackRoot","_isSilentFallbackWarn","RegExp","_isSilentFallback","_isSilentTranslationWarn","_interpolate","host","visitedLinkStack","pathRet","_link","matches","idx","link","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","_createMessageContext","_list","_named","list","named","linked","linkedKey","_appendItemToChain","chain","blocks","follow","_appendLocaleToChain","splice","_appendBlockToChain","block","_getLocaleChain","start","defaults","res","step","_i","predefined","fetchChoice","choices","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","id","_localizeDateTime","formats","Intl","DateTimeFormat","_d","dtf","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","_n","numberFormat","nf","formatToParts","defineProperties","intlDefined","dateTimeFormat","_typeof","Symbol","iterator","constructor","_defineProperty","enumerable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","from","o","minLen","arr2","TypeError","_createForOfIteratorHelper","allowArrayLike","it","F","s","done","f","normalCompletion","didErr","next","return","arg","isUndefined","isPureObject","hasGlobalWindowFn","hasGlobalWindow","_global","g","showWarningNotSupported","defaultInfo","title","titleChunk","titleTemplate","htmlAttrs","bodyAttrs","headAttrs","base","meta","style","script","noscript","__dangerouslyDisableSanitizers","__dangerouslyDisableSanitizersByTagID","rootConfigKey","keyName","attribute","ssrAttribute","tagIDKeyName","metaTemplateKeyName","contentKeyName","ssrAppId","debounceWait","waitOnDestroyed","defaultOptions","defaultInfoKeys","disableOptionKeys","metaInfoOptionKeys","metaInfoAttributeKeys","tagsSupportingOnload","tagsWithoutEndTag","tagsWithInnerContent","tagAttributeAsInnerContent","tagProperties","commonDataAttributes","booleanHtmlAttributes","batchId","triggerUpdate","_ref","rootVm","hookName","initialized","initializing","pausing","batchUpdate","$meta","refresh","callback","timeout","clearTimeout","setTimeout","find","array","predicate","thisArg","findIndex","toArray","querySelector","document","querySelectorAll","getTag","tags","getElementsByTagName","getElementsKey","body","pbody","queryElements","parentNode","_ref2","attributes","appId","queries","query","attributeValue","removeElementsByAppId","_ref3","removeAttribute","attributeName","hasMetaInfo","inMetaInfoBranch","pause","resume","addNavGuards","router","$router","navGuards","beforeEach","to","afterEach","_resume","metaInfo","afterNavigation","createMixin","updateOnLifecycleHook","wasServerRendered","_this2","rootKey","devtoolsEnabled","devtools","deprecationWarningShown","$once","nodeType","hasAttribute","htmlTag","$children","$vnode","fnOptions","$parent","computed","$metaInfo","$isServer","$on","initializedSsr","_$root$$meta$refresh","refreshOnceOnNavigation","_this","_hasMetaInfo","offsetParent","interval","setInterval","clearInterval","lifecycleHook","setOptions","getOptions","optionsCopy","ensureIsArray","serverSequences","clientSequences","escape","info","escapeOptions","escapeKeys","_escapeOptions$doEsca","doEscape","v","escaped","disableKey","tagId","escapedKey","escapeMetaInfo","escapeSequences","seq","applyTemplate","headObject","template","chunk","_arrayMerge","destination","targetItem","targetIndex","sourceIndex","sourceItem","innerHTML","targetTemplate","sourceTemplate","warningShown","attrKey","arrayMerge","getComponentMetaInfo","getComponentOption","_inactive","_options","childComponent","callbacks","isDOMComplete","readyState","addCallback","addCallbacks","autoAddListeners","hasAsyncCallback","addListeners","applyCallbacks","onreadystatechange","matchElement","selector","elements","element","__vm_cb","onload","__vm_l","__vm_ev","appsMetaInfo","attributeMap","updateAttribute","vueMetaAttrString","getAttribute","decodeURI","toUpdate","attr","_attr","attrData","_toUpdate","_attr2","_attrData","attrValues","_appId","attrValue","some","updateTitle","updateTag","head","dataAttributes","newElements","queryOptions","currentElements","found","x","k","skip","newElement","createElement","once","isBooleanAttribute","styleSheet","cssText","appendChild","createTextNode","json","indexToDelete","oldElements","hasEqualElement","existingTag","isEqualNode","_type","removeChild","insertBefore","firstChild","oldTags","newTags","updateClientMetaInfo","newInfo","addLoadListeners","tagsAdded","tagsRemoved","tagName","_updateTag","addApp","setMetaInfo","removeMetaInfo","_step","_iterator","clearAppsMetaInfo","getAppsMetaInfo","force","getMetaInfo","metaItem","hasVmid","isFirstItemForVmid","metaObject","rawInfo","changed","addedTags","removedTags","additionalAppId","attributeGenerator","addSsrAttribute","attributeStr","encodeURI","titleGenerator","generatorOptions","ln","tagGenerator","_ref2$isSSR","isSSR","_ref2$body","_ref2$pbody","_ref2$ln","tagsStr","tagKeys","prefix","isBooleanAttr","content","hasEndTag","hasContent","generateServerInjector","globalInjectOptions","serverInjector","extraData","addInfo","callInjectors","opts","m","injectors","bodyPrepend","bodyAppend","_loop","injectOptions","attributeData","_data","_appId2","_data2","extraStr","inject","newOptions","refreshNavKey","debounceWaitKey","waitOnDestroyedKey","generate","__vuemeta_installed"],"sourceRoot":""}