{"version":3,"file":"vendor.js","mappings":"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AN,EAAuB,KAAKK,GAA5B,EAAiC,oBAAjC,CAAV;MACAO,UAAU,CAAC,KAAKX,eAAN,EAAuB,KAAKI,GAA5B,EAAiC,oBAAjC,CAAV;MACA,IAAIQ,YAAJ;MACA,KAAKC,aAAL,GAAqB,IAAIzK,OAAJ,CAAa0K,GAAD,IAAS;QACtCF,YAAY,GAAGE,GAAf;MACH,CAFoB,CAArB;;MAGA,IAAI,CAACjW,EAAE,GAAG,KAAKuV,GAAX,MAAoB,IAApB,IAA4BvV,EAAE,KAAK,KAAK,CAAxC,GAA4C,KAAK,CAAjD,GAAqDA,EAAE,CAAC,SAAD,CAA3D,EAAwE;QACpEgV,GAAG,CAAC1H,gBAAJ,CAAqB,aAArB,EAAoC,MAAM;UACtCyI,YAAY,CAAC,SAAD,CAAZ;QACH,CAFD,EAEG;UAAEG,IAAI,EAAE;QAAR,CAFH;MAGH,CAJD,MAKK;QACD;QACAH,YAAY,CAAC,KAAD,CAAZ;MACH;IACJ,CA3BD;EA4BH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACII,EAAE,CAACC,YAAD,EAAe;IACb,OAAOja,uDAAU,CAAC,KAAKoZ,GAAN,EAAWa,YAAX,CAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,SAAS,GAAG;IACR,OAAOja,yDAAY,CAAC,KAAKmZ,GAAN,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIe,KAAK,GAAG;IACJ,OAAO,KAAKN,aAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACa,IAALO,KAAK,GAAG;IACR,OAAO,KAAKvB,GAAL,CAASwB,GAAT,KAAiB,KAAxB;EACH;EACD;AACJ;AACA;;;EACIC,aAAa,CAACpC,GAAD,EAAM;IACf,OAAOqC,cAAc,CAAC,KAAKnB,GAAL,CAAS5K,QAAT,CAAkBgM,IAAnB,EAAyBtC,GAAzB,CAArB;EACH;EACD;AACJ;AACA;;;EACIuC,WAAW,GAAG;IACV,OAAO,CAAC,KAAKC,UAAL,EAAR;EACH;EACD;AACJ;AACA;;;EACIA,UAAU,GAAG;IACT,IAAI7W,EAAJ,EAAQyQ,EAAR;;IACA,OAAO,CAACA,EAAE,GAAG,CAACzQ,EAAE,GAAG,KAAKuV,GAAX,EAAgBuB,UAAtB,MAAsC,IAAtC,IAA8CrG,EAAE,KAAK,KAAK,CAA1D,GAA8D,KAAK,CAAnE,GAAuEA,EAAE,CAACsG,IAAH,CAAQ/W,EAAR,EAAY,yBAAZ,EAAuCgX,OAArH;EACH;;EACDC,aAAa,CAACC,UAAD,EAAa;IACtB,MAAMC,GAAG,GAAG,KAAK5B,GAAL,CAAS6B,SAArB;IACA,OAAO,CAAC,EAAE,CAACD,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACE,SAA/C,KAA6DF,GAAG,CAACE,SAAJ,CAAc9K,OAAd,CAAsB2K,UAAtB,KAAqC,CAApG,CAAR;EACH;EACD;AACJ;AACA;;;EACI/H,GAAG,GAAG;IACF,OAAO,KAAKoG,GAAL,CAAS5K,QAAT,CAAkBgM,IAAzB;EACH;EACD;AACJ;AACA;;;EACIW,KAAK,GAAG;IACJ,OAAO,KAAK/B,GAAL,CAASgC,UAAhB;EACH;EACD;AACJ;AACA;;;EACIC,MAAM,GAAG;IACL,OAAO,KAAKjC,GAAL,CAASkC,WAAhB;EACH;;AAtNU;AAwNf;;;AAAmB1C,QAAQ,CAACrU,IAAT;EAAA,iBAAsGqU,QAAtG,EA31FiGlb,sDA21FjG,CAAgI8D,qDAAhI,GA31FiG9D,sDA21FjG,CAAqJA,iDAArJ;AAAA;AACnB;;;AAAmBkb,QAAQ,CAACjK,KAAT,kBA51FiGjR,gEA41FjG;EAAA,OAA0Gkb,QAA1G;EAAA,SAA0GA,QAA1G;EAAA,YAAgI;AAAhI;;AACnB;EAAA,mDA71FoHlb,+DA61FpH,CAA4Fkb,QAA5F,EAAkH,CAAC;IACvGlU,IAAI,EAAE3G,qDADiG;IAEvG4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFiG,CAAD,CAAlH,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE7T,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAC9D7W,IAAI,EAAExG,iDADwD;QAE9DyG,IAAI,EAAE,CAACnD,qDAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAEkD,IAAI,EAAEhH,iDAASmB;IAAjB,CAH2B,CAAP;EAGG,CAR7C;AAAA;;AASA,MAAM0b,cAAc,GAAG,CAACvH,GAAD,EAAMkF,GAAN,KAAc;EACjCA,GAAG,GAAGA,GAAG,CAACsD,OAAJ,CAAY,UAAZ,EAAwB,MAAxB,CAAN;EACA,MAAMC,KAAK,GAAG,IAAIC,MAAJ,CAAW,WAAWxD,GAAX,GAAiB,WAA5B,CAAd;EACA,MAAMyD,OAAO,GAAGF,KAAK,CAACG,IAAN,CAAW5I,GAAX,CAAhB;EACA,OAAO2I,OAAO,GAAGE,kBAAkB,CAACF,OAAO,CAAC,CAAD,CAAP,CAAWH,OAAX,CAAmB,KAAnB,EAA0B,GAA1B,CAAD,CAArB,GAAwD,IAAtE;AACH,CALD;;AAMA,MAAM7B,UAAU,GAAG,CAACmC,OAAD,EAAUvZ,EAAV,EAAcyF,SAAd,KAA4B;EAC3C,IAAIzF,EAAJ,EAAQ;IACJA,EAAE,CAAC4O,gBAAH,CAAoBnJ,SAApB,EAAgCiJ,EAAD,IAAQ;MACnC;MACA6K,OAAO,CAACC,IAAR,CAAa9K,EAAE,IAAI,IAAN,GAAaA,EAAE,CAACC,MAAhB,GAAyB9I,SAAtC;IACH,CAHD;EAIH;AACJ,CAPD;;AASA,MAAM4T,aAAN,CAAoB;EAChB3Z,WAAW,CAAC4Z,QAAD,EAAWzN,QAAX,EAAqB0N,UAArB,EAAiC7J,MAAjC,EAAyC;IAChD,KAAK7D,QAAL,GAAgBA,QAAhB;IACA,KAAK0N,UAAL,GAAkBA,UAAlB;IACA,KAAK7J,MAAL,GAAcA,MAAd;IACA,KAAKR,SAAL,GAAiBsK,iBAAjB;IACA,KAAKC,QAAL,GAAgBC,gBAAhB;IACA,KAAKC,cAAL,GAAsB,SAAtB;IACA,KAAKC,SAAL,GAAiB,CAAC,CAAlB,CAPgD,CAQhD;;IACA,IAAIlK,MAAJ,EAAY;MACRA,MAAM,CAACtK,MAAP,CAAcjE,SAAd,CAAyBmN,EAAD,IAAQ;QAC5B,IAAIA,EAAE,YAAY1R,4DAAlB,EAAmC;UAC/B,MAAM4S,EAAE,GAAGlB,EAAE,CAACuL,aAAH,GAAmBvL,EAAE,CAACuL,aAAH,CAAiBC,YAApC,GAAmDxL,EAAE,CAACkB,EAAjE;UACA,KAAKmK,cAAL,GAAsBnK,EAAE,GAAG,KAAKoK,SAAV,GAAsB,MAAtB,GAA+B,SAArD;UACA,KAAKG,cAAL,GAAsB,CAACzL,EAAE,CAACuL,aAAJ,GAAoB,KAAKF,cAAzB,GAA0ClU,SAAhE;UACA,KAAKmU,SAAL,GAAiB,KAAKD,cAAL,KAAwB,SAAxB,GAAoCrL,EAAE,CAACkB,EAAvC,GAA4CA,EAA7D;QACH;MACJ,CAPD;IAQH,CAlB+C,CAmBhD;;;IACA8J,QAAQ,CAACnD,UAAT,CAAoBQ,qBAApB,CAA0C,CAA1C,EAA8CI,kBAAD,IAAwB;MACjE,KAAKzD,GAAL;MACAyD,kBAAkB;IACrB,CAHD;EAIH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIiD,eAAe,CAAC3J,GAAD,EAAM4J,OAAO,GAAG,EAAhB,EAAoB;IAC/B,KAAKC,YAAL,CAAkB,SAAlB,EAA6BD,OAAO,CAACR,QAArC,EAA+CQ,OAAO,CAACE,kBAAvD,EAA2EF,OAAO,CAACnI,SAAnF;IACA,OAAO,KAAKsI,QAAL,CAAc/J,GAAd,EAAmB4J,OAAnB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIpG,YAAY,CAACxD,GAAD,EAAM4J,OAAO,GAAG,EAAhB,EAAoB;IAC5B,KAAKC,YAAL,CAAkB,MAAlB,EAA0BD,OAAO,CAACR,QAAlC,EAA4CQ,OAAO,CAACE,kBAApD,EAAwEF,OAAO,CAACnI,SAAhF;IACA,OAAO,KAAKsI,QAAL,CAAc/J,GAAd,EAAmB4J,OAAnB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACII,YAAY,CAAChK,GAAD,EAAM4J,OAAO,GAAG,EAAhB,EAAoB;IAC5B,KAAKC,YAAL,CAAkB,MAAlB,EAA0BD,OAAO,CAACR,QAAlC,EAA4CQ,OAAO,CAACE,kBAApD,EAAwEF,OAAO,CAACnI,SAAhF;IACA,OAAO,KAAKsI,QAAL,CAAc/J,GAAd,EAAmB4J,OAAnB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIK,IAAI,CAACL,OAAO,GAAG;IAAER,QAAQ,EAAE,IAAZ;IAAkBU,kBAAkB,EAAE;EAAtC,CAAX,EAA2D;IAC3D,KAAKD,YAAL,CAAkB,MAAlB,EAA0BD,OAAO,CAACR,QAAlC,EAA4CQ,OAAO,CAACE,kBAApD,EAAwEF,OAAO,CAACnI,SAAhF;IACA,OAAO,KAAKjG,QAAL,CAAcyO,IAAd,EAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIhH,GAAG,GAAG;IACF,OAAO/W,gDAAS,CAAC,IAAD,EAAO,KAAK,CAAZ,EAAe,KAAK,CAApB,EAAuB,aAAa;MAChD,IAAIge,MAAM,GAAG,KAAKC,SAAlB;;MACA,OAAOD,MAAP,EAAe;QACX,IAAI,MAAMA,MAAM,CAACjH,GAAP,EAAV,EAAwB;UACpB;QACH,CAFD,MAGK;UACDiH,MAAM,GAAGA,MAAM,CAACE,YAAhB;QACH;MACJ;IACJ,CAVe,CAAhB;EAWH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIP,YAAY,CAAChL,SAAD,EAAYuK,QAAZ,EAAsBU,kBAAtB,EAA0CpI,gBAA1C,EAA4D;IACpE,KAAK7C,SAAL,GAAiBA,SAAjB;IACA,KAAKuK,QAAL,GAAgBiB,YAAY,CAACxL,SAAD,EAAYuK,QAAZ,EAAsBU,kBAAtB,CAA5B;IACA,KAAKpI,gBAAL,GAAwBA,gBAAxB;EACH;EACD;AACJ;AACA;;;EACI4I,YAAY,CAACJ,MAAD,EAAS;IACjB,KAAKC,SAAL,GAAiBD,MAAjB;EACH;EACD;AACJ;AACA;;;EACI1I,iBAAiB,GAAG;IAChB,IAAI3C,SAAS,GAAG,MAAhB;IACA,IAAI4C,SAAJ;IACA,MAAMC,gBAAgB,GAAG,KAAKA,gBAA9B;;IACA,IAAI,KAAK7C,SAAL,KAAmB,MAAvB,EAA+B;MAC3BA,SAAS,GAAG,KAAKyK,cAAjB;MACA7H,SAAS,GAAG,KAAKiI,cAAjB;IACH,CAHD,MAIK;MACDjI,SAAS,GAAG,KAAK2H,QAAjB;MACAvK,SAAS,GAAG,KAAKA,SAAjB;IACH;;IACD,KAAKA,SAAL,GAAiBsK,iBAAjB;IACA,KAAKC,QAAL,GAAgBC,gBAAhB;IACA,KAAK3H,gBAAL,GAAwBtM,SAAxB;IACA,OAAO;MACHyJ,SADG;MAEH4C,SAFG;MAGHC;IAHG,CAAP;EAKH;;EACDqI,QAAQ,CAAC/J,GAAD,EAAM4J,OAAN,EAAe;IACnB,IAAIW,KAAK,CAACC,OAAN,CAAcxK,GAAd,CAAJ,EAAwB;MACpB;MACA,OAAO,KAAKX,MAAL,CAAY0K,QAAZ,CAAqB/J,GAArB,EAA0B4J,OAA1B,CAAP;IACH,CAHD,MAIK;MACD;AACZ;AACA;AACA;AACA;AACA;MACY,MAAMrK,OAAO,GAAG,KAAK2J,UAAL,CAAgBuB,KAAhB,CAAsBzK,GAAG,CAACjO,QAAJ,EAAtB,CAAhB;;MACA,IAAI6X,OAAO,CAACc,WAAR,KAAwBtV,SAA5B,EAAuC;QACnCmK,OAAO,CAACmL,WAAR,GAAsBxW,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkBsM,OAAO,CAACc,WAA1B,CAAtB;MACH;;MACD,IAAId,OAAO,CAACe,QAAR,KAAqBvV,SAAzB,EAAoC;QAChCmK,OAAO,CAACoL,QAAR,GAAmBf,OAAO,CAACe,QAA3B;MACH;MACD;AACZ;AACA;AACA;AACA;MACY;;;MACA,OAAO,KAAKtL,MAAL,CAAYuL,aAAZ,CAA0BrL,OAA1B,EAAmCqK,OAAnC,CAAP;IACH;EACJ;;AAxLe;AA0LpB;;;AAAmBZ,aAAa,CAACzX,IAAd;EAAA,iBAA2GyX,aAA3G,EA/iGiGte,sDA+iGjG,CAA0Ikb,QAA1I,GA/iGiGlb,sDA+iGjG,CAA+J6D,qDAA/J,GA/iGiG7D,sDA+iGjG,CAAuL4B,0DAAvL,GA/iGiG5B,sDA+iGjG,CAAoN4B,mDAApN;AAAA;AACnB;;;AAAmB0c,aAAa,CAACrN,KAAd,kBAhjGiGjR,gEAgjGjG;EAAA,OAA+Gse,aAA/G;EAAA,SAA+GA,aAA/G;EAAA,YAA0I;AAA1I;;AACnB;EAAA,mDAjjGoHte,+DAijGpH,CAA4Fse,aAA5F,EAAuH,CAAC;IAC5GtX,IAAI,EAAE3G,qDADsG;IAE5G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFsG,CAAD,CAAvH,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE7T,IAAI,EAAEkU;IAAR,CAAD,EAAqB;MAAElU,IAAI,EAAEnD,qDAAWsc;IAAnB,CAArB,EAA4C;MAAEnZ,IAAI,EAAEpF,0DAAgBwe;IAAxB,CAA5C,EAAwE;MAAEpZ,IAAI,EAAEpF,mDAAR;MAAmBic,UAAU,EAAE,CAAC;QACrI7W,IAAI,EAAEvG,mDAAQA;MADuH,CAAD;IAA/B,CAAxE,CAAP;EAElB,CAPxB;AAAA;;AAQA,MAAMkf,YAAY,GAAG,CAACxL,SAAD,EAAYuK,QAAZ,EAAsBU,kBAAtB,KAA6C;EAC9D,IAAIV,QAAQ,KAAK,KAAjB,EAAwB;IACpB,OAAOhU,SAAP;EACH;;EACD,IAAI0U,kBAAkB,KAAK1U,SAA3B,EAAsC;IAClC,OAAO0U,kBAAP;EACH;;EACD,IAAIjL,SAAS,KAAK,SAAd,IAA2BA,SAAS,KAAK,MAA7C,EAAqD;IACjD,OAAOA,SAAP;EACH,CAFD,MAGK,IAAIA,SAAS,KAAK,MAAd,IAAwBuK,QAAQ,KAAK,IAAzC,EAA+C;IAChD,OAAO,SAAP;EACH;;EACD,OAAOhU,SAAP;AACH,CAdD;;AAeA,MAAM+T,iBAAiB,GAAG,MAA1B;AACA,MAAME,gBAAgB,GAAGjU,SAAzB,EAEA;;AACA,MAAM4V,eAAN,CAAsB;EAClB3b,WAAW,CAAC4b,cAAD,EAAiBzP,QAAjB,EAA2B0P,IAA3B,EAAiCC,IAAjC,EAAuCxF,MAAvC,EAA+C9E,OAA/C,EAAwDuK,wBAAxD,EAAkFC,cAAlF,EAAkGC,UAAlG,EAA8GjM,MAA9G,EAAsHjE,IAAtH,EAA4HkE,cAA5H,EAA4I8K,YAA5I,EAA0J;IACjK,KAAKa,cAAL,GAAsBA,cAAtB;IACA,KAAKzP,QAAL,GAAgBA,QAAhB;IACA,KAAKmK,MAAL,GAAcA,MAAd;IACA,KAAK9E,OAAL,GAAeA,OAAf;IACA,KAAKuK,wBAAL,GAAgCA,wBAAhC;IACA,KAAKhB,YAAL,GAAoBA,YAApB;IACA,KAAKmB,SAAL,GAAiB,IAAjB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,eAAL,GAAuB,IAAvB,CATiK,CAUjK;;IACA,KAAKC,QAAL,GAAgB,IAAI7P,OAAJ,EAAhB,CAXiK,CAYjK;;IACA,KAAK8P,sBAAL,GAA8B,IAAItf,iDAAJ,CAAoB,IAApB,CAA9B;IACA,KAAKuf,WAAL,GAAmB,IAAIxgB,uDAAJ,EAAnB,CAdiK,CAejK;;IACA,KAAKygB,cAAL,GAAsB,IAAIzgB,uDAAJ,EAAtB,CAhBiK,CAiBjK;;IACA,KAAK0gB,gBAAL,GAAwB,IAAI1gB,uDAAJ,EAAxB;IACA,KAAK2gB,QAAL,GAAgBT,UAAU,CAAC1b,aAA3B;IACA,KAAKsb,IAAL,GAAYA,IAAI,IAAI1e,2DAApB;IACA,KAAKmU,UAAL,GAAkBwK,IAAI,KAAK,MAAT,GAAkB/L,MAAM,CAACC,MAAD,EAASC,cAAT,CAAxB,GAAmDlK,SAArE;IACA,KAAK4W,SAAL,GAAiB,IAAItL,eAAJ,CAAoB,KAAKC,UAAzB,EAAqC,KAAKoL,QAA1C,EAAoD1M,MAApD,EAA4DwB,OAA5D,EAAqEzF,IAArE,EAA2EiQ,cAA3E,CAAjB;IACAJ,cAAc,CAACgB,oBAAf,CAAoC,KAAKf,IAAzC,EAA+C,IAA/C;EACH;;EACY,IAATzJ,SAAS,CAACA,SAAD,EAAY;IACrB,KAAKsK,QAAL,CAActK,SAAd,GAA0BA,SAA1B;EACH;;EACW,IAAR2H,QAAQ,CAACA,QAAD,EAAW;IACnB,KAAK2C,QAAL,CAAc3C,QAAd,GAAyBA,QAAzB;EACH;;EACe,IAAZ8C,YAAY,CAACC,KAAD,EAAQ;IACpB,KAAKC,aAAL,GAAqBD,KAArB;IACA,KAAKJ,QAAL,CAAcM,YAAd,GAA6BF,KAAK,GAC5B;MACEG,QAAQ,EAAE,MAAM,KAAKN,SAAL,CAAerJ,SAAf,CAAyB,CAAzB,KAA+B,CAAC,KAAKqJ,SAAL,CAAehI,cAAf,EADlD;MAEEuI,OAAO,EAAE,MAAM,KAAKP,SAAL,CAAetI,mBAAf,EAFjB;MAGE8I,KAAK,EAAGC,cAAD,IAAoB,KAAKT,SAAL,CAAerI,iBAAf,CAAiC8I,cAAjC;IAH7B,CAD4B,GAM5BrX,SANN;EAOH;;EACD7E,WAAW,GAAG;IACV,KAAKyb,SAAL,CAAetP,OAAf;EACH;;EACDgQ,UAAU,GAAG;IACT,OAAO,KAAKzB,cAAL,CAAoByB,UAApB,CAA+B,KAAKxB,IAApC,CAAP;EACH;;EACDyB,QAAQ,GAAG;IACP,IAAI,CAAC,KAAKpB,SAAV,EAAqB;MACjB;MACA;MACA,MAAMqB,OAAO,GAAG,KAAKF,UAAL,EAAhB;;MACA,IAAIE,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyC,KAAK,CAA9C,GAAkDA,OAAO,CAACvJ,KAA9D,EAAqE;QACjE,KAAKwJ,YAAL,CAAkBD,OAAO,CAACvJ,KAA1B,EAAiCuJ,OAAO,CAACE,QAAR,IAAoB,IAArD;MACH;IACJ;;IACD,IAAI1Q,OAAJ,CAAaC,OAAD,IAAanP,6DAAgB,CAAC,KAAK6e,QAAN,EAAgB1P,OAAhB,CAAzC,EAAmEuG,IAAnE,CAAwE,MAAM;MAC1E,IAAI,KAAKwJ,aAAL,KAAuBhX,SAA3B,EAAsC;QAClC,KAAK8W,YAAL,GAAoB,KAAKvG,MAAL,CAAYN,UAAZ,CAAuB,kBAAvB,EAA2C,KAAK0G,QAAL,CAAcgB,IAAd,KAAuB,KAAlE,CAApB;MACH;IACJ,CAJD;EAKH;;EACc,IAAXC,WAAW,GAAG;IACd,OAAO,CAAC,CAAC,KAAKzB,SAAd;EACH;;EACY,IAATtP,SAAS,GAAG;IACZ,IAAI,CAAC,KAAKsP,SAAV,EAAqB;MACjB,MAAM,IAAI0B,KAAJ,CAAU,yBAAV,CAAN;IACH;;IACD,OAAO,KAAK1B,SAAL,CAAezW,QAAtB;EACH;;EACiB,IAAdwK,cAAc,GAAG;IACjB,IAAI,CAAC,KAAKiM,SAAV,EAAqB;MACjB,MAAM,IAAI0B,KAAJ,CAAU,yBAAV,CAAN;IACH;;IACD,OAAO,KAAKxB,eAAZ;EACH;;EACqB,IAAlByB,kBAAkB,GAAG;IACrB,IAAI,KAAKzB,eAAT,EAA0B;MACtB,OAAO,KAAKA,eAAL,CAAqBlI,QAArB,CAA8BtI,IAArC;IACH;;IACD,OAAO,EAAP;EACH;EACD;AACJ;AACA;;;EACIlF,MAAM,GAAG;IACL,MAAM,IAAIkX,KAAJ,CAAU,6BAAV,CAAN;EACH;EACD;AACJ;AACA;EACI;;;EACAE,MAAM,CAACC,IAAD,EAAO3B,eAAP,EAAwB;IAC1B,MAAM,IAAIwB,KAAJ,CAAU,6BAAV,CAAN;EACH;;EACDI,UAAU,GAAG;IACT,IAAI,KAAK9B,SAAT,EAAoB;MAChB,IAAI,KAAKC,aAAT,EAAwB;QACpB;QACA,MAAMoB,OAAO,GAAG,KAAKF,UAAL,EAAhB;QACA,KAAKlB,aAAL,CAAmBrI,SAAnB,GAA+B,IAAImK,GAAJ,CAAQV,OAAO,CAACW,QAAR,CAAiB,UAAjB,CAAR,CAA/B;QACA;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;QACgB,MAAMnK,aAAa,GAAG,KAAKoI,aAAL,CAAmBrI,SAAnB,CAA6BvS,GAA7B,CAAiC,SAAjC,CAAtB;;QACA,IAAIwS,aAAa,IAAIwJ,OAAO,CAACvJ,KAA7B,EAAoC;UAChCD,aAAa,CAACC,KAAd,GAAsBnP,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkBsP,OAAO,CAACvJ,KAA1B,CAAtB;QACH;QACD;AAChB;AACA;AACA;;;QACgB,KAAKmI,aAAL,CAAmB/H,WAAnB,GAAiC,EAAjC;;QACA,IAAImJ,OAAO,CAACvJ,KAAZ,EAAmB;UACf,MAAMmK,eAAe,GAAGZ,OAAO,CAACvJ,KAAR,CAAcE,QAAtC;UACA,KAAKiI,aAAL,CAAmB/H,WAAnB,CAA+BiH,WAA/B,GAA6C8C,eAAe,CAAC9C,WAA7D;UACA,KAAKc,aAAL,CAAmB/H,WAAnB,CAA+BkH,QAA/B,GAA0C6C,eAAe,CAAC7C,QAA1D;QACH;MACJ;;MACD,MAAM9U,CAAC,GAAG,KAAKoG,SAAf;MACA,KAAKuP,aAAL,GAAqB,IAArB;MACA,KAAKD,SAAL,GAAiB,IAAjB;MACA,KAAKE,eAAL,GAAuB,IAAvB;MACA,KAAKK,gBAAL,CAAsB2B,IAAtB,CAA2B5X,CAA3B;IACH;EACJ;;EACDgX,YAAY,CAACvN,cAAD,EAAiB/D,kBAAjB,EAAqC;IAC7C,IAAI1K,EAAJ;;IACA,IAAI,KAAKmc,WAAT,EAAsB;MAClB,MAAM,IAAIC,KAAJ,CAAU,6CAAV,CAAN;IACH;;IACD,KAAKxB,eAAL,GAAuBnM,cAAvB;IACA,IAAIoO,MAAJ;IACA,IAAI9N,YAAY,GAAG,KAAKoM,SAAL,CAAe/K,eAAf,CAA+B3B,cAA/B,CAAnB;;IACA,IAAIM,YAAJ,EAAkB;MACd8N,MAAM,GAAG,KAAKnC,SAAL,GAAiB3L,YAAY,CAACY,GAAvC;MACA,MAAMmN,KAAK,GAAG/N,YAAY,CAACuD,SAA3B;;MACA,IAAIwK,KAAJ,EAAW;QACP;QACA;QACA,MAAMf,OAAO,GAAG,KAAKF,UAAL,EAAhB;QACAE,OAAO,CAACW,QAAR,CAAiB,UAAjB,IAA+BI,KAA/B;MACH,CARa,CASd;;;MACA,KAAKC,yBAAL,CAA+BF,MAAM,CAAC5Y,QAAtC,EAAgDwK,cAAhD;IACH,CAXD,MAYK;MACD,MAAMiE,QAAQ,GAAGjE,cAAc,CAACuO,eAAhC;MACA;AACZ;AACA;AACA;AACA;AACA;MACY;;MACA,IAAItK,QAAQ,CAACuK,WAAT,CAAqB7R,SAArB,IAAkC,IAAlC,IAA0C,KAAKiB,mBAAL,IAA4B,IAA1E,EAAgF;QAC5E6Q,OAAO,CAACC,IAAR,CAAa,2GACT,mCADS,GAER,2DAFQ,GAGT,sEAHS,GAIT,IAJS,GAKT,0CALS,GAMT,4FANS,GAOT,wDAPS,GAQT,sEARJ;QASA;MACH;;MACD,MAAMC,aAAa,GAAG,KAAKhD,cAAL,CAAoBiD,kBAApB,CAAuC,KAAKhD,IAA5C,EAAkDqC,QAAxE,CArBC,CAsBD;MACA;;MACA,MAAMY,UAAU,GAAG,IAAI9hB,iDAAJ,CAAoB,IAApB,CAAnB;MACA,MAAM+hB,mBAAmB,GAAG,KAAKC,yBAAL,CAA+BF,UAA/B,EAA2C7O,cAA3C,CAA5B;MACA,MAAMhQ,QAAQ,GAAG,IAAIgf,cAAJ,CAAmBF,mBAAnB,EAAwCH,aAAxC,EAAuD,KAAKzS,QAAL,CAAclM,QAArE,CAAjB;MACA;AACZ;AACA;AACA;;MACYiM,kBAAkB,GAAGA,kBAAkB,IAAI,KAAK6P,wBAAhD,CA/BC,CAgCD;;MACA,MAAMnP,SAAS,GAAG,CAACpL,EAAE,GAAG0S,QAAQ,CAACuK,WAAT,CAAqB7R,SAA3B,MAA0C,IAA1C,IAAkDpL,EAAE,KAAK,KAAK,CAA9D,GAAkEA,EAAlE,GAAuE0S,QAAQ,CAACtH,SAAlG;;MACA,IAAIV,kBAAkB,IAAItM,0BAA0B,CAACsM,kBAAD,CAApD,EAA0E;QACtE;QACA,MAAMyB,OAAO,GAAGzB,kBAAkB,CAACpM,uBAAnB,CAA2C8M,SAA3C,CAAhB;QACAyR,MAAM,GAAG,KAAKnC,SAAL,GAAiB,KAAK/P,QAAL,CAAcyB,eAAd,CAA8BD,OAA9B,EAAuC,KAAKxB,QAAL,CAAcxJ,MAArD,EAA6D1C,QAA7D,CAA1B;MACH,CAJD,MAKK;QACD;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;QACgB,MAAM4N,mBAAmB,GAAG3B,kBAAkB,KAAK,IAAvB,IAA+BA,kBAAkB,KAAK,KAAK,CAA3D,GAA+DA,kBAA/D,GAAoF,KAAK2B,mBAArH;QACAwQ,MAAM,GAAG,KAAKnC,SAAL,GAAiB,KAAK/P,QAAL,CAAcyB,eAAd,CAA8BhB,SAA9B,EAAyC;UAC/DkB,KAAK,EAAE,KAAK3B,QAAL,CAAcxJ,MAD0C;UAE/D1C,QAF+D;UAG/D4N;QAH+D,CAAzC,CAA1B;MAKH,CA9DA,CA+DD;;;MACAiR,UAAU,CAACpF,IAAX,CAAgB2E,MAAM,CAAC5Y,QAAvB,EAhEC,CAiED;MACA;;MACA8K,YAAY,GAAG,KAAKoM,SAAL,CAAehL,UAAf,CAA0B,KAAKuK,SAA/B,EAA0CjM,cAA1C,CAAf,CAnEC,CAoED;;MACA,KAAKoM,QAAL,CAActX,GAAd,CAAkBsZ,MAAM,CAAC5Y,QAAzB,EAAmCsZ,mBAAnC;MACA,KAAKzC,sBAAL,CAA4B5C,IAA5B,CAAiC;QAAE9M,SAAS,EAAEyR,MAAM,CAAC5Y,QAApB;QAA8BwK;MAA9B,CAAjC;IACH;;IACD,KAAKkM,aAAL,GAAqB5L,YAArB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKiB,OAAL,CAAayJ,YAAb,CAA0B,IAA1B;IACA,KAAK0B,SAAL,CAAe3K,SAAf,CAAyBzB,YAAzB,EAAuCgD,IAAvC,CAA6C3H,IAAD,IAAU;MAClD,KAAK4Q,cAAL,CAAoB4B,IAApB,CAAyBC,MAAM,CAAC5Y,QAAhC;MACA,KAAK8W,WAAL,CAAiB6B,IAAjB,CAAsBxS,IAAtB;IACH,CAHD;EAIH;EACD;AACJ;AACA;;;EACI0H,SAAS,CAACG,IAAI,GAAG,CAAR,EAAW5D,OAAX,EAAoB;IACzB,OAAO,KAAK8M,SAAL,CAAerJ,SAAf,CAAyBG,IAAzB,EAA+B5D,OAA/B,CAAP;EACH;EACD;AACJ;AACA;;;EACI+D,GAAG,CAACH,IAAI,GAAG,CAAR,EAAW5D,OAAX,EAAoB;IACnB,OAAO,KAAK8M,SAAL,CAAe/I,GAAf,CAAmBH,IAAnB,EAAyB5D,OAAzB,CAAP;EACH;EACD;AACJ;AACA;;;EACI4E,UAAU,CAAC5E,OAAD,EAAU;IAChB,MAAMqP,MAAM,GAAG,KAAKvC,SAAL,CAAelI,UAAf,CAA0B5E,OAA1B,CAAf;IACA,OAAOqP,MAAM,GAAGA,MAAM,CAACvO,GAAV,GAAgB5K,SAA7B;EACH;EACD;AACJ;AACA;AACA;;;EACIoZ,gBAAgB,CAACtP,OAAD,EAAU;IACtB,OAAO,KAAK8M,SAAL,CAAelI,UAAf,CAA0B5E,OAA1B,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACIuP,WAAW,CAACvP,OAAD,EAAU;IACjB,OAAO,KAAK8M,SAAL,CAAejI,UAAf,CAA0B7E,OAA1B,CAAP;EACH;EACD;AACJ;AACA;;;EACI6D,gBAAgB,GAAG;IACf,OAAO,KAAKiJ,SAAL,CAAejJ,gBAAf,EAAP;EACH;EACD;AACJ;AACA;AACA;;;EACIsL,yBAAyB,CAACF,UAAD,EAAa7O,cAAb,EAA6B;IAClD,MAAMoP,KAAK,GAAG,IAAIjiB,2DAAJ,EAAd;IACAiiB,KAAK,CAACb,eAAN,GAAwBvO,cAAc,CAACuO,eAAvC;IACAa,KAAK,CAACpL,YAAN,GAAqBhE,cAAc,CAACgE,YAApC;IACAoL,KAAK,CAACnL,QAAN,GAAiBjE,cAAc,CAACiE,QAAhC;IACAmL,KAAK,CAACxE,MAAN,GAAe5K,cAAc,CAAC4K,MAA9B;IACAwE,KAAK,CAACzS,SAAN,GAAkBqD,cAAc,CAACrD,SAAjC,CANkD,CAOlD;;IACAyS,KAAK,CAACC,SAAN,GAAkB,KAAKC,eAAL,CAAqBT,UAArB,EAAiC,UAAjC,CAAlB;IACAO,KAAK,CAACG,cAAN,GAAuB,KAAKD,eAAL,CAAqBT,UAArB,EAAiC,eAAjC,CAAvB;IACAO,KAAK,CAAC1O,GAAN,GAAY,KAAK4O,eAAL,CAAqBT,UAArB,EAAiC,KAAjC,CAAZ;IACAO,KAAK,CAACpd,MAAN,GAAe,KAAKsd,eAAL,CAAqBT,UAArB,EAAiC,QAAjC,CAAf;IACAO,KAAK,CAAChE,WAAN,GAAoB,KAAKkE,eAAL,CAAqBT,UAArB,EAAiC,aAAjC,CAApB;IACAO,KAAK,CAAC/D,QAAN,GAAiB,KAAKiE,eAAL,CAAqBT,UAArB,EAAiC,UAAjC,CAAjB;IACAO,KAAK,CAACzT,IAAN,GAAa,KAAK2T,eAAL,CAAqBT,UAArB,EAAiC,MAAjC,CAAb;IACA,OAAOO,KAAP;EACH;EACD;AACJ;AACA;;;EACIE,eAAe,CAACT,UAAD,EAAahO,IAAb,EAAmB;IAC9B,OAAOgO,UAAU,CAACW,IAAX,EACP;IACA1gB,uDAAM,CAAE6N,SAAD,IAAe,CAAC,CAACA,SAAlB,CAFC,EAE6B5N,0DAAS,CAAE4N,SAAD,IAAe,KAAK0P,sBAAL,CAA4BmD,IAA5B,CAAiC1gB,uDAAM,CAAE2gB,OAAD,IAAaA,OAAO,KAAK,IAAZ,IAAoBA,OAAO,CAAC9S,SAAR,KAAsBA,SAAxD,CAAvC,EAA2G5N,0DAAS,CAAE0gB,OAAD,IAAaA,OAAO,IAAIA,OAAO,CAACzP,cAAR,CAAuBa,IAAvB,CAAzB,CAApH,EAA4K7R,qEAAoB,EAAhM,CAAhB,CAFtC,CAAP;EAGH;EACD;AACJ;AACA;;;EACIsf,yBAAyB,CAAC3R,SAAD,EAAYqD,cAAZ,EAA4B;IACjD,MAAMoP,KAAK,GAAG,KAAKhD,QAAL,CAAc9a,GAAd,CAAkBqL,SAAlB,CAAd;;IACA,IAAI,CAACyS,KAAL,EAAY;MACR,MAAM,IAAIzB,KAAJ,CAAW,+CAAX,CAAN;IACH;;IACDyB,KAAK,CAACb,eAAN,GAAwBvO,cAAc,CAACuO,eAAvC;IACAa,KAAK,CAACpL,YAAN,GAAqBhE,cAAc,CAACgE,YAApC;IACAoL,KAAK,CAACnL,QAAN,GAAiBjE,cAAc,CAACiE,QAAhC;IACAmL,KAAK,CAACxE,MAAN,GAAe5K,cAAc,CAAC4K,MAA9B;IACAwE,KAAK,CAACzS,SAAN,GAAkBqD,cAAc,CAACrD,SAAjC;IACA,KAAK0P,sBAAL,CAA4B5C,IAA5B,CAAiC;MAAE9M,SAAF;MAAaqD;IAAb,CAAjC;EACH;;AAnUiB;AAqUtB;;;AAAmB0L,eAAe,CAACzZ,IAAhB;EAAA,iBAA6GyZ,eAA7G,EAj5GiGtgB,+DAi5GjG,CAA8I4B,mEAA9I,GAj5GiG5B,+DAi5GjG,CAAoLA,2DAApL,GAj5GiGA,+DAi5GjG,CAAoN,MAApN,GAj5GiGA,+DAi5GjG,CAAwP,MAAxP,GAj5GiGA,+DAi5GjG,CAA4Sua,MAA5S,GAj5GiGva,+DAi5GjG,CAA+Tse,aAA/T,GAj5GiGte,+DAi5GjG,CAAyVA,mEAAzV,MAj5GiGA,+DAi5GjG,CAAiZ6D,qDAAjZ,GAj5GiG7D,+DAi5GjG,CAAyaA,qDAAza,GAj5GiGA,+DAi5GjG,CAAmc4B,mDAAnc,GAj5GiG5B,+DAi5GjG,CAAydA,iDAAzd,GAj5GiGA,+DAi5GjG,CAA+e4B,2DAA/e,GAj5GiG5B,+DAi5GjG,CAA6gBsgB,eAA7gB;AAAA;AACnB;;;AAAmBA,eAAe,CAACvZ,IAAhB,kBAl5GiG/G,+DAk5GjG;EAAA,MAAiGsgB,eAAjG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACnB;EAAA,mDAn5GoHtgB,+DAm5GpH,CAA4FsgB,eAA5F,EAAyH,CAAC;IAC9GtZ,IAAI,EAAE/G,oDADwG;IAE9GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,mBADX;MAEC+b,QAAQ,EAAE,QAFX;MAGC;MACAnb,MAAM,EAAE,CAAC,UAAD,EAAa,WAAb,EAA0B,MAA1B,EAAkC,cAAlC;IAJT,CAAD;EAFwG,CAAD,CAAzH,EAQ4B,YAAY;IAAE,OAAO,CAAC;MAAErC,IAAI,EAAEpF,mEAAyBI;IAAjC,CAAD,EAAsC;MAAEgF,IAAI,EAAEhH,2DAAmBskB;IAA3B,CAAtC,EAAqE;MAAEtd,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClI7W,IAAI,EAAErG,oDAD4H;QAElIsG,IAAI,EAAE,CAAC,MAAD;MAF4H,CAAD;IAA/B,CAArE,EAG3B;MAAED,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAErG,oDADP;QAECsG,IAAI,EAAE,CAAC,MAAD;MAFP,CAFkC;IAA/B,CAH2B,EAQ3B;MAAED,IAAI,EAAEuT;IAAR,CAR2B,EAQT;MAAEvT,IAAI,EAAEsX;IAAR,CARS,EAQgB;MAAEtX,IAAI,EAAEhH,mEAAR;MAAqC6d,UAAU,EAAE,CAAC;QAC/F7W,IAAI,EAAEvG,mDAAQA;MADiF,CAAD;IAAjD,CARhB,EAU3B;MAAEuG,IAAI,EAAEnD,qDAAWsc;IAAnB,CAV2B,EAUJ;MAAEnZ,IAAI,EAAEhH,qDAAa8G;IAArB,CAVI,EAUqB;MAAEE,IAAI,EAAEpF,mDAASye;IAAjB,CAVrB,EAU0C;MAAErZ,IAAI,EAAEhH,iDAASmB;IAAjB,CAV1C,EAU+D;MAAE6F,IAAI,EAAEpF,2DAAiBG;IAAzB,CAV/D,EAU4F;MAAEiF,IAAI,EAAEsZ,eAAR;MAAyBzC,UAAU,EAAE,CAAC;QAC/J7W,IAAI,EAAEpG,mDAAQA;MADiJ,CAAD,EAE/J;QACCoG,IAAI,EAAEvG,mDAAQA;MADf,CAF+J;IAArC,CAV5F,CAAP;EAclB,CAtBxB,EAsB0C;IAAE+R,mBAAmB,EAAE,CAAC;MAClDxL,IAAI,EAAEnG,gDAAKA;IADuC,CAAD,CAAvB;IAE1BqgB,WAAW,EAAE,CAAC;MACdla,IAAI,EAAElG,iDAAMA;IADE,CAAD,CAFa;IAI1BqgB,cAAc,EAAE,CAAC;MACjBna,IAAI,EAAElG,iDADW;MAEjBmG,IAAI,EAAE,CAAC,UAAD;IAFW,CAAD,CAJU;IAO1Bma,gBAAgB,EAAE,CAAC;MACnBpa,IAAI,EAAElG,iDADa;MAEnBmG,IAAI,EAAE,CAAC,YAAD;IAFa,CAAD;EAPQ,CAtB1C;AAAA;;AAiCA,MAAM2c,cAAN,CAAqB;EACjBjf,WAAW,CAACgU,KAAD,EAAQ4K,aAAR,EAAuBlR,MAAvB,EAA+B;IACtC,KAAKsG,KAAL,GAAaA,KAAb;IACA,KAAK4K,aAAL,GAAqBA,aAArB;IACA,KAAKlR,MAAL,GAAcA,MAAd;EACH;;EACDnM,GAAG,CAACue,KAAD,EAAQC,aAAR,EAAuB;IACtB,IAAID,KAAK,KAAK1iB,2DAAd,EAA8B;MAC1B,OAAO,KAAK4W,KAAZ;IACH;;IACD,IAAI8L,KAAK,KAAKziB,mEAAd,EAAsC;MAClC,OAAO,KAAKuhB,aAAZ;IACH;;IACD,OAAO,KAAKlR,MAAL,CAAYnM,GAAZ,CAAgBue,KAAhB,EAAuBC,aAAvB,CAAP;EACH;;AAdgB,EAiBrB;;;AACA,MAAMC,OAAN,CAAc;EACVhgB,WAAW,CAACwR,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKyO,iBAAL,GAAyB,IAAIlkB,uDAAJ,EAAzB;IACA,KAAKmkB,gBAAL,GAAwB,IAAInkB,uDAAJ,EAAxB;EACH;EACD;AACJ;AACA;;;EACIokB,cAAc,CAACtR,MAAD,EAAS;IACnB,MAAMgB,OAAO,GAAGhB,MAAM,CAAC0B,YAAP,CAAoBV,OAApC;;IACA,IAAIhB,MAAM,CAAC0D,SAAP,IAAoB1C,OAAO,KAAK9J,SAApC,EAA+C;MAC3C,KAAKka,iBAAL,CAAuB7B,IAAvB,CAA4B;QAAEgC,GAAG,EAAEvQ;MAAP,CAA5B;;MACA,IAAI,KAAKwQ,MAAT,EAAiB;QACb,KAAKA,MAAL,CAAYC,WAAZ,GAA0BzQ,OAA1B;MACH;;MACD,KAAKqQ,gBAAL,CAAsB9B,IAAtB,CAA2B;QAAEgC,GAAG,EAAEvQ;MAAP,CAA3B;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI0Q,MAAM,CAACC,UAAD,EAAa;IACf,MAAMC,WAAW,GAAG,OAAOD,UAAP,KAAsB,QAA1C;IACA,MAAMJ,GAAG,GAAGK,WAAW,GAAGD,UAAH,GAAgBA,UAAU,CAAC3R,MAAX,CAAkBuR,GAAzD;IACA,MAAMM,eAAe,GAAG,KAAK7F,MAAL,CAAYnH,gBAAZ,OAAmC0M,GAA3D;IACA,MAAMO,UAAU,GAAI,GAAE,KAAK9F,MAAL,CAAYvJ,UAAW,IAAG8O,GAAI,EAApD;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,IAAI,CAACK,WAAL,EAAkB;MACdD,UAAU,CAACI,eAAX;IACH;;IACD,IAAIF,eAAJ,EAAqB;MACjB,MAAMG,aAAa,GAAG,KAAKhG,MAAL,CAAYnH,gBAAZ,EAAtB;MACA,MAAMpB,UAAU,GAAG,KAAKuI,MAAL,CAAYsE,gBAAZ,CAA6B0B,aAA7B,CAAnB,CAFiB,CAGjB;;MACA,IAAI,CAACvO,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAAC3B,GAApE,MAA6EgQ,UAAjF,EAA6F;QACzF;MACH;;MACD,MAAMG,QAAQ,GAAG,KAAKjG,MAAL,CAAYuE,WAAZ,CAAwBgB,GAAxB,CAAjB;MACA,MAAMW,gBAAgB,GAAGD,QAAQ,IAAIH,UAAU,KAAKG,QAAQ,CAACnQ,GAApC,IAA2CmQ,QAAQ,CAAC1M,WAA7E;MACA,OAAO,KAAK5C,OAAL,CAAamJ,YAAb,CAA0BgG,UAA1B,EAAsC9b,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB8S,gBAAlB,CAAd,EAAmD;QAAEhH,QAAQ,EAAE,IAAZ;QAAkBU,kBAAkB,EAAE;MAAtC,CAAnD,CAAtC,CAAP;IACH,CAVD,MAWK;MACD,MAAMuG,SAAS,GAAG,KAAKnG,MAAL,CAAYsE,gBAAZ,CAA6BiB,GAA7B,CAAlB;MACA;AACZ;AACA;AACA;;MACY,MAAMzP,GAAG,GAAG,CAACqQ,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAAK,CAAzC,GAA6C,KAAK,CAAlD,GAAsDA,SAAS,CAACrQ,GAAjE,KAAyEgQ,UAArF;MACA,MAAMI,gBAAgB,GAAGC,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAAK,CAAzC,GAA6C,KAAK,CAAlD,GAAsDA,SAAS,CAAC5M,WAAzF;MACA,OAAO,KAAK5C,OAAL,CAAamJ,YAAb,CAA0BhK,GAA1B,EAA+B9L,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB8S,gBAAlB,CAAd,EAAmD;QAAEhH,QAAQ,EAAE,IAAZ;QAAkBU,kBAAkB,EAAE;MAAtC,CAAnD,CAA/B,CAAP;IACH;EACJ;;EACDwG,WAAW,GAAG;IACV,OAAO,KAAKpG,MAAL,CAAYnH,gBAAZ,EAAP;EACH;;AA7ES;AA+Ed;;;AAAmBsM,OAAO,CAAC9d,IAAR;EAAA,iBAAqG8d,OAArG,EArhHiG3kB,+DAqhHjG,CAA8Hse,aAA9H;AAAA;AACnB;;;AAAmBqG,OAAO,CAACpZ,IAAR,kBAthHiGvL,+DAshHjG;EAAA,MAAyF2kB,OAAzF;EAAA;EAAA;IAAA;MAthHiG3kB,4DAshHjG,WAAuY8P,SAAvY;IAAA;;IAAA;MAAA;;MAthHiG9P,4DAshHjG,MAthHiGA,yDAshHjG;IAAA;EAAA;EAAA;IAAA;MAthHiGA,yDAshHjG,SAA6gBsgB,eAA7gB;IAAA;;IAAA;MAAA;;MAthHiGtgB,4DAshHjG,MAthHiGA,yDAshHjG;IAAA;EAAA;EAAA;IAAA;MAthHiGA,wDAshHjG;QAAA,OAAyF,kBAAzF;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAthHiGA,6DAshHjG;MAthHiGA,0DAshH0d,GAA3jB;MAthHiGA,4DAuhHhH,2CADe;MAthHiGA,wDA4hH5G;QAAA,OAAe,0BAAf;MAAA,EANW;MAthHiGA,0DA6hH7G,IAPY;MAthHiGA,0DA+hHhH,MATe;IAAA;;IAAA;MAthHiGA,uDA2hH5G,GALW;MAthHiGA,wDA2hH5G,gDALW;IAAA;EAAA;EAAA,eASufsgB,eATvf;EAAA;AAAA;;AAUnB;EAAA,mDAhiHoHtgB,+DAgiHpH,CAA4F2kB,OAA5F,EAAiH,CAAC;IACtG3d,IAAI,EAAE7G,oDADgG;IAEtG8G,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,UADX;MAECiD,QAAQ,EAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAXmB;MAYCma,MAAM,EAAE,CACH;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAzB4B;IAZT,CAAD;EAFgG,CAAD,CAAjH,EA0C4B,YAAY;IAAE,OAAO,CAAC;MAAE7e,IAAI,EAAEsX;IAAR,CAAD,CAAP;EAAmC,CA1C7E,EA0C+F;IAAEkB,MAAM,EAAE,CAAC;MAC1FxY,IAAI,EAAEjG,oDADoF;MAE1FkG,IAAI,EAAE,CAAC,QAAD,EAAW;QAAE6e,IAAI,EAAExF,eAAR;QAAyByF,MAAM,EAAE;MAAjC,CAAX;IAFoF,CAAD,CAAV;IAG/Ef,MAAM,EAAE,CAAC;MACThe,IAAI,EAAEhG,uDADG;MAETiG,IAAI,EAAE,CAAC6I,SAAD,EAAY;QAAEiW,MAAM,EAAE;MAAV,CAAZ;IAFG,CAAD,CAHuE;IAM/EvT,mBAAmB,EAAE,CAAC;MACtBxL,IAAI,EAAEnG,gDAAKA;IADW,CAAD,CAN0D;IAQ/E+jB,iBAAiB,EAAE,CAAC;MACpB5d,IAAI,EAAElG,iDAAMA;IADQ,CAAD,CAR4D;IAU/E+jB,gBAAgB,EAAE,CAAC;MACnB7d,IAAI,EAAElG,iDAAMA;IADO,CAAD,CAV6D;IAY/EokB,MAAM,EAAE,CAAC;MACTle,IAAI,EAAE9G,uDADG;MAET+G,IAAI,EAAE,CAAC,mBAAD,EAAsB,CAAC,QAAD,CAAtB;IAFG,CAAD;EAZuE,CA1C/F;AAAA;;AA2DA,MAAM+e,8BAAN,CAAqC;EACjCrhB,WAAW,CAACshB,YAAD,EAAe9P,OAAf,EAAwB8E,MAAxB,EAAgC;IACvC,KAAKgL,YAAL,GAAoBA,YAApB;IACA,KAAK9P,OAAL,GAAeA,OAAf;IACA,KAAK8E,MAAL,GAAcA,MAAd;EACH;EACD;AACJ;AACA;;;EACIiL,OAAO,CAAC3S,EAAD,EAAK;IACR,IAAIpN,EAAJ;;IACA,MAAMggB,WAAW,GAAG,KAAKA,WAAL,IAAoB,KAAKlL,MAAL,CAAY/U,GAAZ,CAAgB,uBAAhB,CAAxC;;IACA,IAAI,CAACC,EAAE,GAAG,KAAK8f,YAAX,MAA6B,IAA7B,IAAqC9f,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAAC8R,SAAH,EAAlE,EAAkF;MAC9E,KAAK9B,OAAL,CAAagJ,YAAb,CAA0B,MAA1B,EAAkCzU,SAAlC,EAA6CA,SAA7C,EAAwD,KAAK0b,eAA7D;MACA,KAAKH,YAAL,CAAkB1N,GAAlB;MACAhF,EAAE,CAAC8S,cAAH;IACH,CAJD,MAKK,IAAIF,WAAW,IAAI,IAAnB,EAAyB;MAC1B,KAAKhQ,OAAL,CAAa2C,YAAb,CAA0BqN,WAA1B,EAAuC;QAAEpP,SAAS,EAAE,KAAKqP;MAAlB,CAAvC;MACA7S,EAAE,CAAC8S,cAAH;IACH;EACJ;;AArBgC;AAuBrC;;;AAAmBL,8BAA8B,CAACnf,IAA/B;EAAA,iBAA4Hmf,8BAA5H,EAlnHiGhmB,+DAknHjG,CAA4KsgB,eAA5K,MAlnHiGtgB,+DAknHjG,CAAwNse,aAAxN,GAlnHiGte,+DAknHjG,CAAkPua,MAAlP;AAAA;AACnB;;;AAAmByL,8BAA8B,CAACjf,IAA/B,kBAnnHiG/G,+DAmnHjG;EAAA,MAAgHgmB,8BAAhH;EAAA;EAAA;IAAA;MAnnHiGhmB,wDAmnHjG;QAAA,OAAgH,mBAAhH;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;AAAA;;AACnB;EAAA,mDApnHoHA,+DAonHpH,CAA4FgmB,8BAA5F,EAAwI,CAAC;IAC7Hhf,IAAI,EAAE/G,oDADuH;IAE7HgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE;IADX,CAAD;EAFuH,CAAD,CAAxI,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEsZ,eAAR;MAAyBzC,UAAU,EAAE,CAAC;QACpE7W,IAAI,EAAEvG,mDAAQA;MADsD,CAAD;IAArC,CAAD,EAE3B;MAAEuG,IAAI,EAAEsX;IAAR,CAF2B,EAEF;MAAEtX,IAAI,EAAEuT;IAAR,CAFE,CAAP;EAEyB,CAPnE,EAOqF;IAAE4L,WAAW,EAAE,CAAC;MACrFnf,IAAI,EAAEnG,gDAAKA;IAD0E,CAAD,CAAf;IAErEulB,eAAe,EAAE,CAAC;MAClBpf,IAAI,EAAEnG,gDAAKA;IADO,CAAD,CAFoD;IAIrEqlB,OAAO,EAAE,CAAC;MACVlf,IAAI,EAAE9G,uDADI;MAEV+G,IAAI,EAAE,CAAC,OAAD,EAAU,CAAC,QAAD,CAAV;IAFI,CAAD;EAJ4D,CAPrF;AAAA;;AAgBA,IAAIqf,WAAW,GAAG,MAAMA,WAAN,CAAkB;EAChC3hB,WAAW,CAACmR,GAAD,EAAMsM,QAAN,EAAgBxd,QAAhB,EAA0B2hB,eAA1B,EAA2CzV,QAA3C,EAAqD;IAC5D,KAAKjM,EAAL,GAAUiR,GAAG,CAAC5Q,aAAd;IACA4Q,GAAG,CAAC5Q,aAAJ,CAAkBshB,QAAlB,GAA6BD,eAAe,CAAC3V,MAAhB,CAAuBwR,QAAvB,EAAiCxd,QAAjC,EAA2CkM,QAA3C,CAA7B;IACA3G,YAAY,CAAC,IAAD,EAAO,KAAKtF,EAAZ,EAAgB,CAAC,iBAAD,EAAoB,kBAApB,CAAhB,CAAZ;EACH;;AAL+B,CAApC;AAOA;;AAAmByhB,WAAW,CAACzf,IAAZ;EAAA,iBAAyGyf,WAAzG,EA3oHiGtmB,+DA2oHjG,CAAsIA,qDAAtI,GA3oHiGA,+DA2oHjG,CAAgKA,mEAAhK,GA3oHiGA,+DA2oHjG,CAAwMA,mDAAxM,GA3oHiGA,+DA2oHjG,CAAgOyQ,eAAhO,GA3oHiGzQ,+DA2oHjG,CAA4PA,2DAA5P;AAAA;AACnB;;;AAAmBsmB,WAAW,CAACvf,IAAZ,kBA5oHiG/G,+DA4oHjG;EAAA,MAA6FsmB,WAA7F;EAAA;AAAA;AACnBA,WAAW,GAAG/kB,iDAAU,CAAC,CACrBsJ,QAAQ,CAAC;EACLxB,MAAM,EAAE,CAAC,UAAD,EAAa,WAAb,EAA0B,MAA1B,EAAkC,YAAlC,EAAgD,cAAhD,CADH;EAELU,OAAO,EAAE,CACL,MADK,EAEL,QAFK,EAGL,aAHK,EAIL,KAJK,EAKL,OALK,EAML,WANK,EAOL,aAPK,EAQL,SARK,EASL,UATK,EAUL,WAVK,EAWL,YAXK,EAYL,WAZK,EAaL,aAbK;AAFJ,CAAD,CADa,CAAD,EAmBrBuc,WAnBqB,CAAxB;;AAoBA;EAAA,mDAjqHoHtmB,+DAiqHpH,CAA4FsmB,WAA5F,EAAqH,CAAC;IAC1Gtf,IAAI,EAAE/G,oDADoG;IAE1GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE;IADX,CAAD;EAFoG,CAAD,CAArH,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,qDAAa8G;IAArB,CAAD,EAA0B;MAAEE,IAAI,EAAEhH,mEAA2BukB;IAAnC,CAA1B,EAAiE;MAAEvd,IAAI,EAAEhH,mDAAWM;IAAnB,CAAjE,EAAwF;MAAE0G,IAAI,EAAEyJ;IAAR,CAAxF,EAAmH;MAAEzJ,IAAI,EAAEhH,2DAAmBskB;IAA3B,CAAnH,CAAP;EAA2J,CALrM;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmC,2BAAN,CAAkC;EAC9B9hB,WAAW,CAAC+hB,gBAAD,EAAmBvQ,OAAnB,EAA4ByK,UAA5B,EAAwCjM,MAAxC,EAAgDgS,UAAhD,EAA4D;IACnE,KAAKD,gBAAL,GAAwBA,gBAAxB;IACA,KAAKvQ,OAAL,GAAeA,OAAf;IACA,KAAKyK,UAAL,GAAkBA,UAAlB;IACA,KAAKjM,MAAL,GAAcA,MAAd;IACA,KAAKgS,UAAL,GAAkBA,UAAlB;IACA,KAAKC,eAAL,GAAuB,SAAvB;EACH;;EACD3E,QAAQ,GAAG;IACP,KAAK4E,sBAAL;EACH;;EACDC,WAAW,GAAG;IACV,KAAKD,sBAAL;EACH;;EACDA,sBAAsB,GAAG;IACrB,IAAI1gB,EAAJ;;IACA,IAAI,CAACA,EAAE,GAAG,KAAKwgB,UAAX,MAA2B,IAA3B,IAAmCxgB,EAAE,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,EAAE,CAAC0O,OAAnE,EAA4E;MACxE,MAAMiI,IAAI,GAAG,KAAK4J,gBAAL,CAAsBK,kBAAtB,CAAyC,KAAKpS,MAAL,CAAYK,YAAZ,CAAyB,KAAK2R,UAAL,CAAgB9R,OAAzC,CAAzC,CAAb;MACA,KAAK+L,UAAL,CAAgB1b,aAAhB,CAA8B4X,IAA9B,GAAqCA,IAArC;IACH;EACJ;EACD;AACJ;AACA;;;EACIoJ,OAAO,CAAC3S,EAAD,EAAK;IACR,KAAK4C,OAAL,CAAagJ,YAAb,CAA0B,KAAKyH,eAA/B,EAAgDlc,SAAhD,EAA2DA,SAA3D,EAAsE,KAAK0b,eAA3E;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ7S,EAAE,CAAC8S,cAAH;EACH;;AApC6B;AAsClC;;;AAAmBI,2BAA2B,CAAC5f,IAA5B;EAAA,iBAAyH4f,2BAAzH,EAptHiGzmB,+DAotHjG,CAAsK6D,6DAAtK,GAptHiG7D,+DAotHjG,CAAsMse,aAAtM,GAptHiGte,+DAotHjG,CAAgOA,qDAAhO,GAptHiGA,+DAotHjG,CAA0P4B,mDAA1P,GAptHiG5B,+DAotHjG,CAAgR4B,uDAAhR;AAAA;AACnB;;;AAAmB6kB,2BAA2B,CAAC1f,IAA5B,kBArtHiG/G,+DAqtHjG;EAAA,MAA6GymB,2BAA7G;EAAA;EAAA;IAAA;MArtHiGzmB,wDAqtHjG;QAAA,OAA6G,mBAA7G;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA,WArtHiGA,kEAqtHjG;AAAA;;AACnB;EAAA,mDAttHoHA,+DAstHpH,CAA4FymB,2BAA5F,EAAqI,CAAC;IAC1Hzf,IAAI,EAAE/G,oDADoH;IAE1HgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE;IADX,CAAD;EAFoH,CAAD,CAArI,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEnD,6DAAmBmjB;IAA3B,CAAD,EAAgC;MAAEhgB,IAAI,EAAEsX;IAAR,CAAhC,EAAyD;MAAEtX,IAAI,EAAEhH,qDAAa8G;IAArB,CAAzD,EAAkF;MAAEE,IAAI,EAAEpF,mDAASye;IAAjB,CAAlF,EAAuG;MAAErZ,IAAI,EAAEpF,uDAAR;MAAuBic,UAAU,EAAE,CAAC;QACxK7W,IAAI,EAAEvG,mDAAQA;MAD0J,CAAD;IAAnC,CAAvG,CAAP;EAElB,CAPxB,EAO0C;IAAEmmB,eAAe,EAAE,CAAC;MAC9C5f,IAAI,EAAEnG,gDAAKA;IADmC,CAAD,CAAnB;IAE1BulB,eAAe,EAAE,CAAC;MAClBpf,IAAI,EAAEnG,gDAAKA;IADO,CAAD,CAFS;IAI1BqlB,OAAO,EAAE,CAAC;MACVlf,IAAI,EAAE9G,uDADI;MAEV+G,IAAI,EAAE,CAAC,OAAD,EAAU,CAAC,QAAD,CAAV;IAFI,CAAD;EAJiB,CAP1C;AAAA;;AAeA,MAAMigB,mCAAN,CAA0C;EACtCviB,WAAW,CAAC+hB,gBAAD,EAAmBvQ,OAAnB,EAA4ByK,UAA5B,EAAwCjM,MAAxC,EAAgDgS,UAAhD,EAA4D;IACnE,KAAKD,gBAAL,GAAwBA,gBAAxB;IACA,KAAKvQ,OAAL,GAAeA,OAAf;IACA,KAAKyK,UAAL,GAAkBA,UAAlB;IACA,KAAKjM,MAAL,GAAcA,MAAd;IACA,KAAKgS,UAAL,GAAkBA,UAAlB;IACA,KAAKC,eAAL,GAAuB,SAAvB;EACH;;EACD3E,QAAQ,GAAG;IACP,KAAK4E,sBAAL;EACH;;EACDC,WAAW,GAAG;IACV,KAAKD,sBAAL;EACH;;EACDA,sBAAsB,GAAG;IACrB,IAAI1gB,EAAJ;;IACA,IAAI,CAACA,EAAE,GAAG,KAAKwgB,UAAX,MAA2B,IAA3B,IAAmCxgB,EAAE,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,EAAE,CAAC0O,OAAnE,EAA4E;MACxE,MAAMiI,IAAI,GAAG,KAAK4J,gBAAL,CAAsBK,kBAAtB,CAAyC,KAAKpS,MAAL,CAAYK,YAAZ,CAAyB,KAAK2R,UAAL,CAAgB9R,OAAzC,CAAzC,CAAb;MACA,KAAK+L,UAAL,CAAgB1b,aAAhB,CAA8B4X,IAA9B,GAAqCA,IAArC;IACH;EACJ;EACD;AACJ;AACA;;;EACIoJ,OAAO,GAAG;IACN,KAAK/P,OAAL,CAAagJ,YAAb,CAA0B,KAAKyH,eAA/B,EAAgDlc,SAAhD,EAA2DA,SAA3D,EAAsE,KAAK0b,eAA3E;EACH;;AA3BqC;AA6B1C;;;AAAmBc,mCAAmC,CAACrgB,IAApC;EAAA,iBAAiIqgB,mCAAjI,EAlwHiGlnB,+DAkwHjG,CAAsL6D,6DAAtL,GAlwHiG7D,+DAkwHjG,CAAsNse,aAAtN,GAlwHiGte,+DAkwHjG,CAAgPA,qDAAhP,GAlwHiGA,+DAkwHjG,CAA0Q4B,mDAA1Q,GAlwHiG5B,+DAkwHjG,CAAgS4B,uDAAhS;AAAA;AACnB;;;AAAmBslB,mCAAmC,CAACngB,IAApC,kBAnwHiG/G,+DAmwHjG;EAAA,MAAqHknB,mCAArH;EAAA;EAAA;IAAA;MAnwHiGlnB,wDAmwHjG;QAAA,OAAqH,aAArH;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA,WAnwHiGA,kEAmwHjG;AAAA;;AACnB;EAAA,mDApwHoHA,+DAowHpH,CAA4FknB,mCAA5F,EAA6I,CAAC;IAClIlgB,IAAI,EAAE/G,oDAD4H;IAElIgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE;IADX,CAAD;EAF4H,CAAD,CAA7I,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEnD,6DAAmBmjB;IAA3B,CAAD,EAAgC;MAAEhgB,IAAI,EAAEsX;IAAR,CAAhC,EAAyD;MAAEtX,IAAI,EAAEhH,qDAAa8G;IAArB,CAAzD,EAAkF;MAAEE,IAAI,EAAEpF,mDAASye;IAAjB,CAAlF,EAAuG;MAAErZ,IAAI,EAAEpF,uDAAR;MAAuBic,UAAU,EAAE,CAAC;QACxK7W,IAAI,EAAEvG,mDAAQA;MAD0J,CAAD;IAAnC,CAAvG,CAAP;EAElB,CAPxB,EAO0C;IAAEmmB,eAAe,EAAE,CAAC;MAC9C5f,IAAI,EAAEnG,gDAAKA;IADmC,CAAD,CAAnB;IAE1BulB,eAAe,EAAE,CAAC;MAClBpf,IAAI,EAAEnG,gDAAKA;IADO,CAAD,CAFS;IAI1BqlB,OAAO,EAAE,CAAC;MACVlf,IAAI,EAAE9G,uDADI;MAEV+G,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAJiB,CAP1C;AAAA;AAgBA;AACA;AACA;;;AACA,MAAMkgB,aAAN,CAAoB;EAChBxiB,WAAW,CAACyiB,WAAD,EAAc;IACrB,KAAKA,WAAL,GAAmBA,WAAnB;EACH;;AAHe;AAKpB;;;AAAmBD,aAAa,CAACtgB,IAAd;EAAA,iBAA2GsgB,aAA3G,EA5xHiGnnB,+DA4xHjG,CAA0IA,sDAA1I;AAAA;AACnB;;;AAAmBmnB,aAAa,CAACpgB,IAAd,kBA7xHiG/G,+DA6xHjG;EAAA,MAA+FmnB,aAA/F;EAAA;AAAA;;AACnB;EAAA,mDA9xHoHnnB,+DA8xHpH,CAA4FmnB,aAA5F,EAAuH,CAAC;IAC5GngB,IAAI,EAAE/G,oDADsG;IAE5GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE;IAAZ,CAAD;EAFsG,CAAD,CAAvH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,sDAAciB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA;AAKA;AACA;AACA;;;AACA,MAAMomB,aAAN,CAAoB;EAChB1iB,WAAW,CAACyiB,WAAD,EAAc;IACrB,KAAKA,WAAL,GAAmBA,WAAnB;EACH;;AAHe;AAKpB;;;AAAmBC,aAAa,CAACxgB,IAAd;EAAA,iBAA2GwgB,aAA3G,EA3yHiGrnB,+DA2yHjG,CAA0IA,sDAA1I;AAAA;AACnB;;;AAAmBqnB,aAAa,CAACtgB,IAAd,kBA5yHiG/G,+DA4yHjG;EAAA,MAA+FqnB,aAA/F;EAAA;AAAA;;AACnB;EAAA,mDA7yHoHrnB,+DA6yHpH,CAA4FqnB,aAA5F,EAAuH,CAAC;IAC5GrgB,IAAI,EAAE/G,oDADsG;IAE5GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE;IAAZ,CAAD;EAFsG,CAAD,CAAvH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,sDAAciB;IAAtB,CAAD,CAAP;EAAoC,CAH9E;AAAA;AAKA;AACA;AACA;;;AACA,MAAMqmB,WAAN,CAAkB;EACd3iB,WAAW,CAACyiB,WAAD,EAAcG,aAAd,EAA6B;IACpC,KAAKH,WAAL,GAAmBA,WAAnB;IACA,KAAKG,aAAL,GAAqBA,aAArB;EACH;;AAJa;AAMlB;;;AAAmBD,WAAW,CAACzgB,IAAZ;EAAA,iBAAyGygB,WAAzG,EA3zHiGtnB,+DA2zHjG,CAAsIA,sDAAtI,GA3zHiGA,+DA2zHjG,CAAiKA,2DAAjK;AAAA;AACnB;;;AAAmBsnB,WAAW,CAACvgB,IAAZ,kBA5zHiG/G,+DA4zHjG;EAAA,MAA6FsnB,WAA7F;EAAA;AAAA;;AACnB;EAAA,mDA7zHoHtnB,+DA6zHpH,CAA4FsnB,WAA5F,EAAqH,CAAC;IAC1GtgB,IAAI,EAAE/G,oDADoG;IAE1GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE;IAAZ,CAAD;EAFoG,CAAD,CAArH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,sDAAciB;IAAtB,CAAD,EAA2B;MAAE+F,IAAI,EAAEhH,2DAAmBskB;IAA3B,CAA3B,CAAP;EAAmE,CAH7G;AAAA;;AAKA,IAAIkD,gBAAgB,GAAG,MAAMA,gBAAN,CAAuB;EAC1C7iB,WAAW,CAACiF,CAAD,EAAI6d,eAAJ,EAAqB7G,UAArB,EAAiC;IACxC,KAAKhX,CAAL,GAASA,CAAT;IACA,KAAK6d,eAAL,GAAuBA,eAAvB;IACA,KAAKC,MAAL,GAAc,IAAIvW,OAAJ,EAAd;IACA,KAAKtM,EAAL,GAAU+b,UAAU,CAAC1b,aAArB;IACA,KAAKL,EAAL,CAAQ8iB,UAAR,GAAqB,KAAKA,UAAL,CAAgBhhB,IAAhB,CAAqB,IAArB,CAArB;EACH;;EACDmgB,WAAW,CAACc,OAAD,EAAU;IACjB,IAAI,KAAKC,OAAL,IAAgB,WAAWD,OAA/B,EAAwC;MACpC;MACA,MAAM3iB,KAAK,GAAG2iB,OAAO,CAAC,OAAD,CAAP,CAAiBE,YAA/B;;MACA,IAAI,KAAKC,MAAL,KAAgBrd,SAAhB,IAA6BzF,KAAK,IAAI,IAA1C,EAAgD;QAC5C,IAAI;UACA,KAAK8iB,MAAL,GAAc,KAAKN,eAAL,CAAqBhR,IAArB,CAA0BxR,KAA1B,EAAiC2L,MAAjC,CAAwC,KAAKiX,OAA7C,CAAd;QACH,CAFD,CAGA,OAAOG,CAAP,EAAU;UACN,MAAM,IAAIzF,KAAJ,CAAW,2CAA0Ctd,KAAM,qEAA3D,CAAN;QACH;MACJ;IACJ;EACJ;;EACDgjB,SAAS,GAAG;IACR;IACA,MAAML,OAAO,GAAG,KAAKG,MAAL,KAAgBrd,SAAhB,IAA6B,KAAKwd,KAAlC,GAA0C,KAAKH,MAAL,CAAYI,IAAZ,CAAiB,KAAKD,KAAtB,CAA1C,GAAyE,IAAzF;;IACA,IAAIN,OAAO,KAAK,IAAhB,EAAsB;MAClB;IACH,CALO,CAMR;;;IACA,KAAKQ,UAAL,CAAgB,CAAhB;EACH;;EACDT,UAAU,CAAC9iB,EAAD,EAAKwjB,IAAL,EAAW5V,KAAX,EAAkB;IACxB,OAAO,KAAK7I,CAAL,CAAO6H,GAAP,CAAW,MAAM;MACpB,IAAI6W,IAAJ;;MACA,IAAI,CAACzjB,EAAL,EAAS;QACLyjB,IAAI,GAAG,KAAKC,MAAL,CAAYhB,aAAZ,CAA0BiB,kBAA1B,CAA6C,KAAKC,YAAL,CAAkBJ,IAAI,CAACrhB,IAAvB,CAA7C,EAA2E;UAAE0hB,SAAS,EAAEL,IAAI,CAACpjB,KAAlB;UAAyBwN;QAAzB,CAA3E,EAA6GA,KAA7G,CAAP;QACA5N,EAAE,GAAG8jB,UAAU,CAACL,IAAD,CAAf;QACA,KAAKZ,MAAL,CAAYhe,GAAZ,CAAgB7E,EAAhB,EAAoByjB,IAApB;MACH,CAJD,MAKK;QACDA,IAAI,GAAG,KAAKZ,MAAL,CAAYxhB,GAAZ,CAAgBrB,EAAhB,CAAP;QACA,MAAM+jB,GAAG,GAAGN,IAAI,CAACpG,OAAjB;QACA0G,GAAG,CAACF,SAAJ,GAAgBL,IAAI,CAACpjB,KAArB;QACA2jB,GAAG,CAACnW,KAAJ,GAAY4V,IAAI,CAAC5V,KAAjB;MACH,CAZmB,CAapB;;;MACA6V,IAAI,CAACzQ,aAAL;MACA,OAAOhT,EAAP;IACH,CAhBM,CAAP;EAiBH;;EACD4jB,YAAY,CAACzhB,IAAD,EAAO;IACf,QAAQA,IAAR;MACI,KAAK,MAAL;QAAa,OAAO,KAAKuhB,MAAL,CAAYnB,WAAnB;;MACb,KAAK,QAAL;QAAe,OAAO,KAAKyB,MAAL,CAAYzB,WAAnB;;MACf,KAAK,QAAL;QAAe,OAAO,KAAK0B,MAAL,CAAY1B,WAAnB;;MACf;QAAS,MAAM,IAAI7E,KAAJ,CAAU,4CAAV,CAAN;IAJb;EAMH;;AAzDyC,CAA9C;AA2DA;;AAAmBiF,gBAAgB,CAAC3gB,IAAjB;EAAA,iBAA8G2gB,gBAA9G,EA73HiGxnB,+DA63HjG,CAAgJA,iDAAhJ,GA73HiGA,+DA63HjG,CAAsKA,0DAAtK,GA73HiGA,+DA63HjG,CAAqMA,qDAArM;AAAA;AACnB;;;AAAmBwnB,gBAAgB,CAACjc,IAAjB,kBA93HiGvL,+DA83HjG;EAAA,MAAkGwnB,gBAAlG;EAAA;EAAA;IAAA;MA93HiGxnB,4DA83HjG,WAA4fsnB,WAA5f;MA93HiGtnB,4DA83HjG,WAAglBqnB,aAAhlB;MA93HiGrnB,4DA83HjG,WAAsqBmnB,aAAtqB;IAAA;;IAAA;MAAA;;MA93HiGnnB,4DA83HjG,MA93HiGA,yDA83HjG;MA93HiGA,4DA83HjG,MA93HiGA,yDA83HjG;MA93HiGA,4DA83HjG,MA93HiGA,yDA83HjG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WA93HiGA,kEA83HjG;EAAA;EAAA;EAAA;EAAA;IAAA;MA93HiGA,6DA83HjG;MA93HiGA,0DA83HwpB,GAAzvB;IAAA;EAAA;EAAA;EAAA;AAAA;AACnBwnB,gBAAgB,GAAGjmB,iDAAU,CAAC,CAC1BsJ,QAAQ,CAAC;EACLxB,MAAM,EAAE,CAAC,kBAAD,EAAqB,oBAArB,EAA2C,oBAA3C,EAAiE,UAAjE,EAA6E,UAA7E,EAAyF,OAAzF,EAAkG,YAAlG,EAAgH,cAAhH,EAAgI,cAAhI,CADH;EAELU,OAAO,EAAE,CAAC,UAAD,EAAa,YAAb,EAA2B,iBAA3B;AAFJ,CAAD,CADkB,CAAD,EAK1Byd,gBAL0B,CAA7B;;AAMA;EAAA,mDAr4HoHxnB,+DAq4HpH,CAA4FwnB,gBAA5F,EAA0H,CAAC;IAC/GxgB,IAAI,EAAE7G,oDADyG;IAE/G8G,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,oBADX;MAECiD,QAAQ,EAAE,2BAFX;MAGCF,eAAe,EAAEpL,yEAHlB;MAICiJ,MAAM,EAAE,CACJ,kBADI,EAEJ,oBAFI,EAGJ,oBAHI,EAIJ,UAJI,EAKJ,UALI,EAMJ,OANI,EAOJ,YAPI,EAQJ,cARI,EASJ,cATI,EAUJ,SAVI;IAJT,CAAD;EAFyG,CAAD,CAA1H,EAmB4B,YAAY;IAAE,OAAO,CAAC;MAAErC,IAAI,EAAEhH,iDAASmB;IAAjB,CAAD,EAAsB;MAAE6F,IAAI,EAAEhH,0DAAkB+oB;IAA1B,CAAtB,EAAoD;MAAE/hB,IAAI,EAAEhH,qDAAa8G;IAArB,CAApD,CAAP;EAAsF,CAnBhI,EAmBkJ;IAAEyhB,MAAM,EAAE,CAAC;MAC7IvhB,IAAI,EAAEhG,uDADuI;MAE7IiG,IAAI,EAAE,CAACqgB,WAAD,EAAc;QAAEvB,MAAM,EAAE;MAAV,CAAd;IAFuI,CAAD,CAAV;IAGlI8C,MAAM,EAAE,CAAC;MACT7hB,IAAI,EAAEhG,uDADG;MAETiG,IAAI,EAAE,CAACogB,aAAD,EAAgB;QAAEtB,MAAM,EAAE;MAAV,CAAhB;IAFG,CAAD,CAH0H;IAMlI+C,MAAM,EAAE,CAAC;MACT9hB,IAAI,EAAEhG,uDADG;MAETiG,IAAI,EAAE,CAACkgB,aAAD,EAAgB;QAAEpB,MAAM,EAAE;MAAV,CAAhB;IAFG,CAAD;EAN0H,CAnBlJ;AAAA;;AA6BA,MAAM4C,UAAU,GAAIzU,IAAD,IAAU;EACzB,MAAM8U,SAAS,GAAG9U,IAAI,CAAC8U,SAAvB;;EACA,KAAK,IAAIphB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGohB,SAAS,CAAC1hB,MAA9B,EAAsCM,CAAC,EAAvC,EAA2C;IACvC,IAAIohB,SAAS,CAACphB,CAAD,CAAT,CAAaqhB,QAAb,KAA0B,CAA9B,EAAiC;MAC7B,OAAOD,SAAS,CAACphB,CAAD,CAAhB;IACH;EACJ;;EACD,MAAM,IAAI2a,KAAJ,CAAU,iCAAV,CAAN;AACH,CARD;;AAUA,IAAI2G,QAAQ,GAAG,MAAMA,QAAN,CAAe;EAC1BvkB,WAAW,CAACwG,CAAD,EAAIC,CAAJ,EAAOxB,CAAP,EAAU;IACjB,KAAKA,CAAL,GAASA,CAAT;IACA,KAAKuf,SAAL,GAAiB,KAAjB;IACA,KAAKtkB,EAAL,GAAUuG,CAAC,CAAClG,aAAZ;IACA,KAAKL,EAAL,CAAQ4O,gBAAR,CAAyB,aAAzB,EAAwC,MAAM;MAC1C,KAAK0V,SAAL,GAAiB,IAAjB;MACAhe,CAAC,CAAC0M,aAAF;IACH,CAHD;IAIA,KAAKhT,EAAL,CAAQ4O,gBAAR,CAAyB,YAAzB,EAAuC,MAAM;MACzC,KAAK0V,SAAL,GAAiB,KAAjB;MACAhe,CAAC,CAAC0M,aAAF;IACH,CAHD;IAIA1N,YAAY,CAAC,IAAD,EAAO,KAAKtF,EAAZ,EAAgB,CACxB,oBADwB,EAExB,qBAFwB,EAGxB,qBAHwB,EAIxB,oBAJwB,EAKxB,wBALwB,EAMxB,YANwB,EAOxB,aAPwB,EAQxB,aARwB,EASxB,YATwB,CAAhB,CAAZ;EAWH;;AAxByB,CAA9B;AA0BA;;AAAmBqkB,QAAQ,CAACriB,IAAT;EAAA,iBAAsGqiB,QAAtG,EAt8HiGlpB,+DAs8HjG,CAAgIA,4DAAhI,GAt8HiGA,+DAs8HjG,CAAiKA,qDAAjK,GAt8HiGA,+DAs8HjG,CAA2LA,iDAA3L;AAAA;AACnB;;;AAAmBkpB,QAAQ,CAAC3d,IAAT,kBAv8HiGvL,+DAu8HjG;EAAA,MAA0FkpB,QAA1F;EAAA;EAAA;IAAA;MAv8HiGlpB,4DAu8HjG,WAAqyBiB,sDAAryB;IAAA;;IAAA;MAAA;;MAv8HiGjB,4DAu8HjG,MAv8HiGA,yDAu8HjG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAv8HiGA,wDAu8HgwB,4CAAj2B;IAAA;;IAAA;MAv8HiGA,wDAu8HuxB,kDAAx3B;IAAA;EAAA;EAAA,eAE6B6D,iDAF7B,EAE8GA,6DAF9G;EAAA;EAAA;AAAA;AAGnBqlB,QAAQ,GAAG3nB,iDAAU,CAAC,CAClBsJ,QAAQ,CAAC;EACLxB,MAAM,EAAE,CACJ,UADI,EAEJ,qBAFI,EAGJ,oBAHI,EAIJ,iBAJI,EAKJ,aALI,EAMJ,YANI,EAOJ,UAPI,EAQJ,gBARI,EASJ,OATI,EAUJ,QAVI,EAWJ,gBAXI,EAYJ,mBAZI,EAaJ,QAbI,EAcJ,eAdI,EAeJ,gBAfI,EAgBJ,MAhBI,EAiBJ,mBAjBI,EAkBJ,cAlBI,EAmBJ,cAnBI,EAoBJ,aApBI,EAqBJ,SArBI,CADH;EAwBLU,OAAO,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,cAAvB,EAAuC,eAAvC,EAAwD,sBAAxD,EAAgF,sBAAhF;AAxBJ,CAAD,CADU,CAAD,EA2BlBmf,QA3BkB,CAArB;;AA4BA;EAAA,mDAt+HoHlpB,+DAs+HpH,CAA4FkpB,QAA5F,EAAkH,CAAC;IACvGliB,IAAI,EAAE7G,oDADiG;IAEvG8G,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,WADX;MAEC+C,eAAe,EAAEpL,yEAFlB;MAGCsL,QAAQ,EAAG;AAC/B;AACA,SALmB;MAMCrC,MAAM,EAAE,CACJ,UADI,EAEJ,qBAFI,EAGJ,oBAHI,EAIJ,iBAJI,EAKJ,aALI,EAMJ,YANI,EAOJ,UAPI,EAQJ,gBARI,EASJ,OATI,EAUJ,QAVI,EAWJ,gBAXI,EAYJ,mBAZI,EAaJ,QAbI,EAcJ,eAdI,EAeJ,gBAfI,EAgBJ,MAhBI,EAiBJ,mBAjBI,EAkBJ,cAlBI,EAmBJ,cAnBI,EAoBJ,aApBI,EAqBJ,SArBI;IANT,CAAD;EAFiG,CAAD,CAAlH,EAgC4B,YAAY;IAAE,OAAO,CAAC;MAAErC,IAAI,EAAEhH,4DAAoBsL;IAA5B,CAAD,EAAiC;MAAEtE,IAAI,EAAEhH,qDAAa8G;IAArB,CAAjC,EAA0D;MAAEE,IAAI,EAAEhH,iDAASmB;IAAjB,CAA1D,CAAP;EAAwF,CAhClI,EAgCoJ;IAAEuK,QAAQ,EAAE,CAAC;MACjJ1E,IAAI,EAAEhG,uDAD2I;MAEjJiG,IAAI,EAAE,CAAChG,sDAAD,EAAc;QAAE8kB,MAAM,EAAE;MAAV,CAAd;IAF2I,CAAD;EAAZ,CAhCpJ;AAAA;;AAqCA,IAAIuD,UAAU,GAAG,MAAMA,UAAN,CAAiB;EAC9B3kB,WAAW,CAACwG,CAAD,EAAIC,CAAJ,EAAOxB,CAAP,EAAU;IACjB,KAAKA,CAAL,GAASA,CAAT;IACA,KAAKuf,SAAL,GAAiB,KAAjB;IACA,KAAKtkB,EAAL,GAAUuG,CAAC,CAAClG,aAAZ;IACA,KAAKL,EAAL,CAAQ4O,gBAAR,CAAyB,aAAzB,EAAwC,MAAM;MAC1C,KAAK0V,SAAL,GAAiB,IAAjB;MACAhe,CAAC,CAAC0M,aAAF;IACH,CAHD;IAIA,KAAKhT,EAAL,CAAQ4O,gBAAR,CAAyB,YAAzB,EAAuC,MAAM;MACzC,KAAK0V,SAAL,GAAiB,KAAjB;MACAhe,CAAC,CAAC0M,aAAF;IACH,CAHD;IAIA1N,YAAY,CAAC,IAAD,EAAO,KAAKtF,EAAZ,EAAgB,CACxB,sBADwB,EAExB,uBAFwB,EAGxB,uBAHwB,EAIxB,sBAJwB,EAKxB,YALwB,EAMxB,aANwB,EAOxB,aAPwB,EAQxB,YARwB,CAAhB,CAAZ;EAUH;;AAvB6B,CAAlC;AAyBA;;AAAmBykB,UAAU,CAACziB,IAAX;EAAA,iBAAwGyiB,UAAxG,EApiIiGtpB,+DAoiIjG,CAAoIA,4DAApI,GApiIiGA,+DAoiIjG,CAAqKA,qDAArK,GApiIiGA,+DAoiIjG,CAA+LA,iDAA/L;AAAA;AACnB;;;AAAmBspB,UAAU,CAAC/d,IAAX,kBAriIiGvL,+DAqiIjG;EAAA,MAA4FspB,UAA5F;EAAA;EAAA;IAAA;MAriIiGtpB,4DAqiIjG,WAAysBiB,sDAAzsB;IAAA;;IAAA;MAAA;;MAriIiGjB,4DAqiIjG,MAriIiGA,yDAqiIjG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;EAAA;EAAA;IAAA;MAriIiGA,wDAqiIoqB,gEAArwB;IAAA;;IAAA;MAriIiGA,wDAqiIitB,kDAAlzB;IAAA;EAAA;EAAA,eAAi5B6D,iDAAj5B,EAAk+BA,6DAAl+B;EAAA;EAAA;AAAA;AACnBylB,UAAU,GAAG/nB,iDAAU,CAAC,CACpBsJ,QAAQ,CAAC;EACLxB,MAAM,EAAE,CACJ,WADI,EAEJ,UAFI,EAGJ,OAHI,EAIJ,qBAJI,EAKJ,iBALI,EAMJ,UANI,EAOJ,iBAPI,EAQJ,gBARI,EASJ,OATI,EAUJ,QAVI,EAWJ,eAXI,EAYJ,gBAZI,EAaJ,MAbI,EAcJ,cAdI,EAeJ,aAfI,EAgBJ,SAhBI,EAiBJ,eAjBI,EAkBJ,WAlBI,EAmBJ,MAnBI,EAoBJ,MApBI,CADH;EAuBLU,OAAO,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,cAAvB,EAAuC,eAAvC;AAvBJ,CAAD,CADY,CAAD,EA0BpBuf,UA1BoB,CAAvB;;AA2BA;EAAA,mDAjkIoHtpB,+DAikIpH,CAA4FspB,UAA5F,EAAoH,CAAC;IACzGtiB,IAAI,EAAE7G,oDADmG;IAEzG8G,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,aADX;MAEC+C,eAAe,EAAEpL,yEAFlB;MAGCsL,QAAQ,EAAG,sGAHZ;MAICrC,MAAM,EAAE,CACJ,WADI,EAEJ,UAFI,EAGJ,OAHI,EAIJ,qBAJI,EAKJ,iBALI,EAMJ,UANI,EAOJ,iBAPI,EAQJ,gBARI,EASJ,OATI,EAUJ,QAVI,EAWJ,eAXI,EAYJ,gBAZI,EAaJ,MAbI,EAcJ,cAdI,EAeJ,aAfI,EAgBJ,SAhBI,EAiBJ,eAjBI,EAkBJ,WAlBI,EAmBJ,MAnBI,EAoBJ,MApBI;IAJT,CAAD;EAFmG,CAAD,CAApH,EA6B4B,YAAY;IAAE,OAAO,CAAC;MAAErC,IAAI,EAAEhH,4DAAoBsL;IAA5B,CAAD,EAAiC;MAAEtE,IAAI,EAAEhH,qDAAa8G;IAArB,CAAjC,EAA0D;MAAEE,IAAI,EAAEhH,iDAASmB;IAAjB,CAA1D,CAAP;EAAwF,CA7BlI,EA6BoJ;IAAEuK,QAAQ,EAAE,CAAC;MACjJ1E,IAAI,EAAEhG,uDAD2I;MAEjJiG,IAAI,EAAE,CAAChG,sDAAD,EAAc;QAAE8kB,MAAM,EAAE;MAAV,CAAd;IAF2I,CAAD;EAAZ,CA7BpJ;AAAA;;AAkCA,MAAMwD,qBAAN,CAA4B;EACxB5kB,WAAW,CAAC6kB,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;EACH;EACD;AACJ;AACA;;;EACI5Y,MAAM,CAAC9F,IAAD,EAAO;IACT;IACA,OAAO,KAAK0e,IAAL,CAAU5Y,MAAV,CAAkB9F,IAAI,IAAI,EAA1B,CAAP;EACH;EACD;AACJ;AACA;;;EACI2e,OAAO,CAAClZ,IAAD,EAAOmZ,IAAP,EAAajV,EAAb,EAAiB;IACpB,OAAO,KAAK+U,IAAL,CAAUC,OAAV,CAAkBlZ,IAAlB,EAAwBmZ,IAAxB,EAA8BjV,EAA9B,CAAP;EACH;EACD;AACJ;AACA;;;EACIkV,MAAM,GAAG;IACL,OAAO,KAAKH,IAAL,CAAUG,MAAV,EAAP;EACH;;AAtBuB;;AAyB5B,MAAMC,qBAAN,SAAoCL,qBAApC,CAA0D;EACtD5kB,WAAW,GAAG;IACV,MAAMlC,8DAAN;EACH;;AAHqD;AAK1D;;;AAAmBmnB,qBAAqB,CAAC/iB,IAAtB;EAAA,iBAAmH+iB,qBAAnH;AAAA;AACnB;;;AAAmBA,qBAAqB,CAAC3Y,KAAtB,kBAloIiGjR,gEAkoIjG;EAAA,OAAuH4pB,qBAAvH;EAAA,SAAuHA,qBAAvH;EAAA,YAA0J;AAA1J;;AACnB;EAAA,mDAnoIoH5pB,+DAmoIpH,CAA4F4pB,qBAA5F,EAA+H,CAAC;IACpH5iB,IAAI,EAAE3G,qDAD8G;IAEpH4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAF8G,CAAD,CAA/H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMgP,eAAN,SAA8BN,qBAA9B,CAAoD;EAChD5kB,WAAW,GAAG;IACV,MAAMjC,wDAAN;EACH;;AAH+C;AAKpD;;;AAAmBmnB,eAAe,CAAChjB,IAAhB;EAAA,iBAA6GgjB,eAA7G;AAAA;AACnB;;;AAAmBA,eAAe,CAAC5Y,KAAhB,kBAhpIiGjR,gEAgpIjG;EAAA,OAAiH6pB,eAAjH;EAAA,SAAiHA,eAAjH;EAAA,YAA8I;AAA9I;;AACnB;EAAA,mDAjpIoH7pB,+DAipIpH,CAA4F6pB,eAA5F,EAAyH,CAAC;IAC9G7iB,IAAI,EAAE3G,qDADwG;IAE9G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFwG,CAAD,CAAzH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMiP,iBAAN,SAAgCP,qBAAhC,CAAsD;EAClD5kB,WAAW,GAAG;IACV,MAAMhC,0DAAN;EACH;;AAHiD;AAKtD;;;AAAmBmnB,iBAAiB,CAACjjB,IAAlB;EAAA,iBAA+GijB,iBAA/G;AAAA;AACnB;;;AAAmBA,iBAAiB,CAAC7Y,KAAlB,kBA9pIiGjR,gEA8pIjG;EAAA,OAAmH8pB,iBAAnH;EAAA,SAAmHA,iBAAnH;EAAA,YAAkJ;AAAlJ;;AACnB;EAAA,mDA/pIoH9pB,+DA+pIpH,CAA4F8pB,iBAA5F,EAA2H,CAAC;IAChH9iB,IAAI,EAAE3G,qDAD0G;IAEhH4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAF0G,CAAD,CAA3H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMkP,cAAN,CAAqB;EACjB;AACJ;AACA;AACA;AACA;EACIC,IAAI,CAACC,MAAD,EAAS;IACT,OAAOrnB,4DAAA,CAAoBqnB,MAApB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIC,KAAK,CAACD,MAAD,EAAS;IACV,OAAOrnB,6DAAA,CAAqBqnB,MAArB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIE,MAAM,CAACF,MAAD,EAAS;IACX,OAAOrnB,8DAAA,CAAsBqnB,MAAtB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIG,MAAM,CAACC,YAAD,EAAeJ,MAAf,EAAuB;IACzB,OAAOrnB,8DAAA,CAAsBynB,YAAtB,EAAoCJ,MAApC,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIzI,YAAY,CAAC6I,YAAD,EAAeJ,MAAf,EAAuB;IAC/B,OAAOrnB,oEAAA,CAA4BynB,YAA5B,EAA0CJ,MAA1C,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIK,MAAM,CAACL,MAAD,EAAS;IACX,OAAOrnB,8DAAA,CAAsBqnB,MAAtB,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACIM,SAAS,CAACN,MAAD,EAAS;IACd,OAAOrnB,iEAAA,CAAyBqnB,MAAzB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI/jB,GAAG,CAAC+jB,MAAD,EAAS;IACR,OAAOrnB,2DAAA,CAAmBqnB,MAAnB,CAAP;EACH;EACD;AACJ;AACA;;;EACIO,OAAO,GAAG;IACN,OAAO5nB,+DAAA,EAAP;EACH;EACD;AACJ;AACA;;;EACI6nB,QAAQ,GAAG;IACP,OAAO7nB,gEAAA,EAAP;EACH;;AAtFgB;AAwFrB;;;AAAmBmnB,cAAc,CAACljB,IAAf;EAAA,iBAA4GkjB,cAA5G;AAAA;AACnB;;;AAAmBA,cAAc,CAAC9Y,KAAf,kBA/vIiGjR,gEA+vIjG;EAAA,OAAgH+pB,cAAhH;EAAA,SAAgHA,cAAhH;EAAA,YAA4I;AAA5I;;AACnB;EAAA,mDAhwIoH/pB,+DAgwIpH,CAA4F+pB,cAA5F,EAAwH,CAAC;IAC7G/iB,IAAI,EAAE3G,qDADuG;IAE7G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFuG,CAAD,CAAxH;AAAA;;AAOA,MAAM6P,gBAAN,SAA+BnB,qBAA/B,CAAqD;EACjD5kB,WAAW,GAAG;IACV,MAAM9B,yDAAN;EACH;;AAHgD;AAKrD;;;AAAmB6nB,gBAAgB,CAAC7jB,IAAjB;EAAA,iBAA8G6jB,gBAA9G;AAAA;AACnB;;;AAAmBA,gBAAgB,CAACzZ,KAAjB,kBA7wIiGjR,gEA6wIjG;EAAA,OAAkH0qB,gBAAlH;EAAA,SAAkHA,gBAAlH;EAAA,YAAgJ;AAAhJ;;AACnB;EAAA,mDA9wIoH1qB,+DA8wIpH,CAA4F0qB,gBAA5F,EAA0H,CAAC;IAC/G1jB,IAAI,EAAE3G,qDADyG;IAE/G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFyG,CAAD,CAA1H,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8P,mBAAN,CAA0B;;AAG1B,MAAMC,eAAN,SAA8BrB,qBAA9B,CAAoD;EAChD5kB,WAAW,CAAC4hB,eAAD,EAAkBnE,QAAlB,EAA4Bxd,QAA5B,EACX;EACA4N,mBAFW,EAEU;IACjB,MAAM1P,wDAAN;IACA,KAAKyjB,eAAL,GAAuBA,eAAvB;IACA,KAAKnE,QAAL,GAAgBA,QAAhB;IACA,KAAKxd,QAAL,GAAgBA,QAAhB;IACA,KAAK4N,mBAAL,GAA2BA,mBAA3B;EACH;;EACD5B,MAAM,CAAC9F,IAAD,EAAO;IACT,IAAI3E,EAAJ;;IACA,OAAO,MAAMyK,MAAN,CAAapH,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB9H,IAAlB,CAAd,EAAuC;MAAE0b,QAAQ,EAAE,KAAKD,eAAL,CAAqB3V,MAArB,CAA4B,CAACzK,EAAE,GAAG,KAAKic,QAAX,MAAyB,IAAzB,IAAiCjc,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,KAAKqM,mBAAvF,EAA4G,KAAK5N,QAAjH;IAAZ,CAAvC,CAAb,CAAP;EACH;;AAb+C;AAepD;;;AAAmBgmB,eAAe,CAAC/jB,IAAhB;EAAA,iBAA6G+jB,eAA7G,EA7yIiG5qB,sDA6yIjG,CAA8IyQ,eAA9I,GA7yIiGzQ,sDA6yIjG,CAA0KA,mEAA1K,GA7yIiGA,sDA6yIjG,CAAkNA,mDAAlN,GA7yIiGA,sDA6yIjG,CAA0O2qB,mBAA1O;AAAA;AACnB;;;AAAmBC,eAAe,CAAC3Z,KAAhB,kBA9yIiGjR,gEA8yIjG;EAAA,OAAiH4qB,eAAjH;EAAA,SAAiHA,eAAjH;AAAA;;AACnB;EAAA,mDA/yIoH5qB,+DA+yIpH,CAA4F4qB,eAA5F,EAAyH,CAAC;IAC9G5jB,IAAI,EAAE3G,qDAAUA;EAD8F,CAAD,CAAzH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAE2G,IAAI,EAAEyJ;IAAR,CAAD,EAA4B;MAAEzJ,IAAI,EAAEhH,mEAA2BukB;IAAnC,CAA5B,EAAmE;MAAEvd,IAAI,EAAEhH,mDAAWM;IAAnB,CAAnE,EAA0F;MAAE0G,IAAI,EAAE2jB,mBAAR;MAA6B9M,UAAU,EAAE,CAAC;QACjK7W,IAAI,EAAEvG,mDAAQA;MADmJ,CAAD;IAAzC,CAA1F,CAAP;EAElB,CAJxB;AAAA;;AAMA,MAAMoqB,iBAAN,SAAgCtB,qBAAhC,CAAsD;EAClD5kB,WAAW,CAAC4hB,eAAD,EAAkBnE,QAAlB,EAA4Bxd,QAA5B,EACX;EACA4N,mBAFW,EAEU;IACjB,MAAMzP,0DAAN;IACA,KAAKwjB,eAAL,GAAuBA,eAAvB;IACA,KAAKnE,QAAL,GAAgBA,QAAhB;IACA,KAAKxd,QAAL,GAAgBA,QAAhB;IACA,KAAK4N,mBAAL,GAA2BA,mBAA3B;EACH;;EACD5B,MAAM,CAAC9F,IAAD,EAAO;IACT,IAAI3E,EAAJ;;IACA,OAAO,MAAMyK,MAAN,CAAapH,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB9H,IAAlB,CAAd,EAAuC;MAAE0b,QAAQ,EAAE,KAAKD,eAAL,CAAqB3V,MAArB,CAA4B,CAACzK,EAAE,GAAG,KAAKic,QAAX,MAAyB,IAAzB,IAAiCjc,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,KAAKqM,mBAAvF,EAA4G,KAAK5N,QAAjH;IAAZ,CAAvC,CAAb,CAAP;EACH;;AAbiD;AAetD;;;AAAmBimB,iBAAiB,CAAChkB,IAAlB;EAAA,iBAA+GgkB,iBAA/G,EAp0IiG7qB,sDAo0IjG,CAAkJyQ,eAAlJ,GAp0IiGzQ,sDAo0IjG,CAA8KA,mEAA9K,GAp0IiGA,sDAo0IjG,CAAsNA,mDAAtN,GAp0IiGA,sDAo0IjG,CAA8O2qB,mBAA9O;AAAA;AACnB;;;AAAmBE,iBAAiB,CAAC5Z,KAAlB,kBAr0IiGjR,gEAq0IjG;EAAA,OAAmH6qB,iBAAnH;EAAA,SAAmHA,iBAAnH;AAAA;;AACnB;EAAA,mDAt0IoH7qB,+DAs0IpH,CAA4F6qB,iBAA5F,EAA2H,CAAC;IAChH7jB,IAAI,EAAE3G,qDAAUA;EADgG,CAAD,CAA3H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAE2G,IAAI,EAAEyJ;IAAR,CAAD,EAA4B;MAAEzJ,IAAI,EAAEhH,mEAA2BukB;IAAnC,CAA5B,EAAmE;MAAEvd,IAAI,EAAEhH,mDAAWM;IAAnB,CAAnE,EAA0F;MAAE0G,IAAI,EAAE2jB,mBAAR;MAA6B9M,UAAU,EAAE,CAAC;QACjK7W,IAAI,EAAEvG,mDAAQA;MADmJ,CAAD;IAAzC,CAA1F,CAAP;EAElB,CAJxB;AAAA;;AAMA,MAAMqqB,eAAN,SAA8BvB,qBAA9B,CAAoD;EAChD5kB,WAAW,GAAG;IACV,MAAM3B,wDAAN;EACH;;AAH+C;AAKpD;;;AAAmB8nB,eAAe,CAACjkB,IAAhB;EAAA,iBAA6GikB,eAA7G;AAAA;AACnB;;;AAAmBA,eAAe,CAAC7Z,KAAhB,kBAl1IiGjR,gEAk1IjG;EAAA,OAAiH8qB,eAAjH;EAAA,SAAiHA,eAAjH;EAAA,YAA8I;AAA9I;;AACnB;EAAA,mDAn1IoH9qB,+DAm1IpH,CAA4F8qB,eAA5F,EAAyH,CAAC;IAC9G9jB,IAAI,EAAE3G,qDADwG;IAE9G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFwG,CAAD,CAAzH,EAK4B,YAAY;IAAE,OAAO,EAAP;EAAY,CALtD;AAAA;;AAOA,MAAMkQ,aAAN,CAAoB;EAChB;AACJ;AACA;AACA;EACIjF,IAAI,CAACkF,EAAD,EAAK;IACLC,QAAQ,GAAGnF,IAAX,CAAgBkF,EAAhB;EACH;EACD;AACJ;AACA;AACA;;;EACIE,KAAK,CAACF,EAAD,EAAK;IACNC,QAAQ,GAAGC,KAAX,CAAiBF,EAAjB;EACH;;AAde;AAgBpB;;;AAAmBD,aAAa,CAAClkB,IAAd;EAAA,iBAA2GkkB,aAA3G;AAAA;AACnB;;;AAAmBA,aAAa,CAAC9Z,KAAd,kBA32IiGjR,gEA22IjG;EAAA,OAA+G+qB,aAA/G;EAAA,SAA+GA,aAA/G;EAAA,YAA0I;AAA1I;;AACnB;EAAA,mDA52IoH/qB,+DA42IpH,CAA4F+qB,aAA5F,EAAuH,CAAC;IAC5G/jB,IAAI,EAAE3G,qDADsG;IAE5G4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAFsG,CAAD,CAAvH;AAAA;;AAMA,MAAMoQ,QAAQ,GAAG,MAAM;EACnB,MAAMvP,GAAG,GAAG,OAAOX,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,IAArD;;EACA,IAAIW,GAAG,IAAI,IAAX,EAAiB;IACb,MAAMV,KAAK,GAAGU,GAAG,CAACV,KAAlB;;IACA,IAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,KAAK,CAAjC,GAAqC,KAAK,CAA1C,GAA8CA,KAAK,CAACmQ,KAAxD,EAA+D;MAC3D,OAAOnQ,KAAK,CAACmQ,KAAb;IACH;;IACD,OAAO;MACHrF,IAAI,EAAGkF,EAAD,IAAQtP,GAAG,CAACrX,qBAAJ,CAA0B2mB,EAA1B,CADX;MAEHE,KAAK,EAAGF,EAAD,IAAQtP,GAAG,CAACrX,qBAAJ,CAA0B2mB,EAA1B;IAFZ,CAAP;EAIH;;EACD,OAAO;IACHlF,IAAI,EAAGkF,EAAD,IAAQA,EAAE,EADb;IAEHE,KAAK,EAAGF,EAAD,IAAQA,EAAE;EAFd,CAAP;AAIH,CAhBD;;AAkBA,MAAMI,mBAAN,CAA0B;EACtB;AACJ;AACA;EACIxa,MAAM,CAACya,WAAD,EAAc;IAChB,OAAOpoB,4DAAe,CAACooB,WAAD,CAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,UAAU,CAACC,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiBC,WAAjB,EAA8B;IACpC,OAAOzoB,oEAAuB,CAACqoB,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiBC,WAAjB,CAA9B;EACH;;AAvBqB;AAyB1B;;;AAAmBP,mBAAmB,CAACvkB,IAApB;EAAA,iBAAiHukB,mBAAjH;AAAA;AACnB;;;AAAmBA,mBAAmB,CAACna,KAApB,kBA95IiGjR,gEA85IjG;EAAA,OAAqHorB,mBAArH;EAAA,SAAqHA,mBAArH;EAAA,YAAsJ;AAAtJ;;AACnB;EAAA,mDA/5IoHprB,+DA+5IpH,CAA4ForB,mBAA5F,EAA6H,CAAC;IAClHpkB,IAAI,EAAE3G,qDAD4G;IAElH4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAF4G,CAAD,CAA7H;AAAA;;AAOA,MAAM+Q,iBAAN,CAAwB;EACpBjnB,WAAW,CAAC+L,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;EACH;EACD;AACJ;AACA;;;EACIE,MAAM,CAAC9F,IAAD,EAAO+gB,oBAAoB,GAAG,KAA9B,EAAqC;IACvC,IAAIA,oBAAJ,EAA0B;MACtBriB,MAAM,CAACsiB,mBAAP,CAA2BhhB,IAA3B,EAAiCtE,OAAjC,CAA0CgU,GAAD,IAAS;QAC9C,IAAI,OAAO1P,IAAI,CAAC0P,GAAD,CAAX,KAAqB,UAAzB,EAAqC;UACjC,MAAMhV,EAAE,GAAGsF,IAAI,CAAC0P,GAAD,CAAf;;UACA1P,IAAI,CAAC0P,GAAD,CAAJ,GAAY,CAAC,GAAGuR,KAAJ,KAAc,KAAKrb,IAAL,CAAUe,GAAV,CAAc,MAAMjM,EAAE,CAAC,GAAGumB,KAAJ,CAAtB,CAA1B;QACH;MACJ,CALD;IAMH;;IACD,OAAO5oB,0DAAa,CAAC2H,IAAD,CAApB;EACH;;AAjBmB;AAmBxB;;;AAAmB8gB,iBAAiB,CAAC/kB,IAAlB;EAAA,iBAA+G+kB,iBAA/G,EAz7IiG5rB,sDAy7IjG,CAAkJA,iDAAlJ;AAAA;AACnB;;;AAAmB4rB,iBAAiB,CAAC3a,KAAlB,kBA17IiGjR,gEA07IjG;EAAA,OAAmH4rB,iBAAnH;EAAA,SAAmHA,iBAAnH;EAAA,YAAkJ;AAAlJ;;AACnB;EAAA,mDA37IoH5rB,+DA27IpH,CAA4F4rB,iBAA5F,EAA2H,CAAC;IAChH5kB,IAAI,EAAE3G,qDAD0G;IAEhH4G,IAAI,EAAE,CAAC;MACC4T,UAAU,EAAE;IADb,CAAD;EAF0G,CAAD,CAA3H,EAK4B,YAAY;IAAE,OAAO,CAAC;MAAE7T,IAAI,EAAEhH,iDAASmB;IAAjB,CAAD,CAAP;EAA+B,CALzE;AAAA;;AAOA,MAAM6qB,kBAAN,CAAyB;EACrB;EACAC,YAAY,CAACC,MAAD,EAAS;IACjB,OAAO,KAAP;EACH,CAJoB,CAKrB;;;EACAC,YAAY,CAACD,MAAD,EAAS;IACjB,OAAO,KAAP;EACH;;EACDE,KAAK,EACL;EACAF,MAFK,EAGL;EACAG,aAJK,EAIU;IACX;EACH,CAfoB,CAgBrB;;;EACAC,QAAQ,CAACJ,MAAD,EAAS;IACb,OAAO,IAAP;EACH;;EACDK,gBAAgB,CAACC,MAAD,EAASC,IAAT,EAAe;IAC3B,IAAID,MAAM,CAACpJ,WAAP,KAAuBqJ,IAAI,CAACrJ,WAAhC,EAA6C;MACzC,OAAO,KAAP;IACH,CAH0B,CAI3B;;;IACA,MAAMsJ,YAAY,GAAGF,MAAM,CAAC5lB,MAA5B;IACA,MAAM+lB,aAAa,GAAGF,IAAI,CAAC7lB,MAA3B;IACA,MAAMgmB,KAAK,GAAGpjB,MAAM,CAACqjB,IAAP,CAAYH,YAAZ,CAAd;IACA,MAAMI,KAAK,GAAGtjB,MAAM,CAACqjB,IAAP,CAAYF,aAAZ,CAAd;;IACA,IAAIC,KAAK,CAACtlB,MAAN,KAAiBwlB,KAAK,CAACxlB,MAA3B,EAAmC;MAC/B,OAAO,KAAP;IACH,CAX0B,CAY3B;;;IACA,KAAK,MAAMkT,GAAX,IAAkBoS,KAAlB,EAAyB;MACrB,IAAID,aAAa,CAACnS,GAAD,CAAb,KAAuBkS,YAAY,CAAClS,GAAD,CAAvC,EAA8C;QAC1C,OAAO,KAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;AAvCoB;AA0CzB;AACA;AACA;;;AAEA,MAAMuS,aAAa,GAAG,CAAC9R,MAAD,EAASE,GAAT,EAAczK,IAAd,KAAuB;EACzC,OAAO,MAAM;IACT,MAAMgL,GAAG,GAAGP,GAAG,CAACQ,WAAhB;;IACA,IAAID,GAAG,IAAI,OAAOX,MAAP,KAAkB,WAA7B,EAA0C;MACtC3X,wDAAW,CAACoG,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkBqI,MAAlB,CAAd,EAAyC;QAAE+R,SAAS,EAAG7oB,CAAD,IAAOuM,IAAI,CAACe,GAAL,CAAStN,CAAT;MAApB,CAAzC,CAAD,CAAX;MACA,MAAM8oB,KAAK,GAAG,qCAAqC9R,GAAG,CAAC+R,IAAzC,GAAgD,iCAAhD,GAAoF,kBAAlG;MACA,OAAOlpB,kEAAc,GAAGkU,IAAjB,CAAsB,MAAM;QAC/B,OAAOjU,wEAAoB,CAACyX,GAAD,EAAM;UAC7ByR,OAAO,EAAE,CAAC,UAAD,EAAa,SAAb,CADoB;UAE7BC,SAAS,EAAE,IAFkB;UAG7BlpB,GAH6B;UAI7BmpB,GAAG,EAAGlpB,CAAD,IAAOuM,IAAI,CAAC7G,iBAAL,CAAuB1F,CAAvB,CAJiB;;UAK7BmpB,GAAG,CAACC,GAAD,EAAMjjB,SAAN,EAAiB0gB,EAAjB,EAAqBlgB,IAArB,EAA2B;YAC1ByiB,GAAG,CAACN,KAAD,CAAH,CAAW3iB,SAAX,EAAsB0gB,EAAtB,EAA0BlgB,IAA1B;UACH,CAP4B;;UAQ7B0iB,GAAG,CAACD,GAAD,EAAMjjB,SAAN,EAAiB0gB,EAAjB,EAAqBlgB,IAArB,EAA2B;YAC1ByiB,GAAG,CAAC7Z,mBAAJ,CAAwBpJ,SAAxB,EAAmC0gB,EAAnC,EAAuClgB,IAAvC;UACH;;QAV4B,CAAN,CAA3B;MAYH,CAbM,CAAP;IAcH;EACJ,CApBD;AAqBH,CAtBD;;AAwBA,MAAM2iB,UAAU,GAAG,CACfviB,YADe,EAEfS,iBAFe,EAGfC,MAHe,EAIfC,SAJe,EAKfC,aALe,EAMfC,WANe,EAOfC,QAPe,EAQfC,aARe,EASfC,cATe,EAUfC,SAVe,EAWfC,UAXe,EAYfC,OAZe,EAafC,cAbe,EAcfC,aAde,EAefC,eAfe,EAgBfC,YAhBe,EAiBfC,WAjBe,EAkBfC,OAlBe,EAmBfC,MAnBe,EAoBfC,UApBe,EAqBfC,WArBe,EAsBfC,iBAtBe,EAuBfC,MAvBe,EAwBfC,YAxBe,EAyBfC,UAzBe,EA0BfC,SA1Be,EA2BfC,OA3Be,EA4BfC,SA5Be,EA6BfC,OA7Be,EA8BfC,MA9Be,EA+BfC,iBA/Be,EAgCfC,wBAhCe,EAiCfC,QAjCe,EAkCfC,OAlCe,EAmCfC,cAnCe,EAoCfC,YApCe,EAqCfC,aArCe,EAsCfC,cAtCe,EAuCfC,cAvCe,EAwCfC,QAxCe,EAyCfC,OAzCe,EA0CfC,aA1Ce,EA2CfC,OA3Ce,EA4CfC,aA5Ce,EA6CfC,aA7Ce,EA8CfC,MA9Ce,EA+CfC,UA/Ce,EAgDfC,OAhDe,EAiDfC,cAjDe,EAkDfC,QAlDe,EAmDfC,aAnDe,EAoDfC,QApDe,EAqDfC,YArDe,EAsDfC,mBAtDe,EAuDfC,UAvDe,EAwDfC,eAxDe,EAyDfC,eAzDe,EA0DfC,MA1De,EA2DfC,YA3De,EA4DfC,UA5De,EA6DfC,gBA7De,EA8DfC,SA9De,EA+DfC,eA/De,EAgEfC,eAhEe,EAiEfC,QAjEe,EAkEfC,SAlEe,EAmEfC,UAnEe,EAoEfC,YApEe,EAqEfC,SArEe,EAsEfC,YAtEe,EAuEfC,OAvEe,EAwEfC,WAxEe,EAyEfC,YAzEe,EA0EfC,QA1Ee,EA2EfC,SA3Ee,EA4EfC,UA5Ee,CAAnB;AA+EA,MAAMqd,YAAY,GAAG,CACjB;AACA,GAAGD,UAFc,EAGjB;AACAvE,QAJiB,EAKjBI,UALiB,EAMjB;AACAnhB,6BAPiB,EAQjBQ,6BARiB,EASjBE,2BATiB,EAUjBE,4BAViB,EAWjBE,0BAXiB,EAYjB;AACA0b,OAbiB,EAcjBrE,eAdiB,EAejB0F,8BAfiB,EAgBjBM,WAhBiB,EAiBjBG,2BAjBiB,EAkBjBS,mCAlBiB,EAmBjB;AACAC,aApBiB,EAqBjBE,aArBiB,EAsBjBC,WAtBiB,EAuBjBE,gBAvBiB,CAArB;;AAyBA,MAAMmG,WAAN,CAAkB;EACA,OAAPC,OAAO,CAAC3S,MAAD,EAAS;IACnB,OAAO;MACH4S,QAAQ,EAAEF,WADP;MAEHjlB,SAAS,EAAE,CACP;QACIJ,OAAO,EAAEwS,WADb;QAEIlH,QAAQ,EAAEqH;MAFd,CADO,EAKP;QACI3S,OAAO,EAAEpH,0DADb;QAEI2S,UAAU,EAAEkZ,aAFhB;QAGIvkB,KAAK,EAAE,IAHX;QAIIuL,IAAI,EAAE,CAAC+G,WAAD,EAAchX,qDAAd,EAAwB3C,iDAAxB;MAJV,CALO;IAFR,CAAP;EAeH;;AAjBa;AAmBlB;;;AAAmBwsB,WAAW,CAAC9mB,IAAZ;EAAA,iBAAyG8mB,WAAzG;AAAA;AACnB;;;AAAmBA,WAAW,CAACG,IAAZ,kBApoJiG9tB,8DAooJjG;EAAA,MAA0G2tB,WAA1G;EAAA,eAAsIziB,YAAtI,EAAoJS,iBAApJ,EAAuKC,MAAvK,EAA+KC,SAA/K,EAA0LC,aAA1L,EAAyMC,WAAzM,EAAsNC,QAAtN,EAAgOC,aAAhO,EAA+OC,cAA/O,EAA+PC,SAA/P,EAA0QC,UAA1Q,EAAsRC,OAAtR,EAA+RC,cAA/R,EAA+SC,aAA/S,EAA8TC,eAA9T,EAA+UC,YAA/U,EAA6VC,WAA7V,EAA0WC,OAA1W,EAAmXC,MAAnX,EAA2XC,UAA3X,EAAuYC,WAAvY,EAAoZC,iBAApZ,EAAuaC,MAAva,EAA+aC,YAA/a,EAA6bC,UAA7b,EAAycC,SAAzc,EAAodC,OAApd,EAA6dC,SAA7d,EAAweC,OAAxe,EAAifC,MAAjf,EAAyfC,iBAAzf,EAA4gBC,wBAA5gB,EAAsiBC,QAAtiB,EAAgjBC,OAAhjB,EAAyjBC,cAAzjB,EAAykBC,YAAzkB,EAAulBC,aAAvlB,EAAsmBC,cAAtmB,EAAsnBC,cAAtnB,EAAsoBC,QAAtoB,EAAgpBC,OAAhpB,EAAypBC,aAAzpB,EAAwqBC,OAAxqB,EAAirBC,aAAjrB,EAAgsBC,aAAhsB,EAA+sBC,MAA/sB,EAAutBC,UAAvtB,EAAmuBC,OAAnuB,EAA4uBC,cAA5uB,EAA4vBC,QAA5vB,EAAswBC,aAAtwB,EAAqxBC,QAArxB,EAA+xBC,YAA/xB,EAA6yBC,mBAA7yB,EAAk0BC,UAAl0B,EAA80BC,eAA90B,EAA+1BC,eAA/1B,EAAg3BC,MAAh3B,EAAw3BC,YAAx3B,EAAs4BC,UAAt4B,EAAk5BC,gBAAl5B,EAAo6BC,SAAp6B,EAA+6BC,eAA/6B,EAAg8BC,eAAh8B,EAAi9BC,QAAj9B,EAA29BC,SAA39B,EAAs+BC,UAAt+B,EAAk/BC,YAAl/B,EAAggCC,SAAhgC,EAA2gCC,YAA3gC,EAAyhCC,OAAzhC,EAAkiCC,WAAliC,EAA+iCC,YAA/iC,EAA6jCC,QAA7jC,EAAukCC,SAAvkC,EAAklCC,UAAllC,EACX;EACA6Y,QAFW,EAGXI,UAHW,EAIX;EACAnhB,6BALW,EAMXQ,6BANW,EAOXE,2BAPW,EAQXE,4BARW,EASXE,0BATW,EAUX;EACA0b,OAXW,EAYXrE,eAZW,EAaX0F,8BAbW,EAcXM,WAdW,EAeXG,2BAfW,EAgBXS,mCAhBW,EAiBX;EACAC,aAlBW,EAmBXE,aAnBW,EAoBXC,WApBW,EAqBXE,gBArBW;EAAA,UAqBkBzjB,yDArBlB;EAAA,UAqB2CmH,YArB3C,EAqByDS,iBArBzD,EAqB4EC,MArB5E,EAqBoFC,SArBpF,EAqB+FC,aArB/F,EAqB8GC,WArB9G,EAqB2HC,QArB3H,EAqBqIC,aArBrI,EAqBoJC,cArBpJ,EAqBoKC,SArBpK,EAqB+KC,UArB/K,EAqB2LC,OArB3L,EAqBoMC,cArBpM,EAqBoNC,aArBpN,EAqBmOC,eArBnO,EAqBoPC,YArBpP,EAqBkQC,WArBlQ,EAqB+QC,OArB/Q,EAqBwRC,MArBxR,EAqBgSC,UArBhS,EAqB4SC,WArB5S,EAqByTC,iBArBzT,EAqB4UC,MArB5U,EAqBoVC,YArBpV,EAqBkWC,UArBlW,EAqB8WC,SArB9W,EAqByXC,OArBzX,EAqBkYC,SArBlY,EAqB6YC,OArB7Y,EAqBsZC,MArBtZ,EAqB8ZC,iBArB9Z,EAqBibC,wBArBjb,EAqB2cC,QArB3c,EAqBqdC,OArBrd,EAqB8dC,cArB9d,EAqB8eC,YArB9e,EAqB4fC,aArB5f,EAqB2gBC,cArB3gB,EAqB2hBC,cArB3hB,EAqB2iBC,QArB3iB,EAqBqjBC,OArBrjB,EAqB8jBC,aArB9jB,EAqB6kBC,OArB7kB,EAqBslBC,aArBtlB,EAqBqmBC,aArBrmB,EAqBonBC,MArBpnB,EAqB4nBC,UArB5nB,EAqBwoBC,OArBxoB,EAqBipBC,cArBjpB,EAqBiqBC,QArBjqB,EAqB2qBC,aArB3qB,EAqB0rBC,QArB1rB,EAqBosBC,YArBpsB,EAqBktBC,mBArBltB,EAqBuuBC,UArBvuB,EAqBmvBC,eArBnvB,EAqBowBC,eArBpwB,EAqBqxBC,MArBrxB,EAqB6xBC,YArB7xB,EAqB2yBC,UArB3yB,EAqBuzBC,gBArBvzB,EAqBy0BC,SArBz0B,EAqBo1BC,eArBp1B,EAqBq2BC,eArBr2B,EAqBs3BC,QArBt3B,EAqBg4BC,SArBh4B,EAqB24BC,UArB34B,EAqBu5BC,YArBv5B,EAqBq6BC,SArBr6B,EAqBg7BC,YArBh7B,EAqB87BC,OArB97B,EAqBu8BC,WArBv8B,EAqBo9BC,YArBp9B,EAqBk+BC,QArBl+B,EAqB4+BC,SArB5+B,EAqBu/BC,UArBv/B,EAsBX;EACA6Y,QAvBW,EAwBXI,UAxBW,EAyBX;EACAnhB,6BA1BW,EA2BXQ,6BA3BW,EA4BXE,2BA5BW,EA6BXE,4BA7BW,EA8BXE,0BA9BW,EA+BX;EACA0b,OAhCW,EAiCXrE,eAjCW,EAkCX0F,8BAlCW,EAmCXM,WAnCW,EAoCXG,2BApCW,EAqCXS,mCArCW,EAsCX;EACAC,aAvCW,EAwCXE,aAxCW,EAyCXC,WAzCW,EA0CXE,gBA1CW;AAAA;AA2CnB;;AAAmBmG,WAAW,CAACI,IAAZ,kBA/qJiG/tB,8DA+qJjG;EAAA,WAAkI,CAACyQ,eAAD,EAAkBma,eAAlB,EAAmCC,iBAAnC,CAAlI;EAAA,UAAmM,CAAC9mB,yDAAD,CAAnM;AAAA;;AACnB;EAAA,mDAhrJoH/D,+DAgrJpH,CAA4F2tB,WAA5F,EAAqH,CAAC;IAC1G3mB,IAAI,EAAE5F,mDADoG;IAE1G6F,IAAI,EAAE,CAAC;MACC+mB,YAAY,EAAEN,YADf;MAECO,OAAO,EAAEP,YAFV;MAGChlB,SAAS,EAAE,CAAC+H,eAAD,EAAkBma,eAAlB,EAAmCC,iBAAnC,CAHZ;MAICqD,OAAO,EAAE,CAACnqB,yDAAD;IAJV,CAAD;EAFoG,CAAD,CAArH;AAAA,MAUA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpzJA;AACA;AACA;AACA;AACA;AAEA,IAAI6qB,eAAJ;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAIC,SAAD,IAAe;EACtCA,SAAS,CAACtoB,OAAV,CAAmBuoB,QAAD,IAAc;IAC9B,KAAK,MAAMvU,GAAX,IAAkBuU,QAAlB,EAA4B;MAC1B;MACA,IAAIA,QAAQ,CAACC,cAAT,CAAwBxU,GAAxB,CAAJ,EAAkC;QAChC,MAAMvV,KAAK,GAAG8pB,QAAQ,CAACvU,GAAD,CAAtB;;QACA,IAAIA,GAAG,KAAK,QAAZ,EAAsB;UACpB,MAAMyU,MAAM,GAAG,2BAAf;UACAF,QAAQ,CAACE,MAAD,CAAR,GAAmBhqB,KAAnB;UACA,OAAO8pB,QAAQ,CAACvU,GAAD,CAAf;QACD,CAJD,MAKK;UACH,MAAMyU,MAAM,GAAGC,uBAAuB,CAAC1U,GAAD,CAAtC;;UACA,IAAIyU,MAAM,KAAKzU,GAAf,EAAoB;YAClBuU,QAAQ,CAACE,MAAD,CAAR,GAAmBhqB,KAAnB;YACA,OAAO8pB,QAAQ,CAACvU,GAAD,CAAf;UACD;QACF;MACF;IACF;EACF,CAnBD;EAoBA,OAAOsU,SAAP;AACD,CAtBD;;AAuBA,MAAMI,uBAAuB,GAAIC,GAAD,IAAS;EACvC,OAAOA,GAAG,CAACrR,OAAJ,CAAY,oBAAZ,EAAkC,OAAlC,EAA2CsR,WAA3C,EAAP;AACD,CAFD;;AAGA,MAAMC,kBAAkB,GAAIxqB,EAAD,IAAQ;EACjC,IAAI+pB,eAAe,KAAKlkB,SAAxB,EAAmC;IACjC,MAAM4kB,kBAAkB,GAAGzqB,EAAE,CAAC0qB,KAAH,CAASC,aAAT,KAA2B9kB,SAAtD;IACA,MAAM+kB,oBAAoB,GAAG5qB,EAAE,CAAC0qB,KAAH,CAASG,mBAAT,KAAiChlB,SAA9D;IACAkkB,eAAe,GAAG,CAACU,kBAAD,IAAuBG,oBAAvB,GAA8C,UAA9C,GAA2D,EAA7E;EACD;;EACD,OAAOb,eAAP;AACD,CAPD;;AAQA,MAAMe,gBAAgB,GAAG,CAACzoB,OAAD,EAAU0oB,YAAV,EAAwB3qB,KAAxB,KAAkC;EACzD,MAAM4qB,MAAM,GAAGD,YAAY,CAAC/nB,UAAb,CAAwB,WAAxB,IAAuCwnB,kBAAkB,CAACnoB,OAAD,CAAzD,GAAqE,EAApF;EACAA,OAAO,CAACqoB,KAAR,CAAcO,WAAd,CAA0BD,MAAM,GAAGD,YAAnC,EAAiD3qB,KAAjD;AACD,CAHD;;AAIA,MAAM8qB,mBAAmB,GAAG,CAAC7oB,OAAD,EAAU0oB,YAAV,KAA2B;EACrD,MAAMC,MAAM,GAAGD,YAAY,CAAC/nB,UAAb,CAAwB,WAAxB,IAAuCwnB,kBAAkB,CAACnoB,OAAD,CAAzD,GAAqE,EAApF;EACAA,OAAO,CAACqoB,KAAR,CAAcS,cAAd,CAA6BH,MAAM,GAAGD,YAAtC;AACD,CAHD;;AAIA,MAAMK,YAAY,GAAG,CAACprB,EAAD,EAAKiX,QAAL,KAAkB;EACrC,IAAIoU,UAAJ;EACA,MAAMplB,IAAI,GAAG;IAAEqlB,OAAO,EAAE;EAAX,CAAb;;EACA,MAAMC,UAAU,GAAG,MAAM;IACvB,IAAIF,UAAJ,EAAgB;MACdA,UAAU;IACX;EACF,CAJD;;EAKA,MAAMG,eAAe,GAAI9c,EAAD,IAAQ;IAC9B,IAAI1O,EAAE,KAAK0O,EAAE,CAAC+c,MAAd,EAAsB;MACpBF,UAAU;MACVtU,QAAQ,CAACvI,EAAD,CAAR;IACD;EACF,CALD;;EAMA,IAAI1O,EAAJ,EAAQ;IACNA,EAAE,CAAC4O,gBAAH,CAAoB,oBAApB,EAA0C4c,eAA1C,EAA2DvlB,IAA3D;IACAjG,EAAE,CAAC4O,gBAAH,CAAoB,cAApB,EAAoC4c,eAApC,EAAqDvlB,IAArD;;IACAolB,UAAU,GAAG,MAAM;MACjBrrB,EAAE,CAAC6O,mBAAH,CAAuB,oBAAvB,EAA6C2c,eAA7C,EAA8DvlB,IAA9D;MACAjG,EAAE,CAAC6O,mBAAH,CAAuB,cAAvB,EAAuC2c,eAAvC,EAAwDvlB,IAAxD;IACD,CAHD;EAID;;EACD,OAAOslB,UAAP;AACD,CAvBD;;AAwBA,MAAMG,qBAAqB,GAAG,CAACzB,SAAS,GAAG,EAAb,KAAoB;EAChD,OAAOA,SAAS,CACbzb,GADI,CACC0b,QAAD,IAAc;IACnB,MAAMyB,MAAM,GAAGzB,QAAQ,CAACyB,MAAxB;IACA,MAAMC,WAAW,GAAG,EAApB;;IACA,KAAK,MAAMC,QAAX,IAAuB3B,QAAvB,EAAiC;MAC/B;MACA,IAAIA,QAAQ,CAACC,cAAT,CAAwB0B,QAAxB,KAAqCA,QAAQ,KAAK,QAAtD,EAAgE;QAC9DD,WAAW,CAAC3oB,IAAZ,CAAkB,GAAE4oB,QAAS,KAAI3B,QAAQ,CAAC2B,QAAD,CAAW,GAApD;MACD;IACF;;IACD,OAAQ,GAAEF,MAAM,GAAG,GAAI,OAAMC,WAAW,CAACE,IAAZ,CAAiB,GAAjB,CAAsB,IAAnD;EACD,CAXM,EAYJA,IAZI,CAYC,GAZD,CAAP;AAaD,CAdD;;AAeA,MAAMC,WAAW,GAAG,EAApB;;AACA,MAAMC,oBAAoB,GAAIC,aAAD,IAAmB;EAC9C,IAAIre,KAAK,GAAGme,WAAW,CAACle,OAAZ,CAAoBoe,aAApB,CAAZ;;EACA,IAAIre,KAAK,GAAG,CAAZ,EAAe;IACbA,KAAK,GAAGme,WAAW,CAAC9oB,IAAZ,CAAiBgpB,aAAjB,IAAkC,CAA1C;EACD;;EACD,OAAQ,iBAAgBre,KAAM,EAA9B;AACD,CAND;;AAOA,MAAMse,iBAAiB,GAAI7pB,OAAD,IAAa;EACrC;EACA,MAAM8pB,QAAQ,GAAG9pB,OAAO,CAAC+pB,WAAR,KAAwBvmB,SAAxB,GAAoCxD,OAAO,CAAC+pB,WAAR,EAApC,GAA4D/pB,OAA7E;EACA,OAAO8pB,QAAQ,CAACE,IAAT,IAAiBF,QAAxB;AACD,CAJD;;AAKA,MAAMG,wBAAwB,GAAG,CAACC,YAAD,EAAeN,aAAf,EAA8B5pB,OAA9B,KAA0C;EACzE,IAAIf,EAAJ;;EACA,MAAMkrB,cAAc,GAAGN,iBAAiB,CAAC7pB,OAAD,CAAxC;EACA,MAAMoqB,cAAc,GAAGjC,kBAAkB,CAACnoB,OAAD,CAAzC;EACA,MAAMqqB,kBAAkB,GAAGF,cAAc,CAACG,aAAf,CAA6B,MAAMJ,YAAnC,CAA3B;;EACA,IAAIG,kBAAJ,EAAwB;IACtB,OAAOA,kBAAP;EACD;;EACD,MAAME,UAAU,GAAG,CAAC,CAACtrB,EAAE,GAAGe,OAAO,CAACwqB,aAAd,MAAiC,IAAjC,IAAyCvrB,EAAE,KAAK,KAAK,CAArD,GAAyDA,EAAzD,GAA8DwrB,QAA/D,EAAyEC,aAAzE,CAAuF,OAAvF,CAAnB;EACAH,UAAU,CAAChd,EAAX,GAAgB2c,YAAhB;EACAK,UAAU,CAACI,WAAX,GAA0B,IAAGP,cAAe,aAAYF,YAAa,MAAKN,aAAc,OAAMQ,cAAe,aAAYF,YAAa,UAASN,aAAc,IAA7J;EACAO,cAAc,CAACte,WAAf,CAA2B0e,UAA3B;EACA,OAAOA,UAAP;AACD,CAbD;;AAcA,MAAMK,eAAe,GAAG,CAACvqB,OAAO,GAAG,EAAX,EAAewqB,SAAf,KAA6B;EACnD,IAAIA,SAAS,KAAKrnB,SAAlB,EAA6B;IAC3B,MAAMsnB,iBAAiB,GAAGnS,KAAK,CAACC,OAAN,CAAciS,SAAd,IAA2BA,SAA3B,GAAuC,CAACA,SAAD,CAAjE;IACA,OAAO,CAAC,GAAGxqB,OAAJ,EAAa,GAAGyqB,iBAAhB,CAAP;EACD;;EACD,OAAOzqB,OAAP;AACD,CAND;;AAQA,MAAMtE,eAAe,GAAIooB,WAAD,IAAiB;EACvC,IAAI4G,MAAJ;;EACA,IAAIC,SAAJ;;EACA,IAAIC,OAAJ;;EACA,IAAIC,WAAJ;;EACA,IAAIC,KAAJ;;EACA,IAAIC,UAAJ;;EACA,IAAIC,UAAU,GAAG,EAAjB;EACA,IAAIC,gBAAgB,GAAG,EAAvB;EACA,IAAIC,mBAAmB,GAAG,EAA1B;EACA,IAAIC,WAAW,GAAG,KAAlB;EACA,IAAIC,eAAJ;EACA,IAAIC,iBAAiB,GAAG,EAAxB;EACA,IAAIC,eAAe,GAAG,EAAtB;EACA,IAAIC,kBAAkB,GAAG,EAAzB;EACA,IAAIC,gBAAgB,GAAG,EAAvB;EACA,IAAIC,oBAAoB,GAAG,CAA3B;EACA,IAAIC,uBAAuB,GAAG,KAA9B;EACA,IAAIC,uBAAuB,GAAG,KAA9B;EACA,IAAIC,0BAAJ;EACA,IAAIC,mBAAJ;EACA,IAAIC,kBAAJ;EACA,IAAIC,eAAJ;EACA,IAAIC,YAAY,GAAG,IAAnB;EACA,IAAIC,QAAQ,GAAG,KAAf;EACA,IAAIC,4BAA4B,GAAG,IAAnC;EACA,IAAIrC,YAAJ;EACA,IAAIsC,GAAJ;EACA,IAAIC,MAAM,GAAG,KAAb;EACA,MAAMlf,EAAE,GAAG4W,WAAX;EACA,MAAMuI,iBAAiB,GAAG,EAA1B;EACA,MAAMC,wBAAwB,GAAG,EAAjC;EACA,MAAMC,QAAQ,GAAG,EAAjB;EACA,MAAMC,eAAe,GAAG,EAAxB;EACA,MAAMC,WAAW,GAAG,EAApB;EACA,MAAMC,uBAAuB,GAAG,EAAhC;EACA,MAAMC,wBAAwB,GAAG,EAAjC;EACA,MAAMC,sBAAsB,GAAG,EAA/B;EACA,MAAMC,uBAAuB,GAAG,EAAhC;EACA,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,uBAAuB,GAAG,OAAOC,eAAP,KAA2B,UAA3B,IAC7B7Y,iDAAG,KAAKhR,SAAR,IAAqB,OAAOgR,iEAAP,KAA+B,UADvD;EAEA,MAAM8Y,qBAAqB,GAAG,OAAOC,OAAP,KAAmB,UAAnB,IAC5B,OAAOA,OAAO,CAAClrB,SAAR,CAAkBmrB,OAAzB,KAAqC,UADT,IAE5BJ,uBAFF;EAGA,MAAMK,iCAAiC,GAAG,GAA1C;;EACA,MAAMC,gBAAgB,GAAG,MAAM;IAC7B,OAAOP,aAAP;EACD,CAFD;;EAGA,MAAMriB,OAAO,GAAI6iB,gBAAD,IAAsB;IACpCd,eAAe,CAACvtB,OAAhB,CAAyBsuB,cAAD,IAAoB;MAC1CA,cAAc,CAAC9iB,OAAf,CAAuB6iB,gBAAvB;IACD,CAFD;IAGAE,OAAO,CAACF,gBAAD,CAAP;IACAf,QAAQ,CAACxsB,MAAT,GAAkB,CAAlB;IACAysB,eAAe,CAACzsB,MAAhB,GAAyB,CAAzB;IACAirB,UAAU,CAACjrB,MAAX,GAAoB,CAApB;IACA0tB,aAAa;IACbtC,WAAW,GAAG,KAAd;IACAe,4BAA4B,GAAG,IAA/B;IACA,OAAOC,GAAP;EACD,CAZD;EAaA;AACF;AACA;AACA;AACA;AACA;;;EACE,MAAMqB,OAAO,GAAIF,gBAAD,IAAsB;IACpCI,eAAe;;IACf,IAAIJ,gBAAJ,EAAsB;MACpBK,kBAAkB;IACnB;EACF,CALD;;EAMA,MAAMC,UAAU,GAAG,MAAM;IACvBlC,uBAAuB,GAAG,KAA1B;IACAC,uBAAuB,GAAG,KAA1B;IACAO,4BAA4B,GAAG,IAA/B;IACAL,mBAAmB,GAAG1oB,SAAtB;IACA2oB,kBAAkB,GAAG3oB,SAArB;IACA4oB,eAAe,GAAG5oB,SAAlB;IACAsoB,oBAAoB,GAAG,CAAvB;IACAQ,QAAQ,GAAG,KAAX;IACAD,YAAY,GAAG,IAAf;IACAI,MAAM,GAAG,KAAT;EACD,CAXD;;EAYA,MAAMyB,SAAS,GAAG,MAAM;IACtB,OAAOpC,oBAAoB,KAAK,CAAzB,IAA8B,CAACW,MAAtC;EACD,CAFD;;EAGA,MAAM0B,QAAQ,GAAG,CAACvZ,QAAD,EAAWhR,IAAX,KAAoB;IACnC,MAAMwqB,SAAS,GAAG,CAACxqB,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,KAAK,CAA/B,GAAmC,KAAK,CAAxC,GAA4CA,IAAI,CAACyqB,eAAlD,IAAqE1B,wBAArE,GAAgGD,iBAAlH;IACA0B,SAAS,CAACxtB,IAAV,CAAe;MAAEqD,CAAC,EAAE2Q,QAAL;MAAe0Z,CAAC,EAAE1qB;IAAlB,CAAf;IACA,OAAO4oB,GAAP;EACD,CAJD;;EAKA,MAAMsB,aAAa,GAAG,MAAM;IAC1BpB,iBAAiB,CAACtsB,MAAlB,GAA2B,CAA3B;IACAusB,wBAAwB,CAACvsB,MAAzB,GAAkC,CAAlC;IACA,OAAOosB,GAAP;EACD,CAJD;EAKA;AACF;AACA;AACA;AACA;;;EACE,MAAMuB,eAAe,GAAG,MAAM;IAC5B,IAAIT,qBAAJ,EAA2B;MACzBH,aAAa,CAAC7tB,OAAd,CAAuBuQ,SAAD,IAAe;QACnCA,SAAS,CAAC0e,MAAV;MACD,CAFD;MAGApB,aAAa,CAAC/sB,MAAd,GAAuB,CAAvB;IACD,CALD,MAMK;MACH,MAAMouB,aAAa,GAAG5B,QAAQ,CAAC1c,KAAT,EAAtB;MACAlT,uDAAG,CAAC,MAAM;QACRwxB,aAAa,CAAClvB,OAAd,CAAuBU,OAAD,IAAa;UACjC6oB,mBAAmB,CAAC7oB,OAAD,EAAU,gBAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,oBAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,2BAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,2BAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,iBAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,sBAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,qBAAV,CAAnB;UACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,qBAAV,CAAnB;QACD,CATD;MAUD,CAXE,CAAH;IAYD;EACF,CAtBD;EAuBA;AACF;AACA;AACA;;;EACE,MAAMguB,kBAAkB,GAAG,MAAM;IAC/BlB,WAAW,CAACxtB,OAAZ,CAAqBirB,UAAD,IAAgB;MAClC;AACN;AACA;AACA;AACA;MACM,IAAIA,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAACkE,UAAvE,EAAmF;QACjFlE,UAAU,CAACkE,UAAX,CAAsBC,WAAtB,CAAkCnE,UAAlC;MACD;IACF,CATD;IAUAuC,WAAW,CAAC1sB,MAAZ,GAAqB,CAArB;EACD,CAZD;;EAaA,MAAMuuB,aAAa,GAAIC,MAAD,IAAY;IAChC7B,uBAAuB,CAACnsB,IAAxB,CAA6BguB,MAA7B;;IACA,OAAOpC,GAAP;EACD,CAHD;;EAIA,MAAMqC,cAAc,GAAIC,OAAD,IAAa;IAClC9B,wBAAwB,CAACpsB,IAAzB,CAA8BkuB,OAA9B;;IACA,OAAOtC,GAAP;EACD,CAHD;;EAIA,MAAMuC,YAAY,GAAIH,MAAD,IAAY;IAC/B3B,sBAAsB,CAACrsB,IAAvB,CAA4BguB,MAA5B;;IACA,OAAOpC,GAAP;EACD,CAHD;;EAIA,MAAMwC,aAAa,GAAIF,OAAD,IAAa;IACjC5B,uBAAuB,CAACtsB,IAAxB,CAA6BkuB,OAA7B;;IACA,OAAOtC,GAAP;EACD,CAHD;;EAIA,MAAMyC,cAAc,GAAIpE,SAAD,IAAe;IACpCS,gBAAgB,GAAGV,eAAe,CAACU,gBAAD,EAAmBT,SAAnB,CAAlC;IACA,OAAO2B,GAAP;EACD,CAHD;;EAIA,MAAM0C,iBAAiB,GAAIrE,SAAD,IAAe;IACvCU,mBAAmB,GAAGX,eAAe,CAACW,mBAAD,EAAsBV,SAAtB,CAArC;IACA,OAAO2B,GAAP;EACD,CAHD;EAIA;AACF;AACA;AACA;;;EACE,MAAM2C,YAAY,GAAG,CAACxQ,MAAM,GAAG,EAAV,KAAiB;IACpC+M,iBAAiB,GAAG/M,MAApB;IACA,OAAO6N,GAAP;EACD,CAHD;EAIA;AACF;AACA;AACA;;;EACE,MAAM4C,iBAAiB,GAAG,CAACC,aAAa,GAAG,EAAjB,KAAwB;IAChD,KAAK,MAAM7F,QAAX,IAAuB6F,aAAvB,EAAsC;MACpC3D,iBAAiB,CAAClC,QAAD,CAAjB,GAA8B,EAA9B;IACD;;IACD,OAAOgD,GAAP;EACD,CALD;;EAMA,MAAM8C,aAAa,GAAIzE,SAAD,IAAe;IACnCc,eAAe,GAAGf,eAAe,CAACe,eAAD,EAAkBd,SAAlB,CAAjC;IACA,OAAO2B,GAAP;EACD,CAHD;;EAIA,MAAM+C,gBAAgB,GAAI1E,SAAD,IAAe;IACtCe,kBAAkB,GAAGhB,eAAe,CAACgB,kBAAD,EAAqBf,SAArB,CAApC;IACA,OAAO2B,GAAP;EACD,CAHD;;EAIA,MAAMgD,WAAW,GAAG,CAAC7Q,MAAM,GAAG,EAAV,KAAiB;IACnCkN,gBAAgB,GAAGlN,MAAnB;IACA,OAAO6N,GAAP;EACD,CAHD;;EAIA,MAAMiD,gBAAgB,GAAG,CAACJ,aAAa,GAAG,EAAjB,KAAwB;IAC/C,KAAK,MAAM7F,QAAX,IAAuB6F,aAAvB,EAAsC;MACpCxD,gBAAgB,CAACrC,QAAD,CAAhB,GAA6B,EAA7B;IACD;;IACD,OAAOgD,GAAP;EACD,CALD;;EAMA,MAAMkD,OAAO,GAAG,MAAM;IACpB,IAAIvE,KAAK,KAAK3nB,SAAd,EAAyB;MACvB,OAAO2nB,KAAP;IACD;;IACD,IAAIM,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACiE,OAAhB,EAAP;IACD;;IACD,OAAO,MAAP;EACD,CARD;;EASA,MAAMC,YAAY,GAAG,MAAM;IACzB,IAAIzD,mBAAmB,KAAK1oB,SAA5B,EAAuC;MACrC,OAAO0oB,mBAAP;IACD;;IACD,IAAId,UAAU,KAAK5nB,SAAnB,EAA8B;MAC5B,OAAO4nB,UAAP;IACD;;IACD,IAAIK,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACkE,YAAhB,EAAP;IACD;;IACD,OAAO,QAAP;EACD,CAXD;;EAYA,MAAMC,SAAS,GAAG,MAAM;IACtB,IAAI7D,uBAAJ,EAA6B;MAC3B,OAAO,QAAP;IACD;;IACD,IAAId,OAAO,KAAKznB,SAAhB,EAA2B;MACzB,OAAOynB,OAAP;IACD;;IACD,IAAIQ,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACmE,SAAhB,EAAP;IACD;;IACD,OAAO,QAAP;EACD,CAXD;;EAYA,MAAMC,WAAW,GAAG,MAAM;IACxB,IAAI7D,uBAAJ,EAA6B;MAC3B,OAAO,CAAP;IACD;;IACD,IAAIG,kBAAkB,KAAK3oB,SAA3B,EAAsC;MACpC,OAAO2oB,kBAAP;IACD;;IACD,IAAInB,SAAS,KAAKxnB,SAAlB,EAA6B;MAC3B,OAAOwnB,SAAP;IACD;;IACD,IAAIS,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACoE,WAAhB,EAAP;IACD;;IACD,OAAO,CAAP;EACD,CAdD;;EAeA,MAAMC,aAAa,GAAG,MAAM;IAC1B,IAAI5E,WAAW,KAAK1nB,SAApB,EAA+B;MAC7B,OAAO0nB,WAAP;IACD;;IACD,IAAIO,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACqE,aAAhB,EAAP;IACD;;IACD,OAAO,CAAP;EACD,CARD;;EASA,MAAMC,QAAQ,GAAG,MAAM;IACrB,IAAI3D,eAAe,KAAK5oB,SAAxB,EAAmC;MACjC,OAAO4oB,eAAP;IACD;;IACD,IAAIrB,MAAM,KAAKvnB,SAAf,EAA0B;MACxB,OAAOunB,MAAP;IACD;;IACD,IAAIU,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACsE,QAAhB,EAAP;IACD;;IACD,OAAO,CAAP;EACD,CAXD;;EAYA,MAAMC,YAAY,GAAG,MAAM;IACzB,OAAO3E,UAAP;EACD,CAFD;;EAGA,MAAMpe,SAAS,GAAIiL,kBAAD,IAAwB;IACxCkT,UAAU,GAAGlT,kBAAb;IACA+X,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAJD;;EAKA,MAAM0D,IAAI,GAAIC,aAAD,IAAmB;IAC9BhF,KAAK,GAAGgF,aAAR;IACAF,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAJD;;EAKA,MAAM4D,KAAK,GAAIC,cAAD,IAAoB;IAChCtF,MAAM,GAAGsF,cAAT;IACAJ,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAJD;;EAKA,MAAM8D,MAAM,GAAIC,eAAD,IAAqB;IAClCtF,OAAO,GAAGsF,eAAV;IACAN,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAJD;;EAKA,MAAM3Z,QAAQ,GAAI2d,iBAAD,IAAuB;IACtC;AACJ;AACA;AACA;AACA;IACI,IAAI,CAAClD,qBAAD,IAA0BkD,iBAAiB,KAAK,CAApD,EAAuD;MACrDA,iBAAiB,GAAG,CAApB;IACD;;IACDxF,SAAS,GAAGwF,iBAAZ;IACAP,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAZD;;EAaA,MAAMiE,UAAU,GAAIC,mBAAD,IAAyB;IAC1CxF,WAAW,GAAGwF,mBAAd;IACAT,MAAM,CAAC,IAAD,CAAN;IACA,OAAOzD,GAAP;EACD,CAJD;;EAKA,MAAMrhB,MAAM,GAAI0E,SAAD,IAAe;IAC5B4b,eAAe,GAAG5b,SAAlB;IACA,OAAO2c,GAAP;EACD,CAHD;;EAIA,MAAMmE,UAAU,GAAIhzB,EAAD,IAAQ;IACzB,IAAIA,EAAE,IAAI,IAAV,EAAgB;MACd,IAAIA,EAAE,CAACokB,QAAH,KAAgB,CAApB,EAAuB;QACrB6K,QAAQ,CAAChsB,IAAT,CAAcjD,EAAd;MACD,CAFD,MAGK,IAAIA,EAAE,CAACyC,MAAH,IAAa,CAAjB,EAAoB;QACvB,KAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG/C,EAAE,CAACyC,MAAvB,EAA+BM,CAAC,EAAhC,EAAoC;UAClCksB,QAAQ,CAAChsB,IAAT,CAAcjD,EAAE,CAAC+C,CAAD,CAAhB;QACD;MACF,CAJI,MAKA;QACHyb,OAAO,CAACyU,KAAR,CAAc,0BAAd;MACD;IACF;;IACD,OAAOpE,GAAP;EACD,CAfD;;EAgBA,MAAMqE,YAAY,GAAIC,cAAD,IAAoB;IACvC,IAAIA,cAAc,IAAI,IAAtB,EAA4B;MAC1B,IAAInY,KAAK,CAACC,OAAN,CAAckY,cAAd,CAAJ,EAAmC;QACjC,KAAK,MAAMjhB,SAAX,IAAwBihB,cAAxB,EAAwC;UACtCjhB,SAAS,CAAC1E,MAAV,CAAiBqhB,GAAjB;UACAK,eAAe,CAACjsB,IAAhB,CAAqBiP,SAArB;QACD;MACF,CALD,MAMK;QACHihB,cAAc,CAAC3lB,MAAf,CAAsBqhB,GAAtB;QACAK,eAAe,CAACjsB,IAAhB,CAAqBkwB,cAArB;MACD;IACF;;IACD,OAAOtE,GAAP;EACD,CAdD;;EAeA,MAAM5E,SAAS,GAAImJ,cAAD,IAAoB;IACpC,MAAMC,SAAS,GAAG3F,UAAU,KAAK0F,cAAjC;IACA1F,UAAU,GAAG0F,cAAb;;IACA,IAAIC,SAAJ,EAAe;MACbC,eAAe,CAAC5F,UAAD,CAAf;IACD;;IACD,OAAOmB,GAAP;EACD,CAPD;;EAQA,MAAMyE,eAAe,GAAIF,cAAD,IAAoB;IAC1C,IAAIzD,qBAAJ,EAA2B;MACzBI,gBAAgB,GAAGpuB,OAAnB,CAA4BuQ,SAAD,IAAe;QACxC,IAAIA,SAAS,CAACqhB,MAAV,CAAiBC,YAArB,EAAmC;UACjCthB,SAAS,CAACqhB,MAAV,CAAiBC,YAAjB,CAA8BJ,cAA9B;QACD,CAFD,MAGK;UACH,MAAMK,SAAS,GAAG,IAAIC,cAAJ,CAAmBxhB,SAAS,CAACqhB,MAAV,CAAiB9H,MAApC,EAA4C2H,cAA5C,EAA4DlhB,SAAS,CAACqhB,MAAV,CAAiBI,SAAjB,EAA5D,CAAlB;UACAzhB,SAAS,CAACqhB,MAAV,GAAmBE,SAAnB;QACD;MACF,CARD;IASD,CAVD,MAWK;MACHG,sBAAsB;IACvB;EACF,CAfD;EAgBA;AACF;AACA;;;EACE,MAAMC,eAAe,GAAG,MAAM;IAC5B;IACAzE,uBAAuB,CAACztB,OAAxB,CAAiCsV,QAAD,IAAcA,QAAQ,EAAtD,EAF4B,CAG5B;;;IACAoY,wBAAwB,CAAC1tB,OAAzB,CAAkCsV,QAAD,IAAcA,QAAQ,EAAvD,EAJ4B,CAK5B;;;IACA,MAAM6c,UAAU,GAAGnG,gBAAnB;IACA,MAAMoG,aAAa,GAAGnG,mBAAtB;IACA,MAAM5M,MAAM,GAAG+M,iBAAf;IACAkB,QAAQ,CAACttB,OAAT,CAAkB3B,EAAD,IAAQ;MACvB,MAAMg0B,gBAAgB,GAAGh0B,EAAE,CAAC8C,SAA5B;MACAgxB,UAAU,CAACnyB,OAAX,CAAoB2E,CAAD,IAAO0tB,gBAAgB,CAAC5wB,GAAjB,CAAqBkD,CAArB,CAA1B;MACAytB,aAAa,CAACpyB,OAAd,CAAuB2E,CAAD,IAAO0tB,gBAAgB,CAAC7wB,MAAjB,CAAwBmD,CAAxB,CAA7B;;MACA,KAAK,MAAMulB,QAAX,IAAuB7K,MAAvB,EAA+B;QAC7B;QACA,IAAIA,MAAM,CAACmJ,cAAP,CAAsB0B,QAAtB,CAAJ,EAAqC;UACnCf,gBAAgB,CAAC9qB,EAAD,EAAK6rB,QAAL,EAAe7K,MAAM,CAAC6K,QAAD,CAArB,CAAhB;QACD;MACF;IACF,CAVD;EAWD,CApBD;EAqBA;AACF;AACA;;;EACE,MAAMoI,cAAc,GAAG,MAAM;IAC3BC,yBAAyB,GADE,CAE3B;;IACA5E,sBAAsB,CAAC3tB,OAAvB,CAAgCsV,QAAD,IAAcA,QAAQ,EAArD,EAH2B,CAI3B;;;IACAsY,uBAAuB,CAAC5tB,OAAxB,CAAiCsV,QAAD,IAAcA,QAAQ,EAAtD,EAL2B,CAM3B;;;IACA,MAAMkd,WAAW,GAAGzF,YAAY,GAAG,CAAH,GAAO,CAAvC;IACA,MAAMoF,UAAU,GAAG9F,eAAnB;IACA,MAAM+F,aAAa,GAAG9F,kBAAtB;IACA,MAAMjN,MAAM,GAAGkN,gBAAf;IACAe,QAAQ,CAACttB,OAAT,CAAkB3B,EAAD,IAAQ;MACvB,MAAMg0B,gBAAgB,GAAGh0B,EAAE,CAAC8C,SAA5B;MACAgxB,UAAU,CAACnyB,OAAX,CAAoB2E,CAAD,IAAO0tB,gBAAgB,CAAC5wB,GAAjB,CAAqBkD,CAArB,CAA1B;MACAytB,aAAa,CAACpyB,OAAd,CAAuB2E,CAAD,IAAO0tB,gBAAgB,CAAC7wB,MAAjB,CAAwBmD,CAAxB,CAA7B;;MACA,KAAK,MAAMulB,QAAX,IAAuB7K,MAAvB,EAA+B;QAC7B;QACA,IAAIA,MAAM,CAACmJ,cAAP,CAAsB0B,QAAtB,CAAJ,EAAqC;UACnCf,gBAAgB,CAAC9qB,EAAD,EAAK6rB,QAAL,EAAe7K,MAAM,CAAC6K,QAAD,CAArB,CAAhB;QACD;MACF;IACF,CAVD;IAWAkD,iBAAiB,CAACptB,OAAlB,CAA2ByyB,gBAAD,IAAsB;MAC9C,OAAOA,gBAAgB,CAAC9tB,CAAjB,CAAmB6tB,WAAnB,EAAgCtF,GAAhC,CAAP;IACD,CAFD;IAGAG,wBAAwB,CAACrtB,OAAzB,CAAkCyyB,gBAAD,IAAsB;MACrD,OAAOA,gBAAgB,CAAC9tB,CAAjB,CAAmB6tB,WAAnB,EAAgCtF,GAAhC,CAAP;IACD,CAFD;IAGAG,wBAAwB,CAACvsB,MAAzB,GAAkC,CAAlC;IACAmsB,4BAA4B,GAAG,IAA/B;;IACA,IAAIF,YAAJ,EAAkB;MAChBC,QAAQ,GAAG,IAAX;IACD;;IACDD,YAAY,GAAG,IAAf;EACD,CAlCD;;EAmCA,MAAM2F,eAAe,GAAG,MAAM;IAC5B,IAAIlG,oBAAoB,KAAK,CAA7B,EAAgC;MAC9B;IACD;;IACDA,oBAAoB;;IACpB,IAAIA,oBAAoB,KAAK,CAA7B,EAAgC;MAC9B8F,cAAc;;MACd,IAAInG,eAAJ,EAAqB;QACnBA,eAAe,CAACuG,eAAhB;MACD;IACF;EACF,CAXD;;EAYA,MAAMT,sBAAsB,GAAG,CAACU,mBAAmB,GAAG,IAAvB,KAAgC;IAC7DjE,kBAAkB;IAClB,MAAMkE,kBAAkB,GAAGvK,gBAAgB,CAAC0D,UAAD,CAA3C;IACAuB,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;MAC5B,IAAIkyB,kBAAkB,CAAC9xB,MAAnB,GAA4B,CAAhC,EAAmC;QACjC,MAAMwpB,aAAa,GAAGP,qBAAqB,CAAC6I,kBAAD,CAA3C;QACAhI,YAAY,GAAG/F,WAAW,KAAK3gB,SAAhB,GAA4B2gB,WAA5B,GAA0CwF,oBAAoB,CAACC,aAAD,CAA7E;QACA,MAAMW,UAAU,GAAGN,wBAAwB,CAACC,YAAD,EAAeN,aAAf,EAA8B5pB,OAA9B,CAA3C;QACA8sB,WAAW,CAAClsB,IAAZ,CAAiB2pB,UAAjB;QACA9B,gBAAgB,CAACzoB,OAAD,EAAU,oBAAV,EAAiC,GAAE6vB,WAAW,EAAG,IAAjD,CAAhB;QACApH,gBAAgB,CAACzoB,OAAD,EAAU,2BAAV,EAAuC4vB,SAAS,EAAhD,CAAhB;QACAnH,gBAAgB,CAACzoB,OAAD,EAAU,iBAAV,EAA8B,GAAE+vB,QAAQ,EAAG,IAA3C,CAAhB;QACAtH,gBAAgB,CAACzoB,OAAD,EAAU,qBAAV,EAAiC0vB,OAAO,EAAxC,CAAhB;QACAjH,gBAAgB,CAACzoB,OAAD,EAAU,qBAAV,EAAiC2vB,YAAY,EAA7C,CAAhB;QACA,MAAMwC,eAAe,GAAGrC,aAAa,OAAOsC,QAApB,GAA+B,UAA/B,GAA4CtC,aAAa,GAAG3vB,QAAhB,EAApE;QACAsoB,gBAAgB,CAACzoB,OAAD,EAAU,2BAAV,EAAuCmyB,eAAvC,CAAhB;QACA1J,gBAAgB,CAACzoB,OAAD,EAAU,sBAAV,EAAkC,QAAlC,CAAhB;;QACA,IAAIiyB,mBAAJ,EAAyB;UACvBxJ,gBAAgB,CAACzoB,OAAD,EAAU,gBAAV,EAA6B,GAAEuqB,UAAU,CAAChd,EAAG,MAA7C,CAAhB;QACD;;QACDvQ,uDAAG,CAAC,MAAM;UACRyrB,gBAAgB,CAACzoB,OAAD,EAAU,gBAAV,EAA4BuqB,UAAU,CAAChd,EAAX,IAAiB,IAA7C,CAAhB;QACD,CAFE,CAAH;MAGD;IACF,CArBD;EAsBD,CAzBD;;EA0BA,MAAM8kB,sBAAsB,GAAG,MAAM;IACnCzF,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;MAC5B,MAAM6P,SAAS,GAAG7P,OAAO,CAACwtB,OAAR,CAAgBnC,UAAhB,EAA4B;QAC5C9d,EAD4C;QAE5C6iB,KAAK,EAAEL,QAAQ,EAF6B;QAG5Cld,QAAQ,EAAEgd,WAAW,EAHuB;QAI5CS,MAAM,EAAEV,SAAS,EAJ2B;QAK5Ca,UAAU,EAAEX,aAAa,EALmB;QAM5CI,IAAI,EAAER,OAAO,EAN+B;QAO5CziB,SAAS,EAAE0iB,YAAY;MAPqB,CAA5B,CAAlB;MASA9f,SAAS,CAACwE,KAAV;MACA8Y,aAAa,CAACvsB,IAAd,CAAmBiP,SAAnB;IACD,CAZD;;IAaA,IAAIsd,aAAa,CAAC/sB,MAAd,GAAuB,CAA3B,EAA8B;MAC5B+sB,aAAa,CAAC,CAAD,CAAb,CAAiBmF,QAAjB,GAA4B,MAAM;QAChCN,eAAe;MAChB,CAFD;IAGD;EACF,CAnBD;;EAoBA,MAAMO,mBAAmB,GAAG,CAACN,mBAAmB,GAAG,IAAvB,KAAgC;IAC1DT,eAAe;;IACf,IAAInG,UAAU,CAACjrB,MAAX,GAAoB,CAAxB,EAA2B;MACzB,IAAIktB,qBAAJ,EAA2B;QACzB+E,sBAAsB;MACvB,CAFD,MAGK;QACHd,sBAAsB,CAACU,mBAAD,CAAtB;MACD;IACF;;IACDzG,WAAW,GAAG,IAAd;EACD,CAXD;;EAYA,MAAMgH,gBAAgB,GAAIC,IAAD,IAAU;IACjCA,IAAI,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASH,IAAT,EAAe,CAAf,CAAT,EAA4B,MAA5B,CAAP;;IACA,IAAInF,qBAAJ,EAA2B;MACzBH,aAAa,CAAC7tB,OAAd,CAAuBuQ,SAAD,IAAe;QACnCA,SAAS,CAACgjB,WAAV,GAAwBhjB,SAAS,CAACqhB,MAAV,CAAiB4B,iBAAjB,GAAqC1C,KAArC,GAA6CP,WAAW,KAAK4C,IAArF;QACA5iB,SAAS,CAACwE,KAAV;MACD,CAHD;IAID,CALD,MAMK;MACH,MAAMmc,iBAAiB,GAAI,IAAGX,WAAW,KAAK4C,IAAK,IAAnD;MACA7F,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;QAC5B,IAAIqrB,UAAU,CAACjrB,MAAX,GAAoB,CAAxB,EAA2B;UACzBqoB,gBAAgB,CAACzoB,OAAD,EAAU,iBAAV,EAA6BwwB,iBAA7B,CAAhB;UACA/H,gBAAgB,CAACzoB,OAAD,EAAU,sBAAV,EAAkC,QAAlC,CAAhB;QACD;MACF,CALD;IAMD;EACF,CAjBD;;EAkBA,MAAM+yB,kBAAkB,GAAIN,IAAD,IAAU;IACnCtF,aAAa,CAAC7tB,OAAd,CAAuBuQ,SAAD,IAAe;MACnCA,SAAS,CAACqhB,MAAV,CAAiB8B,YAAjB,CAA8B;QAC5B5C,KAAK,EAAEL,QAAQ,EADa;QAE5Bld,QAAQ,EAAEgd,WAAW,EAFO;QAG5BS,MAAM,EAAEV,SAAS,EAHW;QAI5Ba,UAAU,EAAEX,aAAa,EAJG;QAK5BI,IAAI,EAAER,OAAO,EALe;QAM5BziB,SAAS,EAAE0iB,YAAY;MANK,CAA9B;IAQD,CATD;;IAUA,IAAI8C,IAAI,KAAKjvB,SAAb,EAAwB;MACtBgvB,gBAAgB,CAACC,IAAD,CAAhB;IACD;EACF,CAdD;;EAeA,MAAMQ,kBAAkB,GAAG,CAAChB,mBAAmB,GAAG,IAAvB,EAA6BQ,IAA7B,KAAsC;IAC/Dz1B,uDAAG,CAAC,MAAM;MACR4vB,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;QAC5ByoB,gBAAgB,CAACzoB,OAAD,EAAU,gBAAV,EAA4BkqB,YAAY,IAAI,IAA5C,CAAhB;QACAzB,gBAAgB,CAACzoB,OAAD,EAAU,oBAAV,EAAiC,GAAE6vB,WAAW,EAAG,IAAjD,CAAhB;QACApH,gBAAgB,CAACzoB,OAAD,EAAU,2BAAV,EAAuC4vB,SAAS,EAAhD,CAAhB;QACAnH,gBAAgB,CAACzoB,OAAD,EAAU,iBAAV,EAA6ByyB,IAAI,KAAKjvB,SAAT,GAAsB,IAAGivB,IAAI,GAAG5C,WAAW,EAAG,IAA9C,GAAqD,GAAEE,QAAQ,EAAG,IAA/F,CAAhB;QACAtH,gBAAgB,CAACzoB,OAAD,EAAU,qBAAV,EAAiC0vB,OAAO,MAAM,IAA9C,CAAhB;QACAjH,gBAAgB,CAACzoB,OAAD,EAAU,qBAAV,EAAiC2vB,YAAY,MAAM,IAAnD,CAAhB;QACA,MAAMwC,eAAe,GAAGrC,aAAa,OAAOsC,QAApB,GAA+B,UAA/B,GAA4CtC,aAAa,GAAG3vB,QAAhB,EAApE;QACAsoB,gBAAgB,CAACzoB,OAAD,EAAU,2BAAV,EAAuCmyB,eAAvC,CAAhB;;QACA,IAAIF,mBAAJ,EAAyB;UACvBxJ,gBAAgB,CAACzoB,OAAD,EAAU,gBAAV,EAA6B,GAAEkqB,YAAa,MAA5C,CAAhB;QACD;;QACDltB,uDAAG,CAAC,MAAM;UACRyrB,gBAAgB,CAACzoB,OAAD,EAAU,gBAAV,EAA4BkqB,YAAY,IAAI,IAA5C,CAAhB;QACD,CAFE,CAAH;MAGD,CAfD;IAgBD,CAjBE,CAAH;EAkBD,CAnBD;;EAoBA,MAAM+F,MAAM,GAAG,CAAC/e,IAAI,GAAG,KAAR,EAAe+gB,mBAAmB,GAAG,IAArC,EAA2CQ,IAA3C,KAAoD;IACjE,IAAIvhB,IAAJ,EAAU;MACR2b,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;QACrCA,SAAS,CAACogB,MAAV,CAAiB/e,IAAjB,EAAuB+gB,mBAAvB,EAA4CQ,IAA5C;MACD,CAFD;IAGD;;IACD,IAAInF,qBAAJ,EAA2B;MACzByF,kBAAkB,CAACN,IAAD,CAAlB;IACD,CAFD,MAGK;MACHQ,kBAAkB,CAAChB,mBAAD,EAAsBQ,IAAtB,CAAlB;IACD;;IACD,OAAOjG,GAAP;EACD,CAbD;;EAcA,MAAM0G,aAAa,GAAG,CAACC,iBAAiB,GAAG,KAArB,EAA4BV,IAA5B,KAAqC;IACzD5F,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;MACrCA,SAAS,CAACqjB,aAAV,CAAwBC,iBAAxB,EAA2CV,IAA3C;IACD,CAFD;IAGAW,cAAc;IACdrH,uBAAuB,GAAGoH,iBAA1B;;IACA,IAAI,CAAC3H,WAAL,EAAkB;MAChB+G,mBAAmB;IACpB;;IACDtC,MAAM,CAAC,KAAD,EAAQ,IAAR,EAAcwC,IAAd,CAAN;IACA,OAAOjG,GAAP;EACD,CAXD;;EAYA,MAAM6G,YAAY,GAAIZ,IAAD,IAAU;IAC7B5F,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;MACrCA,SAAS,CAACwjB,YAAV,CAAuBZ,IAAvB;IACD,CAFD;IAGAD,gBAAgB,CAACC,IAAD,CAAhB;IACA,OAAOjG,GAAP;EACD,CAND;;EAOA,MAAM8G,WAAW,GAAG,CAACC,MAAD,EAASd,IAAT,EAAee,GAAf,KAAuB;IACzCzH,uBAAuB,GAAG,KAA1B;IACAc,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;MACrCA,SAAS,CAACyjB,WAAV,CAAsBC,MAAtB,EAA8Bd,IAA9B,EAAoCe,GAApC;IACD,CAFD;;IAGA,IAAIA,GAAG,KAAKhwB,SAAZ,EAAuB;MACrB2oB,kBAAkB,GAAGqH,GAArB;IACD;;IACDlH,QAAQ,GAAG,KAAX;IACAD,YAAY,GAAG,IAAf;;IACA,IAAIkH,MAAM,KAAK,CAAf,EAAkB;MAChBrH,mBAAmB,GAAGyD,YAAY,OAAO,SAAnB,GAA+B,QAA/B,GAA0C,SAAhE;;MACA,IAAIzD,mBAAmB,KAAK,SAA5B,EAAuC;QACrCG,YAAY,GAAG,KAAf;MACD;;MACD,IAAIiB,qBAAJ,EAA2B;QACzB2C,MAAM;QACNuC,gBAAgB,CAAC,IAAIC,IAAL,CAAhB;MACD,CAHD,MAIK;QACHrG,eAAe,GAAG,CAAC,IAAIqG,IAAL,IAAa5C,WAAW,EAAxB,GAA6B,CAAC,CAAhD;QACAI,MAAM,CAAC,KAAD,EAAQ,KAAR,CAAN;MACD;IACF,CAbD,MAcK,IAAIsD,MAAM,KAAK,CAAf,EAAkB;MACrB,IAAIjG,qBAAJ,EAA2B;QACzB2C,MAAM;QACNuC,gBAAgB,CAACC,IAAD,CAAhB;MACD,CAHD,MAIK;QACHrG,eAAe,GAAGqG,IAAI,GAAG5C,WAAW,EAAlB,GAAuB,CAAC,CAA1C;QACAI,MAAM,CAAC,KAAD,EAAQ,KAAR,CAAN;MACD;IACF;;IACD,IAAIsD,MAAM,KAAK/vB,SAAf,EAA0B;MACxB2qB,QAAQ,CAAC,MAAM;QACbhC,kBAAkB,GAAG3oB,SAArB;QACA0oB,mBAAmB,GAAG1oB,SAAtB;QACA4oB,eAAe,GAAG5oB,SAAlB;MACD,CAJO,EAIL;QACD6qB,eAAe,EAAE;MADhB,CAJK,CAAR;;MAOA,IAAI,CAAC5C,eAAL,EAAsB;QACpBgI,IAAI;MACL;IACF;;IACD,OAAOjH,GAAP;EACD,CA/CD;;EAgDA,MAAM4G,cAAc,GAAG,MAAM;IAC3B,IAAI5H,WAAJ,EAAiB;MACf,IAAI8B,qBAAJ,EAA2B;QACzBH,aAAa,CAAC7tB,OAAd,CAAuBuQ,SAAD,IAAe;UACnCA,SAAS,CAACwE,KAAV;QACD,CAFD;MAGD,CAJD,MAKK;QACHuY,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;UAC5ByoB,gBAAgB,CAACzoB,OAAD,EAAU,sBAAV,EAAkC,QAAlC,CAAhB;QACD,CAFD;MAGD;;MACDysB,MAAM,GAAG,IAAT;IACD;EACF,CAdD;;EAeA,MAAMpY,KAAK,GAAG,MAAM;IAClBwY,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;MACrCA,SAAS,CAACwE,KAAV;IACD,CAFD;IAGA+e,cAAc;IACd,OAAO5G,GAAP;EACD,CAND;;EAOA,MAAMkH,sBAAsB,GAAG,MAAM;IACnCzH,0BAA0B,GAAGzoB,SAA7B;IACAwuB,eAAe;EAChB,CAHD;;EAIA,MAAMH,yBAAyB,GAAG,MAAM;IACtC,IAAI5F,0BAAJ,EAAgC;MAC9B0H,YAAY,CAAC1H,0BAAD,CAAZ;IACD;EACF,CAJD;;EAKA,MAAM2H,iBAAiB,GAAG,MAAM;IAC9B/B,yBAAyB;IACzB70B,uDAAG,CAAC,MAAM;MACR4vB,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;QAC5B,IAAIqrB,UAAU,CAACjrB,MAAX,GAAoB,CAAxB,EAA2B;UACzBqoB,gBAAgB,CAACzoB,OAAD,EAAU,sBAAV,EAAkC,SAAlC,CAAhB;QACD;MACF,CAJD;IAKD,CANE,CAAH;;IAOA,IAAIqrB,UAAU,CAACjrB,MAAX,KAAsB,CAAtB,IAA2BwsB,QAAQ,CAACxsB,MAAT,KAAoB,CAAnD,EAAsD;MACpD4xB,eAAe;IAChB,CAFD,MAGK;MACH;AACN;AACA;AACA;AACA;AACA;AACA;AACA;MACM,MAAM3B,cAAc,GAAGN,QAAQ,MAAM,CAArC;MACA,MAAMS,iBAAiB,GAAGX,WAAW,MAAM,CAA3C;MACA,MAAMa,mBAAmB,GAAGZ,aAAa,MAAM,CAA/C,CAXG,CAYH;;MACA,IAAI+D,QAAQ,CAACnD,mBAAD,CAAZ,EAAmC;QACjCzE,0BAA0B,GAAG7uB,UAAU,CAACs2B,sBAAD,EAAyBrD,cAAc,GAAGG,iBAAiB,GAAGE,mBAArC,GAA2DjD,iCAApF,CAAvC;MACD;;MACD1E,YAAY,CAAC6D,QAAQ,CAAC,CAAD,CAAT,EAAc,MAAM;QAC9BiF,yBAAyB;QACzB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QACQ70B,uDAAG,CAAC,MAAM;UACR82B,0BAA0B;UAC1B92B,uDAAG,CAACg1B,eAAD,CAAH;QACD,CAHE,CAAH;MAID,CAjBW,CAAZ;IAkBD;EACF,CA/CD;;EAgDA,MAAM8B,0BAA0B,GAAG,MAAM;IACvClH,QAAQ,CAACttB,OAAT,CAAkBU,OAAD,IAAa;MAC5B6oB,mBAAmB,CAAC7oB,OAAD,EAAU,oBAAV,CAAnB;MACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,iBAAV,CAAnB;MACA6oB,mBAAmB,CAAC7oB,OAAD,EAAU,sBAAV,CAAnB;IACD,CAJD;EAKD,CAND;;EAOA,MAAM+zB,iBAAiB,GAAG,MAAM;IAC9B5G,aAAa,CAAC7tB,OAAd,CAAuBuQ,SAAD,IAAe;MACnCA,SAAS,CAAC4jB,IAAV;IACD,CAFD;;IAGA,IAAIpI,UAAU,CAACjrB,MAAX,KAAsB,CAAtB,IAA2BwsB,QAAQ,CAACxsB,MAAT,KAAoB,CAAnD,EAAsD;MACpD4xB,eAAe;IAChB;EACF,CAPD;;EAQA,MAAMgC,cAAc,GAAG,MAAM;IAC3B,IAAI1G,qBAAJ,EAA2B;MACzBkF,gBAAgB,CAAC,CAAD,CAAhB;MACAO,kBAAkB;IACnB,CAHD,MAIK;MACHE,kBAAkB;IACnB;EACF,CARD;;EASA,MAAMQ,IAAI,GAAI7vB,IAAD,IAAU;IACrB,OAAO,IAAI4G,OAAJ,CAAaC,OAAD,IAAa;MAC9B,IAAI7G,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,KAAK,CAA/B,GAAmC,KAAK,CAAxC,GAA4CA,IAAI,CAACqwB,IAArD,EAA2D;QACzDjI,uBAAuB,GAAG,IAA1B;QACAmC,QAAQ,CAAC,MAAOnC,uBAAuB,GAAG,KAAlC,EAA0C;UAAEqC,eAAe,EAAE;QAAnB,CAA1C,CAAR;MACD;;MACD,IAAI,CAAC7C,WAAL,EAAkB;QAChB+G,mBAAmB;MACpB;;MACD,IAAIjG,QAAJ,EAAc;QACZ0H,cAAc;QACd1H,QAAQ,GAAG,KAAX;MACD;;MACD,IAAIC,4BAAJ,EAAkC;QAChCT,oBAAoB,GAAGe,eAAe,CAACzsB,MAAhB,GAAyB,CAAhD;QACAmsB,4BAA4B,GAAG,KAA/B;MACD;;MACD4B,QAAQ,CAAC,MAAM1jB,OAAO,EAAd,EAAkB;QAAE4jB,eAAe,EAAE;MAAnB,CAAlB,CAAR;MACAxB,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;QACrCA,SAAS,CAAC4jB,IAAV;MACD,CAFD;;MAGA,IAAInG,qBAAJ,EAA2B;QACzByG,iBAAiB;MAClB,CAFD,MAGK;QACHH,iBAAiB;MAClB;;MACDnH,MAAM,GAAG,KAAT;IACD,CA3BM,CAAP;EA4BD,CA7BD;;EA8BA,MAAMyH,IAAI,GAAG,MAAM;IACjBrH,eAAe,CAACvtB,OAAhB,CAAyBuQ,SAAD,IAAe;MACrCA,SAAS,CAACqkB,IAAV;IACD,CAFD;;IAGA,IAAI1I,WAAJ,EAAiB;MACfuC,eAAe;MACfvC,WAAW,GAAG,KAAd;IACD;;IACDyC,UAAU;EACX,CATD;;EAUA,MAAMkG,IAAI,GAAG,CAAC3K,QAAD,EAAWzrB,KAAX,KAAqB;IAChC,MAAMq2B,UAAU,GAAG/I,UAAU,CAAC,CAAD,CAA7B;;IACA,IAAI+I,UAAU,KAAK5wB,SAAf,KAA6B4wB,UAAU,CAAC9K,MAAX,KAAsB9lB,SAAtB,IAAmC4wB,UAAU,CAAC9K,MAAX,KAAsB,CAAtF,CAAJ,EAA8F;MAC5F8K,UAAU,CAAC5K,QAAD,CAAV,GAAuBzrB,KAAvB;IACD,CAFD,MAGK;MACHstB,UAAU,GAAG,CAAC;QAAE/B,MAAM,EAAE,CAAV;QAAa,CAACE,QAAD,GAAYzrB;MAAzB,CAAD,EAAmC,GAAGstB,UAAtC,CAAb;IACD;;IACD,OAAOmB,GAAP;EACD,CATD;;EAUA,MAAM6H,EAAE,GAAG,CAAC7K,QAAD,EAAWzrB,KAAX,KAAqB;IAC9B,MAAMu2B,SAAS,GAAGjJ,UAAU,CAACA,UAAU,CAACjrB,MAAX,GAAoB,CAArB,CAA5B;;IACA,IAAIk0B,SAAS,KAAK9wB,SAAd,KAA4B8wB,SAAS,CAAChL,MAAV,KAAqB9lB,SAArB,IAAkC8wB,SAAS,CAAChL,MAAV,KAAqB,CAAnF,CAAJ,EAA2F;MACzFgL,SAAS,CAAC9K,QAAD,CAAT,GAAsBzrB,KAAtB;IACD,CAFD,MAGK;MACHstB,UAAU,GAAG,CAAC,GAAGA,UAAJ,EAAgB;QAAE/B,MAAM,EAAE,CAAV;QAAa,CAACE,QAAD,GAAYzrB;MAAzB,CAAhB,CAAb;IACD;;IACD,OAAOyuB,GAAP;EACD,CATD;;EAUA,MAAM+H,MAAM,GAAG,CAAC/K,QAAD,EAAWgL,SAAX,EAAsBC,OAAtB,KAAkC;IAC/C,OAAON,IAAI,CAAC3K,QAAD,EAAWgL,SAAX,CAAJ,CAA0BH,EAA1B,CAA6B7K,QAA7B,EAAuCiL,OAAvC,CAAP;EACD,CAFD;;EAGA,OAAQjI,GAAG,GAAG;IACZf,eADY;IAEZmB,QAFY;IAGZC,eAHY;IAIZtf,EAJY;IAKZykB,eALY;IAMZmC,IANY;IAOZE,EAPY;IAQZE,MARY;IASZppB,MATY;IAUZsoB,IAVY;IAWZpf,KAXY;IAYZ6f,IAZY;IAaZppB,OAbY;IAcZ8c,SAdY;IAeZiJ,YAfY;IAgBZF,UAhBY;IAiBZV,MAjBY;IAkBZC,IAlBY;IAmBZjjB,SAnBY;IAoBZwjB,UApBY;IAqBZ5d,QArBY;IAsBZyd,MAtBY;IAuBZF,KAvBY;IAwBZ1C,gBAxBY;IAyBZsC,YAzBY;IA0BZN,OA1BY;IA2BZC,YA3BY;IA4BZI,QA5BY;IA6BZD,aA7BY;IA8BZF,SA9BY;IA+BZC,WA/BY;IAgCZd,YAhCY;IAiCZC,aAjCY;IAkCZS,gBAlCY;IAmCZD,WAnCY;IAoCZD,gBApCY;IAqCZD,aArCY;IAsCZX,aAtCY;IAuCZE,cAvCY;IAwCZO,iBAxCY;IAyCZD,YAzCY;IA0CZD,iBA1CY;IA2CZD,cA3CY;IA4CZd,QA5CY;IA6CZD,SA7CY;IA8CZgF,aA9CY;IA+CZG,YA/CY;IAgDZC;EAhDY,CAAd;AAkDD,CAv1BD;;;;;;;;;;;;;;;;;AC/HA;AACA;AACA;AACA;AAEA,MAAMqB,aAAa,GAAGD,wDAAtB;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM14B,uBAAuB,GAAG,CAACqoB,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiBC,WAAjB,KAAiC;EAC/D,OAAOoQ,gBAAgB,CAACxQ,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeC,EAAE,CAAC,CAAD,CAAjB,EAAsBC,EAAE,CAAC,CAAD,CAAxB,EAA6BC,WAA7B,CAAhB,CAA0DtY,GAA1D,CAA+D2oB,MAAD,IAAY;IAC/E,OAAOC,4BAA4B,CAAC1Q,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeC,EAAE,CAAC,CAAD,CAAjB,EAAsBC,EAAE,CAAC,CAAD,CAAxB,EAA6BsQ,MAA7B,CAAnC;EACD,CAFM,CAAP;AAGD,CAJD;AAKA;AACA;AACA;;;AACA,MAAMC,4BAA4B,GAAG,CAAC1Q,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiBwQ,CAAjB,KAAuB;EAC1D,MAAMC,KAAK,GAAG,IAAI3Q,EAAJ,GAASoO,IAAI,CAACwC,GAAL,CAASF,CAAC,GAAG,CAAb,EAAgB,CAAhB,CAAvB;EACA,MAAMG,KAAK,GAAG,CAAC,CAAD,GAAK5Q,EAAL,GAAUyQ,CAAV,GAAc,IAAIzQ,EAAlB,GAAuBC,EAAE,GAAGwQ,CAA1C;EACA,MAAMI,KAAK,GAAG/Q,EAAE,GAAGqO,IAAI,CAACwC,GAAL,CAASF,CAAC,GAAG,CAAb,EAAgB,CAAhB,CAAnB;EACA,OAAOA,CAAC,IAAIC,KAAK,GAAGD,CAAC,GAAGG,KAAhB,CAAD,GAA0BC,KAAjC;AACD,CALD;AAMA;AACA;AACA;;;AACA,MAAMP,gBAAgB,GAAG,CAACxQ,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,EAAiB6Q,QAAjB,KAA8B;EACrDhR,EAAE,IAAIgR,QAAN;EACA/Q,EAAE,IAAI+Q,QAAN;EACA9Q,EAAE,IAAI8Q,QAAN;EACA7Q,EAAE,IAAI6Q,QAAN;EACA,MAAMC,KAAK,GAAGC,kBAAkB,CAAC/Q,EAAE,GAAG,IAAID,EAAT,GAAc,IAAID,EAAlB,GAAuBD,EAAxB,EAA4B,IAAIE,EAAJ,GAAS,IAAID,EAAb,GAAkB,IAAID,EAAlD,EAAsD,IAAIC,EAAJ,GAAS,IAAID,EAAnE,EAAuEA,EAAvE,CAAhC;EACA,OAAOiR,KAAK,CAAC94B,MAAN,CAAcg5B,IAAD,IAAUA,IAAI,IAAI,CAAR,IAAaA,IAAI,IAAI,CAA5C,CAAP;AACD,CAPD;;AAQA,MAAMC,sBAAsB,GAAG,CAACC,CAAD,EAAIC,CAAJ,EAAO1xB,CAAP,KAAa;EAC1C,MAAM2xB,YAAY,GAAGD,CAAC,GAAGA,CAAJ,GAAQ,IAAID,CAAJ,GAAQzxB,CAArC;;EACA,IAAI2xB,YAAY,GAAG,CAAnB,EAAsB;IACpB,OAAO,EAAP;EACD,CAFD,MAGK;IACH,OAAO,CAAC,CAAC,CAACD,CAAD,GAAKjD,IAAI,CAACmD,IAAL,CAAUD,YAAV,CAAN,KAAkC,IAAIF,CAAtC,CAAD,EAA2C,CAAC,CAACC,CAAD,GAAKjD,IAAI,CAACmD,IAAL,CAAUD,YAAV,CAAN,KAAkC,IAAIF,CAAtC,CAA3C,CAAP;EACD;AACF,CARD;;AASA,MAAMH,kBAAkB,GAAG,CAACG,CAAD,EAAIC,CAAJ,EAAO1xB,CAAP,EAAU6xB,CAAV,KAAgB;EACzC,IAAIJ,CAAC,KAAK,CAAV,EAAa;IACX,OAAOD,sBAAsB,CAACE,CAAD,EAAI1xB,CAAJ,EAAO6xB,CAAP,CAA7B;EACD;;EACDH,CAAC,IAAID,CAAL;EACAzxB,CAAC,IAAIyxB,CAAL;EACAI,CAAC,IAAIJ,CAAL;EACA,MAAMK,CAAC,GAAG,CAAC,IAAI9xB,CAAJ,GAAQ0xB,CAAC,GAAGA,CAAb,IAAkB,CAA5B;EACA,MAAMK,CAAC,GAAG,CAAC,IAAIL,CAAJ,GAAQA,CAAR,GAAYA,CAAZ,GAAgB,IAAIA,CAAJ,GAAQ1xB,CAAxB,GAA4B,KAAK6xB,CAAlC,IAAuC,EAAjD;;EACA,IAAIC,CAAC,KAAK,CAAV,EAAa;IACX,OAAO,CAACrD,IAAI,CAACwC,GAAL,CAAS,CAACc,CAAV,EAAa,IAAI,CAAjB,CAAD,CAAP;EACD,CAFD,MAGK,IAAIA,CAAC,KAAK,CAAV,EAAa;IAChB,OAAO,CAACtD,IAAI,CAACmD,IAAL,CAAU,CAACE,CAAX,CAAD,EAAgB,CAACrD,IAAI,CAACmD,IAAL,CAAU,CAACE,CAAX,CAAjB,CAAP;EACD;;EACD,MAAMH,YAAY,GAAGlD,IAAI,CAACwC,GAAL,CAASc,CAAC,GAAG,CAAb,EAAgB,CAAhB,IAAqBtD,IAAI,CAACwC,GAAL,CAASa,CAAC,GAAG,CAAb,EAAgB,CAAhB,CAA1C;;EACA,IAAIH,YAAY,KAAK,CAArB,EAAwB;IACtB,OAAO,CAAClD,IAAI,CAACwC,GAAL,CAASc,CAAC,GAAG,CAAb,EAAgB,IAAI,CAApB,IAAyBL,CAAC,GAAG,CAA9B,CAAP;EACD,CAFD,MAGK,IAAIC,YAAY,GAAG,CAAnB,EAAsB;IACzB,OAAO,CACLlD,IAAI,CAACwC,GAAL,CAAS,EAAEc,CAAC,GAAG,CAAN,IAAWtD,IAAI,CAACmD,IAAL,CAAUD,YAAV,CAApB,EAA6C,IAAI,CAAjD,IAAsDlD,IAAI,CAACwC,GAAL,CAASc,CAAC,GAAG,CAAJ,GAAQtD,IAAI,CAACmD,IAAL,CAAUD,YAAV,CAAjB,EAA0C,IAAI,CAA9C,CAAtD,GAAyGD,CAAC,GAAG,CADxG,CAAP;EAGD;;EACD,MAAMzxB,CAAC,GAAGwuB,IAAI,CAACmD,IAAL,CAAUnD,IAAI,CAACwC,GAAL,CAAS,EAAEa,CAAC,GAAG,CAAN,CAAT,EAAmB,CAAnB,CAAV,CAAV;EACA,MAAME,GAAG,GAAGvD,IAAI,CAACwD,IAAL,CAAU,EAAEF,CAAC,IAAI,IAAItD,IAAI,CAACmD,IAAL,CAAUnD,IAAI,CAACwC,GAAL,CAAS,EAAEa,CAAC,GAAG,CAAN,CAAT,EAAmB,CAAnB,CAAV,CAAR,CAAH,CAAV,CAAZ;EACA,MAAMtnB,CAAC,GAAG,IAAIikB,IAAI,CAACwC,GAAL,CAAShxB,CAAT,EAAY,IAAI,CAAhB,CAAd;EACA,OAAO,CACLuK,CAAC,GAAGikB,IAAI,CAACyD,GAAL,CAASF,GAAG,GAAG,CAAf,CAAJ,GAAwBN,CAAC,GAAG,CADvB,EAELlnB,CAAC,GAAGikB,IAAI,CAACyD,GAAL,CAAS,CAACF,GAAG,GAAG,IAAIvD,IAAI,CAAC0D,EAAhB,IAAsB,CAA/B,CAAJ,GAAwCT,CAAC,GAAG,CAFvC,EAGLlnB,CAAC,GAAGikB,IAAI,CAACyD,GAAL,CAAS,CAACF,GAAG,GAAG,IAAIvD,IAAI,CAAC0D,EAAhB,IAAsB,CAA/B,CAAJ,GAAwCT,CAAC,GAAG,CAHvC,CAAP;AAKD,CAhCD;;;;;;;;;;;;;;;;ACxDA;AACA;AACA;AACA,MAAMjR,iBAAN,CAAwB;EACtBjnB,WAAW,GAAG;IACZ,KAAK44B,SAAL,GAAiB,CAAjB;IACA,KAAKC,cAAL,GAAsB,IAAI5a,GAAJ,EAAtB;IACA,KAAK6a,gBAAL,GAAwB,IAAI7a,GAAJ,EAAxB;IACA,KAAK8a,cAAL,GAAsB,IAAIC,GAAJ,EAAtB;EACD;EACD;AACF;AACA;;;EACEx6B,aAAa,CAAC8X,MAAD,EAAS;IACpB,IAAI9U,EAAJ;;IACA,OAAO,IAAIy3B,eAAJ,CAAoB,IAApB,EAA0B,KAAKC,KAAL,EAA1B,EAAwC5iB,MAAM,CAACuF,IAA/C,EAAqD,CAACra,EAAE,GAAG8U,MAAM,CAACY,QAAb,MAA2B,IAA3B,IAAmC1V,EAAE,KAAK,KAAK,CAA/C,GAAmDA,EAAnD,GAAwD,CAA7G,EAAgH,CAAC,CAAC8U,MAAM,CAAC6iB,aAAzH,CAAP;EACD;EACD;AACF;AACA;;;EACEC,aAAa,CAACjzB,IAAI,GAAG,EAAR,EAAY;IACvB,OAAO,IAAIkzB,eAAJ,CAAoB,IAApB,EAA0B,KAAKH,KAAL,EAA1B,EAAwC/yB,IAAI,CAACmzB,OAA7C,EAAsD,CAAC,CAACnzB,IAAI,CAACgzB,aAA7D,CAAP;EACD;;EACDI,KAAK,CAACC,WAAD,EAAc1pB,EAAd,EAAkBoH,QAAlB,EAA4B;IAC/B,IAAI,CAAC,KAAK+F,QAAL,CAAcuc,WAAd,CAAL,EAAiC;MAC/B,KAAKX,cAAL,CAAoBvrB,MAApB,CAA2BwC,EAA3B;MACA,OAAO,KAAP;IACD;;IACD,KAAK+oB,cAAL,CAAoB9zB,GAApB,CAAwB+K,EAAxB,EAA4BoH,QAA5B;IACA,OAAO,IAAP;EACD;;EACDuiB,OAAO,CAACD,WAAD,EAAc1pB,EAAd,EAAkBoH,QAAlB,EAA4B;IACjC,IAAI,CAAC,KAAKqiB,KAAL,CAAWC,WAAX,EAAwB1pB,EAAxB,EAA4BoH,QAA5B,CAAL,EAA4C;MAC1C,OAAO,KAAP;IACD;;IACD,MAAM2hB,cAAc,GAAG,KAAKA,cAA5B;IACA,IAAIa,WAAW,GAAG,CAAC,KAAnB;IACAb,cAAc,CAACh3B,OAAf,CAAwBvB,KAAD,IAAW;MAChCo5B,WAAW,GAAGzE,IAAI,CAACE,GAAL,CAASuE,WAAT,EAAsBp5B,KAAtB,CAAd;IACD,CAFD;;IAGA,IAAIo5B,WAAW,KAAKxiB,QAApB,EAA8B;MAC5B,KAAKyiB,UAAL,GAAkB7pB,EAAlB;MACA+oB,cAAc,CAACe,KAAf;MACA,MAAMC,KAAK,GAAG,IAAIC,WAAJ,CAAgB,oBAAhB,EAAsC;QAAEjrB,MAAM,EAAE;UAAE2qB;QAAF;MAAV,CAAtC,CAAd;MACAxM,QAAQ,CAAC+M,aAAT,CAAuBF,KAAvB;MACA,OAAO,IAAP;IACD;;IACDhB,cAAc,CAACvrB,MAAf,CAAsBwC,EAAtB;IACA,OAAO,KAAP;EACD;;EACDkqB,OAAO,CAAClqB,EAAD,EAAK;IACV,KAAK+oB,cAAL,CAAoBvrB,MAApB,CAA2BwC,EAA3B;;IACA,IAAI,KAAK6pB,UAAL,KAAoB7pB,EAAxB,EAA4B;MAC1B,KAAK6pB,UAAL,GAAkB5zB,SAAlB;IACD;EACF;;EACDk0B,cAAc,CAACT,WAAD,EAAc1pB,EAAd,EAAkB;IAC9B,IAAI/K,GAAG,GAAG,KAAK+zB,gBAAL,CAAsBv3B,GAAtB,CAA0Bi4B,WAA1B,CAAV;;IACA,IAAIz0B,GAAG,KAAKgB,SAAZ,EAAuB;MACrBhB,GAAG,GAAG,IAAIi0B,GAAJ,EAAN;MACA,KAAKF,gBAAL,CAAsB/zB,GAAtB,CAA0By0B,WAA1B,EAAuCz0B,GAAvC;IACD;;IACDA,GAAG,CAACzB,GAAJ,CAAQwM,EAAR;EACD;;EACDoqB,aAAa,CAACV,WAAD,EAAc1pB,EAAd,EAAkB;IAC7B,MAAM/K,GAAG,GAAG,KAAK+zB,gBAAL,CAAsBv3B,GAAtB,CAA0Bi4B,WAA1B,CAAZ;;IACA,IAAIz0B,GAAG,KAAKgB,SAAZ,EAAuB;MACrBhB,GAAG,CAACuI,MAAJ,CAAWwC,EAAX;IACD;EACF;;EACDqpB,aAAa,CAACrpB,EAAD,EAAK;IAChB,KAAKipB,cAAL,CAAoBz1B,GAApB,CAAwBwM,EAAxB;;IACA,IAAI,KAAKipB,cAAL,CAAoBoB,IAApB,KAA6B,CAAjC,EAAoC;MAClCnN,QAAQ,CAACzE,IAAT,CAAcvlB,SAAd,CAAwBM,GAAxB,CAA4B82B,kBAA5B;IACD;EACF;;EACDC,YAAY,CAACvqB,EAAD,EAAK;IACf,KAAKipB,cAAL,CAAoBzrB,MAApB,CAA2BwC,EAA3B;;IACA,IAAI,KAAKipB,cAAL,CAAoBoB,IAApB,KAA6B,CAAjC,EAAoC;MAClCnN,QAAQ,CAACzE,IAAT,CAAcvlB,SAAd,CAAwBK,MAAxB,CAA+B+2B,kBAA/B;IACD;EACF;;EACDnd,QAAQ,CAACuc,WAAD,EAAc;IACpB,IAAI,KAAKG,UAAL,KAAoB5zB,SAAxB,EAAmC;MACjC;MACA,OAAO,KAAP;IACD;;IACD,IAAI,KAAK/E,UAAL,CAAgBw4B,WAAhB,CAAJ,EAAkC;MAChC,OAAO,KAAP;IACD;;IACD,OAAO,IAAP;EACD;;EACDc,UAAU,GAAG;IACX,OAAO,KAAKX,UAAL,KAAoB5zB,SAA3B;EACD;;EACDw0B,gBAAgB,GAAG;IACjB,OAAO,KAAKxB,cAAL,CAAoBoB,IAApB,GAA2B,CAAlC;EACD;;EACDn5B,UAAU,CAACw4B,WAAD,EAAc;IACtB,MAAMv4B,QAAQ,GAAG,KAAK63B,gBAAL,CAAsBv3B,GAAtB,CAA0Bi4B,WAA1B,CAAjB;;IACA,IAAIv4B,QAAQ,IAAIA,QAAQ,CAACk5B,IAAT,GAAgB,CAAhC,EAAmC;MACjC,OAAO,IAAP;IACD;;IACD,OAAO,KAAP;EACD;;EACDjB,KAAK,GAAG;IACN,KAAKN,SAAL;IACA,OAAO,KAAKA,SAAZ;EACD;;AAzGqB;;AA2GxB,MAAMK,eAAN,CAAsB;EACpBj5B,WAAW,CAAC6kB,IAAD,EAAO/U,EAAP,EAAW+L,IAAX,EAAiB3E,QAAjB,EAA2BiiB,aAA3B,EAA0C;IACnD,KAAKrpB,EAAL,GAAUA,EAAV;IACA,KAAK+L,IAAL,GAAYA,IAAZ;IACA,KAAKsd,aAAL,GAAqBA,aAArB;IACA,KAAKjiB,QAAL,GAAgBA,QAAQ,GAAG,OAAX,GAAqBpH,EAArC;IACA,KAAK+U,IAAL,GAAYA,IAAZ;EACD;;EACD5H,QAAQ,GAAG;IACT,IAAI,CAAC,KAAK4H,IAAV,EAAgB;MACd,OAAO,KAAP;IACD;;IACD,OAAO,KAAKA,IAAL,CAAU5H,QAAV,CAAmB,KAAKpB,IAAxB,CAAP;EACD;;EACD0d,KAAK,GAAG;IACN,IAAI,CAAC,KAAK1U,IAAV,EAAgB;MACd,OAAO,KAAP;IACD;;IACD,OAAO,KAAKA,IAAL,CAAU0U,KAAV,CAAgB,KAAK1d,IAArB,EAA2B,KAAK/L,EAAhC,EAAoC,KAAKoH,QAAzC,CAAP;EACD;;EACDuiB,OAAO,GAAG;IACR,IAAI,CAAC,KAAK5U,IAAV,EAAgB;MACd,OAAO,KAAP;IACD;;IACD,MAAM2V,QAAQ,GAAG,KAAK3V,IAAL,CAAU4U,OAAV,CAAkB,KAAK5d,IAAvB,EAA6B,KAAK/L,EAAlC,EAAsC,KAAKoH,QAA3C,CAAjB;;IACA,IAAIsjB,QAAQ,IAAI,KAAKrB,aAArB,EAAoC;MAClC,KAAKtU,IAAL,CAAUsU,aAAV,CAAwB,KAAKrpB,EAA7B;IACD;;IACD,OAAO0qB,QAAP;EACD;;EACDR,OAAO,GAAG;IACR,IAAI,KAAKnV,IAAT,EAAe;MACb,KAAKA,IAAL,CAAUmV,OAAV,CAAkB,KAAKlqB,EAAvB;;MACA,IAAI,KAAKqpB,aAAT,EAAwB;QACtB,KAAKtU,IAAL,CAAUwV,YAAV,CAAuB,KAAKvqB,EAA5B;MACD;IACF;EACF;;EACDzC,OAAO,GAAG;IACR,KAAK2sB,OAAL;IACA,KAAKnV,IAAL,GAAY9e,SAAZ;EACD;;AAzCmB;;AA2CtB,MAAMszB,eAAN,CAAsB;EACpBr5B,WAAW,CAAC6kB,IAAD,EAAO/U,EAAP,EAAWwpB,OAAX,EAAoBH,aAApB,EAAmC;IAC5C,KAAKrpB,EAAL,GAAUA,EAAV;IACA,KAAKwpB,OAAL,GAAeA,OAAf;IACA,KAAKH,aAAL,GAAqBA,aAArB;IACA,KAAKtU,IAAL,GAAYA,IAAZ;EACD;;EACD4V,KAAK,GAAG;IACN,IAAI,CAAC,KAAK5V,IAAV,EAAgB;MACd;IACD;;IACD,IAAI,KAAKyU,OAAT,EAAkB;MAChB,KAAK,MAAMoB,OAAX,IAAsB,KAAKpB,OAA3B,EAAoC;QAClC,KAAKzU,IAAL,CAAUoV,cAAV,CAAyBS,OAAzB,EAAkC,KAAK5qB,EAAvC;MACD;IACF;;IACD,IAAI,KAAKqpB,aAAT,EAAwB;MACtB,KAAKtU,IAAL,CAAUsU,aAAV,CAAwB,KAAKrpB,EAA7B;IACD;EACF;;EACD6qB,OAAO,GAAG;IACR,IAAI,CAAC,KAAK9V,IAAV,EAAgB;MACd;IACD;;IACD,IAAI,KAAKyU,OAAT,EAAkB;MAChB,KAAK,MAAMoB,OAAX,IAAsB,KAAKpB,OAA3B,EAAoC;QAClC,KAAKzU,IAAL,CAAUqV,aAAV,CAAwBQ,OAAxB,EAAiC,KAAK5qB,EAAtC;MACD;IACF;;IACD,IAAI,KAAKqpB,aAAT,EAAwB;MACtB,KAAKtU,IAAL,CAAUwV,YAAV,CAAuB,KAAKvqB,EAA5B;IACD;EACF;;EACDzC,OAAO,GAAG;IACR,KAAKstB,OAAL;IACA,KAAK9V,IAAL,GAAY9e,SAAZ;EACD;;AApCmB;;AAsCtB,MAAMq0B,kBAAkB,GAAG,oBAA3B;AACA,MAAMQ,kBAAkB,GAAG,IAAI3T,iBAAJ,EAA3B;;;;;;;;;;;;;;;;;;;;;AChMA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6T,uBAAuB,GAAG,MAAM;EACpC9N,QAAQ,CAACle,gBAAT,CAA0B,YAA1B,EAAwC,MAAM,CAAG,CAAjD,EADoC,CACgB;AACrD,CAFD;;AAGA,MAAMisB,uBAAuB,GAAG,MAAM;EACpC,MAAMvkB,GAAG,GAAGwW,QAAZ;EACA,IAAIgO,IAAI,GAAG,KAAX;EACAxkB,GAAG,CAAC1H,gBAAJ,CAAqB,YAArB,EAAmC,MAAM;IACvC,IAAIksB,IAAJ,EAAU;MACR;IACD;;IACD,IAAIltB,KAAK,GAAG,CAAZ;IACA,IAAImtB,QAAQ,GAAG,EAAf;IACA,MAAMrsB,EAAE,GAAG,IAAIkrB,WAAJ,CAAgB,eAAhB,EAAiC;MAC1CoB,OAAO,EAAE,KADiC;MAE1CrsB,MAAM,EAAE;QACNuI,QAAQ,CAACF,QAAD,EAAWvI,OAAX,EAAoB;UAC1BssB,QAAQ,CAAC93B,IAAT,CAAc;YAAE+T,QAAF;YAAYvI,OAAZ;YAAqBmB,EAAE,EAAEhC,KAAK;UAA9B,CAAd;QACD;;MAHK;IAFkC,CAAjC,CAAX;IAQA0I,GAAG,CAACujB,aAAJ,CAAkBnrB,EAAlB;;IACA,MAAMusB,aAAa;MAAA,gKAAG,WAAOC,eAAP,EAA2B;QAC/C,IAAI;UACF,IAAIA,eAAe,KAAK,IAApB,IAA4BA,eAAe,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,eAAe,CAACzsB,OAAtF,EAA+F;YAC7F,MAAM0sB,MAAM,GAAGD,eAAe,CAACzsB,OAAhB,CAAwB2sB,eAAxB,CAAf;;YACA,IAAID,MAAM,IAAI,IAAd,EAAoB;cAClB,MAAMA,MAAN;YACD;UACF;QACF,CAPD,CAQA,OAAOhY,CAAP,EAAU;UACR3E,OAAO,CAACyU,KAAR,CAAc9P,CAAd;QACD;MACF,CAZkB;;MAAA,gBAAb8X,aAAa;QAAA;MAAA;IAAA,GAAnB;;IAaA,MAAMG,eAAe,GAAG,MAAM;MAC5B,IAAIL,QAAQ,CAACt4B,MAAT,GAAkB,CAAtB,EAAyB;QACvB,IAAI44B,eAAe,GAAG;UACpBrkB,QAAQ,EAAEskB,MAAM,CAACC,gBADG;UAEpB9sB,OAAO,EAAE,MAAM5I,SAFK;UAGpB+J,EAAE,EAAE,CAAC;QAHe,CAAtB;QAKAmrB,QAAQ,CAACp5B,OAAT,CAAkB8M,OAAD,IAAa;UAC5B,IAAIA,OAAO,CAACuI,QAAR,IAAoBqkB,eAAe,CAACrkB,QAAxC,EAAkD;YAChDqkB,eAAe,GAAG5sB,OAAlB;UACD;QACF,CAJD;QAKAqsB,IAAI,GAAG,IAAP;QACAC,QAAQ,GAAGA,QAAQ,CAACl8B,MAAT,CAAiB4P,OAAD,IAAaA,OAAO,CAACmB,EAAR,KAAeyrB,eAAe,CAACzrB,EAA5D,CAAX;QACAqrB,aAAa,CAACI,eAAD,CAAb,CAA+BhoB,IAA/B,CAAoC,MAAOynB,IAAI,GAAG,KAAlD;MACD;IACF,CAhBD;;IAiBAM,eAAe;EAChB,CA9CD;AA+CD,CAlDD;;AAmDA,MAAMI,4BAA4B,GAAG,GAArC;AACA,MAAMC,yBAAyB,GAAG,EAAlC,EAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEtC;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,CAAC17B,EAAD,EAAK27B,gBAAgB,GAAG,CAAxB,KAA8B;EACvD,OAAO,IAAI9uB,OAAJ,CAAaC,OAAD,IAAa;IAC9B8uB,aAAa,CAAC57B,EAAD,EAAK27B,gBAAL,EAAuB7uB,OAAvB,CAAb;EACD,CAFM,CAAP;AAGD,CAJD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8uB,aAAa,GAAG,CAAC57B,EAAD,EAAK27B,gBAAgB,GAAG,CAAxB,EAA2B1kB,QAA3B,KAAwC;EAC5D,IAAIoU,UAAJ;EACA,IAAIwQ,gBAAJ;EACA,MAAM51B,IAAI,GAAG;IAAEqlB,OAAO,EAAE;EAAX,CAAb;EACA,MAAMwQ,0BAA0B,GAAG,GAAnC;;EACA,MAAMvQ,UAAU,GAAG,MAAM;IACvB,IAAIF,UAAJ,EAAgB;MACdA,UAAU;IACX;EACF,CAJD;;EAKA,MAAMG,eAAe,GAAI9c,EAAD,IAAQ;IAC9B,IAAIA,EAAE,KAAK7I,SAAP,IAAoB7F,EAAE,KAAK0O,EAAE,CAAC+c,MAAlC,EAA0C;MACxCF,UAAU;MACVtU,QAAQ,CAACvI,EAAD,CAAR;IACD;EACF,CALD;;EAMA,IAAI1O,EAAJ,EAAQ;IACNA,EAAE,CAAC4O,gBAAH,CAAoB,qBAApB,EAA2C4c,eAA3C,EAA4DvlB,IAA5D;IACAjG,EAAE,CAAC4O,gBAAH,CAAoB,eAApB,EAAqC4c,eAArC,EAAsDvlB,IAAtD;IACA41B,gBAAgB,GAAGp8B,UAAU,CAAC+rB,eAAD,EAAkBmQ,gBAAgB,GAAGG,0BAArC,CAA7B;;IACAzQ,UAAU,GAAG,MAAM;MACjB,IAAIwQ,gBAAJ,EAAsB;QACpB7F,YAAY,CAAC6F,gBAAD,CAAZ;QACAA,gBAAgB,GAAGh2B,SAAnB;MACD;;MACD7F,EAAE,CAAC6O,mBAAH,CAAuB,qBAAvB,EAA8C2c,eAA9C,EAA+DvlB,IAA/D;MACAjG,EAAE,CAAC6O,mBAAH,CAAuB,eAAvB,EAAwC2c,eAAxC,EAAyDvlB,IAAzD;IACD,CAPD;EAQD;;EACD,OAAOslB,UAAP;AACD,CA9BD;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM5tB,gBAAgB,GAAG,CAACqC,EAAD,EAAKiX,QAAL,KAAkB;EACzC,IAAIjX,EAAE,CAACrC,gBAAP,EAAyB;IACvB;IACAqC,EAAE,CAACrC,gBAAH,GAAsB0V,IAAtB,CAA4B0oB,UAAD,IAAgB9kB,QAAQ,CAAC8kB,UAAD,CAAnD;EACD,CAHD,MAIK;IACH18B,GAAG,CAAC,MAAM4X,QAAQ,CAACjX,EAAD,CAAf,CAAH;EACD;AACF,CARD;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg8B,iBAAiB,GAAG,CAACh8B,EAAD,EAAKi8B,UAAU,GAAG,EAAlB,KAAyB;EACjD,MAAMC,eAAe,GAAG,EAAxB;EACAD,UAAU,CAACt6B,OAAX,CAAoBw6B,IAAD,IAAU;IAC3B,IAAIn8B,EAAE,CAACo8B,YAAH,CAAgBD,IAAhB,CAAJ,EAA2B;MACzB,MAAM/7B,KAAK,GAAGJ,EAAE,CAACq8B,YAAH,CAAgBF,IAAhB,CAAd;;MACA,IAAI/7B,KAAK,KAAK,IAAd,EAAoB;QAClB87B,eAAe,CAACC,IAAD,CAAf,GAAwBn8B,EAAE,CAACq8B,YAAH,CAAgBF,IAAhB,CAAxB;MACD;;MACDn8B,EAAE,CAACs8B,eAAH,CAAmBH,IAAnB;IACD;EACF,CARD;EASA,OAAOD,eAAP;AACD,CAZD;AAaA;AACA;AACA;AACA;AACA;;;AACA,MAAMK,cAAc,GAAG,CACrB,MADqB,EAErB,uBAFqB,EAGrB,aAHqB,EAIrB,mBAJqB,EAKrB,mBALqB,EAMrB,6BANqB,EAOrB,WAPqB,EAQrB,cARqB,EASrB,eATqB,EAUrB,eAVqB,EAWrB,mBAXqB,EAYrB,cAZqB,EAarB,eAbqB,EAcrB,cAdqB,EAerB,kBAfqB,EAgBrB,kBAhBqB,EAiBrB,cAjBqB,EAkBrB,eAlBqB,EAmBrB,mBAnBqB,EAoBrB,eApBqB,EAqBrB,aArBqB,EAsBrB,eAtBqB,EAuBrB,aAvBqB,EAwBrB,cAxBqB,EAyBrB,mBAzBqB,EA0BrB,YA1BqB,EA2BrB,iBA3BqB,EA4BrB,YA5BqB,EA6BrB,WA7BqB,EA8BrB,gBA9BqB,EA+BrB,sBA/BqB,EAgCrB,kBAhCqB,EAiCrB,WAjCqB,EAkCrB,kBAlCqB,EAmCrB,eAnCqB,EAoCrB,cApCqB,EAqCrB,eArCqB,EAsCrB,eAtCqB,EAuCrB,eAvCqB,EAwCrB,sBAxCqB,EAyCrB,eAzCqB,EA0CrB,eA1CqB,EA2CrB,mBA3CqB,EA4CrB,cA5CqB,EA6CrB,eA7CqB,EA8CrB,cA9CqB,EA+CrB,WA/CqB,EAgDrB,eAhDqB,EAiDrB,eAjDqB,EAkDrB,eAlDqB,EAmDrB,gBAnDqB,CAAvB;AAqDA;AACA;AACA;AACA;AACA;;AACA,MAAMC,qBAAqB,GAAIx8B,EAAD,IAAQ;EACpC,OAAOg8B,iBAAiB,CAACh8B,EAAD,EAAKu8B,cAAL,CAAxB;AACD,CAFD;;AAGA,MAAM3tB,gBAAgB,GAAG,CAAC5O,EAAD,EAAKyF,SAAL,EAAgBwR,QAAhB,EAA0BhR,IAA1B,KAAmC;EAC1D,IAAI3E,EAAJ;;EACA,IAAI,OAAO4U,MAAP,KAAkB,WAAtB,EAAmC;IACjC,MAAMW,GAAG,GAAGX,MAAZ;IACA,MAAME,MAAM,GAAG,CAAC9U,EAAE,GAAGuV,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACV,KAApD,MAA+D,IAA/D,IAAuE7U,EAAE,KAAK,KAAK,CAAnF,GAAuF,KAAK,CAA5F,GAAgGA,EAAE,CAAC8U,MAAlH;;IACA,IAAIA,MAAJ,EAAY;MACV,MAAMqS,GAAG,GAAGrS,MAAM,CAAC/U,GAAP,CAAW,MAAX,CAAZ;;MACA,IAAIonB,GAAJ,EAAS;QACP,OAAOA,GAAG,CAACzoB,EAAD,EAAKyF,SAAL,EAAgBwR,QAAhB,EAA0BhR,IAA1B,CAAV;MACD,CAFD,MAGK,IAAImQ,MAAM,CAACqmB,IAAX,EAAiB;QACpB,OAAOrmB,MAAM,CAACqmB,IAAP,CAAYz8B,EAAZ,EAAgByF,SAAhB,EAA2BwR,QAA3B,EAAqChR,IAArC,CAAP;MACD;IACF;EACF;;EACD,OAAOjG,EAAE,CAAC4O,gBAAH,CAAoBnJ,SAApB,EAA+BwR,QAA/B,EAAyChR,IAAzC,CAAP;AACD,CAhBD;;AAiBA,MAAM4I,mBAAmB,GAAG,CAAC7O,EAAD,EAAKyF,SAAL,EAAgBwR,QAAhB,EAA0BhR,IAA1B,KAAmC;EAC7D,IAAI3E,EAAJ;;EACA,IAAI,OAAO4U,MAAP,KAAkB,WAAtB,EAAmC;IACjC,MAAMW,GAAG,GAAGX,MAAZ;IACA,MAAME,MAAM,GAAG,CAAC9U,EAAE,GAAGuV,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACV,KAApD,MAA+D,IAA/D,IAAuE7U,EAAE,KAAK,KAAK,CAAnF,GAAuF,KAAK,CAA5F,GAAgGA,EAAE,CAAC8U,MAAlH;;IACA,IAAIA,MAAJ,EAAY;MACV,MAAMuS,GAAG,GAAGvS,MAAM,CAAC/U,GAAP,CAAW,MAAX,CAAZ;;MACA,IAAIsnB,GAAJ,EAAS;QACP,OAAOA,GAAG,CAAC3oB,EAAD,EAAKyF,SAAL,EAAgBwR,QAAhB,EAA0BhR,IAA1B,CAAV;MACD,CAFD,MAGK,IAAImQ,MAAM,CAACsmB,IAAX,EAAiB;QACpB,OAAOtmB,MAAM,CAACsmB,IAAP,CAAY18B,EAAZ,EAAgByF,SAAhB,EAA2BwR,QAA3B,EAAqChR,IAArC,CAAP;MACD;IACF;EACF;;EACD,OAAOjG,EAAE,CAAC6O,mBAAH,CAAuBpJ,SAAvB,EAAkCwR,QAAlC,EAA4ChR,IAA5C,CAAP;AACD,CAhBD;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM02B,cAAc,GAAG,CAAC38B,EAAD,EAAK4V,QAAQ,GAAG5V,EAAhB,KAAuB;EAC5C,OAAOA,EAAE,CAAC48B,UAAH,IAAiBhnB,QAAxB;AACD,CAFD;AAGA;AACA;AACA;AACA;;;AACA,MAAMvW,GAAG,GAAIC,CAAD,IAAO;EACjB,IAAI,OAAOC,oCAAP,KAAgD,UAApD,EAAgE;IAC9D,OAAOA,oCAAoC,CAACD,CAAD,CAA3C;EACD;;EACD,IAAI,OAAOE,qBAAP,KAAiC,UAArC,EAAiD;IAC/C,OAAOA,qBAAqB,CAACF,CAAD,CAA5B;EACD;;EACD,OAAOG,UAAU,CAACH,CAAD,CAAjB;AACD,CARD;;AASA,MAAMu9B,YAAY,GAAI78B,EAAD,IAAQ;EAC3B,OAAO,CAAC,CAACA,EAAE,CAAC48B,UAAL,IAAmB,CAAC,CAAC58B,EAAE,CAAC88B,YAA/B;AACD,CAFD;;AAGA,MAAMC,aAAa,GAAIC,WAAD,IAAiB;EACrC,MAAMC,MAAM,GAAGD,WAAW,CAACn6B,OAAZ,CAAoB,UAApB,CAAf;;EACA,IAAIo6B,MAAJ,EAAY;IACV,OAAOA,MAAM,CAACtQ,aAAP,CAAqB,WAArB,CAAP;EACD;;EACD,OAAO,IAAP;AACD,CAND;;AAOA,MAAMuQ,YAAY,GAAIl9B,EAAD,IAAQ;EAC3BA,EAAE,CAACm9B,KAAH;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EACE,IAAIn9B,EAAE,CAAC8C,SAAH,CAAas6B,QAAb,CAAsB,eAAtB,CAAJ,EAA4C;IAC1C,MAAMC,GAAG,GAAGr9B,EAAE,CAAC6C,OAAH,CAAW,SAAX,CAAZ;;IACA,IAAIw6B,GAAJ,EAAS;MACPA,GAAG,CAACC,QAAJ,CAAa,CAACt9B,EAAD,CAAb;IACD;EACF;AACF,CAhBD;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMu9B,YAAY,GAAG,CAACP,WAAD,EAAcQ,OAAd,KAA0B;EAC7C,IAAIC,SAAJ,CAD6C,CAE7C;EACA;;EACA,MAAMC,UAAU,GAAGV,WAAW,CAACX,YAAZ,CAAyB,iBAAzB,CAAnB,CAJ6C,CAK7C;EACA;;EACA,MAAMsB,WAAW,GAAGX,WAAW,CAACptB,EAAhC;EACA,IAAIguB,OAAO,GAAGF,UAAU,KAAK,IAAf,IAAuBA,UAAU,CAAC3sB,IAAX,OAAsB,EAA7C,GAAkD2sB,UAAlD,GAA+DF,OAAO,GAAG,MAAvF;EACA,IAAIK,KAAK,GAAGH,UAAU,KAAK,IAAf,IAAuBA,UAAU,CAAC3sB,IAAX,OAAsB,EAA7C,GAAkD+b,QAAQ,CAACgR,cAAT,CAAwBJ,UAAxB,CAAlD,GAAwFX,aAAa,CAACC,WAAD,CAAjH;;EACA,IAAIa,KAAJ,EAAW;IACT,IAAIH,UAAU,KAAK,IAAnB,EAAyB;MACvBG,KAAK,CAACjuB,EAAN,GAAWguB,OAAX;IACD;;IACDH,SAAS,GAAGI,KAAK,CAAC7Q,WAAlB;IACA6Q,KAAK,CAACpoB,YAAN,CAAmB,aAAnB,EAAkC,MAAlC,EALS,CAMT;IACA;EACD,CARD,MASK,IAAIkoB,WAAW,CAAC5sB,IAAZ,OAAuB,EAA3B,EAA+B;IAClC8sB,KAAK,GAAG/Q,QAAQ,CAACH,aAAT,CAAwB,cAAagR,WAAY,IAAjD,CAAR;;IACA,IAAIE,KAAJ,EAAW;MACT,IAAIA,KAAK,CAACjuB,EAAN,KAAa,EAAjB,EAAqB;QACnBguB,OAAO,GAAGC,KAAK,CAACjuB,EAAhB;MACD,CAFD,MAGK;QACHiuB,KAAK,CAACjuB,EAAN,GAAWguB,OAAO,GAAI,GAAED,WAAY,MAApC;MACD;;MACDF,SAAS,GAAGI,KAAK,CAAC7Q,WAAlB;IACD;EACF;;EACD,OAAO;IAAE6Q,KAAF;IAASD,OAAT;IAAkBH;EAAlB,CAAP;AACD,CAhCD;AAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,iBAAiB,GAAG,CAACC,MAAD,EAASvxB,SAAT,EAAoBkP,IAApB,EAA0Bvb,KAA1B,EAAiCW,QAAjC,KAA8C;EACtE,IAAIi9B,MAAM,IAAInB,YAAY,CAACpwB,SAAD,CAA1B,EAAuC;IACrC,IAAInK,KAAK,GAAGmK,SAAS,CAACkgB,aAAV,CAAwB,iBAAxB,CAAZ;;IACA,IAAI,CAACrqB,KAAL,EAAY;MACVA,KAAK,GAAGmK,SAAS,CAACogB,aAAV,CAAwBE,aAAxB,CAAsC,OAAtC,CAAR;MACAzqB,KAAK,CAACH,IAAN,GAAa,QAAb;MACAG,KAAK,CAACQ,SAAN,CAAgBM,GAAhB,CAAoB,WAApB;MACAqJ,SAAS,CAACyB,WAAV,CAAsB5L,KAAtB;IACD;;IACDA,KAAK,CAACvB,QAAN,GAAiBA,QAAjB;IACAuB,KAAK,CAACqZ,IAAN,GAAaA,IAAb;IACArZ,KAAK,CAAClC,KAAN,GAAcA,KAAK,IAAI,EAAvB;EACD;AACF,CAbD;;AAcA,MAAM69B,KAAK,GAAG,CAACjJ,GAAD,EAAMkJ,CAAN,EAASjJ,GAAT,KAAiB;EAC7B,OAAOF,IAAI,CAACE,GAAL,CAASD,GAAT,EAAcD,IAAI,CAACC,GAAL,CAASkJ,CAAT,EAAYjJ,GAAZ,CAAd,CAAP;AACD,CAFD;;AAGA,MAAMkJ,MAAM,GAAG,CAACC,MAAD,EAASC,MAAT,KAAoB;EACjC,IAAI,CAACD,MAAL,EAAa;IACX,MAAME,OAAO,GAAG,aAAaD,MAA7B;IACA7f,OAAO,CAACyU,KAAR,CAAcqL,OAAd;IACA,SAHW,CAGD;;IACV,MAAM,IAAI5gB,KAAJ,CAAU4gB,OAAV,CAAN;EACD;AACF,CAPD;;AAQA,MAAMC,GAAG,GAAI7vB,EAAD,IAAQ;EAClB,OAAOA,EAAE,CAAC8vB,SAAH,IAAgBC,IAAI,CAACF,GAAL,EAAvB;AACD,CAFD;;AAGA,MAAMG,YAAY,GAAIhwB,EAAD,IAAQ;EAC3B;EACA;EACA,IAAIA,EAAJ,EAAQ;IACN,MAAMiwB,cAAc,GAAGjwB,EAAE,CAACiwB,cAA1B;;IACA,IAAIA,cAAc,IAAIA,cAAc,CAACl8B,MAAf,GAAwB,CAA9C,EAAiD;MAC/C,MAAMm8B,KAAK,GAAGD,cAAc,CAAC,CAAD,CAA5B;MACA,OAAO;QAAEE,CAAC,EAAED,KAAK,CAACE,OAAX;QAAoBC,CAAC,EAAEH,KAAK,CAACI;MAA7B,CAAP;IACD;;IACD,IAAItwB,EAAE,CAACuwB,KAAH,KAAap5B,SAAjB,EAA4B;MAC1B,OAAO;QAAEg5B,CAAC,EAAEnwB,EAAE,CAACuwB,KAAR;QAAeF,CAAC,EAAErwB,EAAE,CAACwwB;MAArB,CAAP;IACD;EACF;;EACD,OAAO;IAAEL,CAAC,EAAE,CAAL;IAAQE,CAAC,EAAE;EAAX,CAAP;AACD,CAdD;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,SAAS,GAAIC,IAAD,IAAU;EAC1B,MAAMvnB,KAAK,GAAGiV,QAAQ,CAAChV,GAAT,KAAiB,KAA/B;;EACA,QAAQsnB,IAAR;IACE,KAAK,OAAL;MACE,OAAOvnB,KAAP;;IACF,KAAK,KAAL;MACE,OAAO,CAACA,KAAR;;IACF;MACE,MAAM,IAAI6F,KAAJ,CAAW,IAAG0hB,IAAK,kEAAnB,CAAN;EANJ;AAQD,CAVD;;AAWA,MAAMC,aAAa,GAAG,CAAC1F,KAAD,EAAQzmB,IAAR,KAAiB;EACrC,MAAMosB,QAAQ,GAAG3F,KAAK,CAAC4F,SAAN,IAAmB5F,KAApC;EACA,OAAO;IACL4F,SAAS,EAAE5F,KADN;IAELzb,IAAI,EAAEshB,QAAQ,CAACF,QAAQ,CAACphB,IAAT,CAAcpc,IAAd,CAAmBw9B,QAAnB,CAAD,EAA+BpsB,IAA/B;EAFT,CAAP;AAID,CAND;;AAOA,MAAMssB,QAAQ,GAAG,CAACC,IAAD,EAAOvsB,IAAI,GAAG,CAAd,KAAoB;EACnC,IAAIwsB,KAAJ;EACA,OAAO,CAAC,GAAGt9B,IAAJ,KAAa;IAClB4zB,YAAY,CAAC0J,KAAD,CAAZ;IACAA,KAAK,GAAGjgC,UAAU,CAACggC,IAAD,EAAOvsB,IAAP,EAAa,GAAG9Q,IAAhB,CAAlB;EACD,CAHD;AAID,CAND;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMu9B,qBAAqB,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;EAC5CD,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,KAAK,CAA/B,GAAmCA,IAAnC,GAA2CA,IAAI,GAAG,EAAlD;EACAC,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,KAAK,CAA/B,GAAmCA,IAAnC,GAA2CA,IAAI,GAAG,EAAlD;;EACA,IAAID,IAAI,KAAKC,IAAb,EAAmB;IACjB,OAAO,IAAP;EACD;;EACD,MAAMC,KAAK,GAAGn7B,MAAM,CAACqjB,IAAP,CAAY4X,IAAZ,CAAd;;EACA,IAAIE,KAAK,CAACr9B,MAAN,KAAiBkC,MAAM,CAACqjB,IAAP,CAAY6X,IAAZ,EAAkBp9B,MAAvC,EAA+C;IAC7C,OAAO,KAAP;EACD;;EACD,KAAK,MAAMs9B,EAAX,IAAiBD,KAAjB,EAAwB;IACtB,IAAI,EAAEC,EAAE,IAAIF,IAAR,CAAJ,EAAmB;MACjB,OAAO,KAAP;IACD;;IACD,IAAID,IAAI,CAACG,EAAD,CAAJ,KAAaF,IAAI,CAACE,EAAD,CAArB,EAA2B;MACzB,OAAO,KAAP;IACD;EACF;;EACD,OAAO,IAAP;AACD,CAnBD;;;;;;;;;;;;;;;;;;;;;;;AC9XA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMQ,aAAa,GAAIC,KAAD,IAAW;EAC/B;EACA;;EACA;AACF;AACA;AACA;AACA;EACE,OAAOpiC,yDAAe,GAAG8W,QAAlB,CAA2BsrB,KAAK,GAAG,GAAH,GAAS,GAAzC,CAAP;AACD,CATD;AAWA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAoB,GAAIC,IAAD,IAAU;EACrC,IAAIC,OAAJ;EACA,IAAIC,OAAJ;EACA,MAAMhoB,KAAK,GAAG8nB,IAAI,CAAC9nB,KAAL,GAAa,CAA3B;EACA,MAAMioB,aAAa,GAAGziC,yDAAe,EAArC;EACA,MAAM0iC,iBAAiB,GAAG1iC,yDAAe,EAAzC;;EACA,IAAIsiC,IAAI,CAACvB,SAAT,EAAoB;IAClB;IACAwB,OAAO,GAAG/nB,KAAK,GAAG,IAAlB;IACAgoB,OAAO,GAAG,KAAV;EACD,CAJD,MAKK;IACH;IACAD,OAAO,GAAG,CAAC/nB,KAAD,GAAS,IAAnB;IACAgoB,OAAO,GAAG,KAAV;EACD;;EACDC,aAAa,CAAC7N,UAAd,CAAyB0N,IAAI,CAACK,WAA9B,EAA2CnK,MAA3C,CAAkD,WAAlD,EAAgE,cAAa+J,OAAQ,GAArF,EAA0F,cAAaC,OAAQ,GAA/G;EACA,MAAMpjB,IAAI,GAAG8iB,4DAAU,CAACI,IAAD,CAAvB;EACA,MAAMF,KAAK,GAAGhjB,IAAI,KAAK,KAAvB;EACA,MAAMwjB,OAAO,GAAGR,KAAK,GAAG,GAAH,GAAS,IAA9B;EACAM,iBAAiB,CAAC9N,UAAlB,CAA6B0N,IAAI,CAACO,UAAlC,EAA8CrK,MAA9C,CAAqD,SAArD,EAAgE,IAAhE,EAAsEoK,OAAtE;EACA,OAAOT,aAAa,CAACC,KAAD,CAAb,CAAqBtN,YAArB,CAAkC,CAAC2N,aAAD,EAAgBC,iBAAhB,CAAlC,CAAP;AACD,CAtBD;AAwBA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,iBAAiB,GAAIR,IAAD,IAAU;EAClC,IAAIS,cAAJ;EACA,IAAIC,WAAJ;EACA,MAAM5jB,IAAI,GAAG8iB,4DAAU,CAACI,IAAD,CAAvB;EACA,MAAM9nB,KAAK,GAAG8nB,IAAI,CAAC9nB,KAAnB;;EACA,IAAI8nB,IAAI,CAACvB,SAAT,EAAoB;IAClBgC,cAAc,GAAG,CAACvoB,KAAD,GAAS,IAA1B;IACAwoB,WAAW,GAAGxoB,KAAK,GAAG,IAAtB;EACD,CAHD,MAIK;IACHuoB,cAAc,GAAGvoB,KAAK,GAAG,IAAzB;IACAwoB,WAAW,GAAG,CAACxoB,KAAD,GAAS,IAAvB;EACD;;EACD,MAAMioB,aAAa,GAAGziC,yDAAe,GAClC40B,UADmB,CACR0N,IAAI,CAACK,WADG,EAEnBnK,MAFmB,CAEZ,WAFY,EAEE,cAAawK,WAAY,GAF3B,EAE+B,iBAF/B,CAAtB;EAGA,MAAMC,gBAAgB,GAAGjjC,yDAAe,GACrC40B,UADsB,CACX0N,IAAI,CAACY,SADM,EAEtB1K,MAFsB,CAEf,WAFe,EAEF,iBAFE,EAEkB,cAAauK,cAAe,GAF9C,CAAzB;EAGA,MAAML,iBAAiB,GAAG1iC,yDAAe,GAAG40B,UAAlB,CAA6B0N,IAAI,CAACO,UAAlC,EAA8CrK,MAA9C,CAAqD,SAArD,EAAgE,IAAhE,EAAsE,IAAtE,CAA1B;EACA,OAAO2J,aAAa,CAAC/iB,IAAI,KAAK,KAAV,CAAb,CAA8B0V,YAA9B,CAA2C,CAAC2N,aAAD,EAAgBQ,gBAAhB,EAAkCP,iBAAlC,CAA3C,CAAP;AACD,CArBD;AAuBA;AACA;AACA;AACA;AACA;;;AACA,MAAMS,mBAAmB,GAAIb,IAAD,IAAU;EACpC,MAAMljB,IAAI,GAAG8iB,4DAAU,CAACI,IAAD,CAAvB;EACA,MAAME,OAAO,GAAGF,IAAI,CAAC9nB,KAAL,IAAc8nB,IAAI,CAACvB,SAAL,GAAiB,CAAC,CAAlB,GAAsB,CAApC,IAAyC,IAAzD;EACA,MAAMqC,WAAW,GAAGpjC,yDAAe,GAChC40B,UADiB,CACN0N,IAAI,CAACY,SADC,EACU;EADV,CAEjB1K,MAFiB,CAEV,WAFU,EAEG,iBAFH,EAEuB,cAAagK,OAAQ,GAF5C,CAApB;EAGA,OAAOL,aAAa,CAAC/iB,IAAI,KAAK,KAAV,CAAb,CAA8B0V,YAA9B,CAA2CsO,WAA3C,CAAP;AACD,CAPD;;AASA,MAAMC,oBAAoB,GAAG,MAAM;EACjC,MAAMC,cAAc,GAAG,IAAI3jB,GAAJ,EAAvB;EACA,MAAM4jB,KAAK,GAAG,EAAd;;EACA,MAAMxc,IAAI;IAAA,gKAAG,WAAOub,IAAP,EAAgB;MAC3B,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB;;MACA,IAAIkB,MAAJ,EAAY;QACV,OAAOA,MAAM,CAACzc,IAAP,EAAP;MACD;;MACD,OAAO,KAAP;IACD,CANS;;IAAA,gBAAJA,IAAI;MAAA;IAAA;EAAA,GAAV;;EAOA,MAAME,KAAK;IAAA,iKAAG,WAAOqb,IAAP,EAAgB;MAC5B,MAAMkB,MAAM,SAAUlB,IAAI,KAAK76B,SAAT,GAAqBxE,GAAG,CAACq/B,IAAD,CAAxB,GAAiC/a,OAAO,EAA9D;;MACA,IAAIic,MAAM,KAAK/7B,SAAf,EAA0B;QACxB,OAAO+7B,MAAM,CAACvc,KAAP,EAAP;MACD;;MACD,OAAO,KAAP;IACD,CANU;;IAAA,gBAALA,KAAK;MAAA;IAAA;EAAA,GAAX;;EAOA,MAAMC,MAAM;IAAA,iKAAG,WAAOob,IAAP,EAAgB;MAC7B,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB;;MACA,IAAIkB,MAAJ,EAAY;QACV,OAAOA,MAAM,CAACtc,MAAP,EAAP;MACD;;MACD,OAAO,KAAP;IACD,CANW;;IAAA,gBAANA,MAAM;MAAA;IAAA;EAAA,GAAZ;;EAOA,MAAMC,MAAM;IAAA,iKAAG,WAAOC,YAAP,EAAqBkb,IAArB,EAA8B;MAC3C,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB;;MACA,IAAIkB,MAAJ,EAAY;QACVA,MAAM,CAAC7gC,QAAP,GAAkB,CAACykB,YAAnB;MACD;;MACD,OAAOoc,MAAP;IACD,CANW;;IAAA,gBAANrc,MAAM;MAAA;IAAA;EAAA,GAAZ;;EAOA,MAAM5I,YAAY;IAAA,iKAAG,WAAO6I,YAAP,EAAqBkb,IAArB,EAA8B;MACjD,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB;;MACA,IAAIkB,MAAJ,EAAY;QACVA,MAAM,CAACjlB,YAAP,GAAsB6I,YAAtB;MACD;;MACD,OAAOoc,MAAP;IACD,CANiB;;IAAA,gBAAZjlB,YAAY;MAAA;IAAA;EAAA,GAAlB;;EAOA,MAAM8I,MAAM;IAAA,iKAAG,WAAOib,IAAP,EAAgB;MAC7B,IAAIA,IAAI,IAAI,IAAZ,EAAkB;QAChB,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB,CADgB,CAEhB;;QACA,OAAOkB,MAAM,KAAK/7B,SAAX,IAAwB+7B,MAAM,CAACnc,MAAP,EAA/B;MACD,CAJD,MAKK;QACH,MAAMmc,MAAM,SAASjc,OAAO,EAA5B;QACA,OAAOic,MAAM,KAAK/7B,SAAlB;MACD;IACF,CAVW;;IAAA,gBAAN4f,MAAM;MAAA;IAAA;EAAA,GAAZ;;EAWA,MAAMC,SAAS;IAAA,iKAAG,WAAOgb,IAAP,EAAgB;MAChC,MAAMkB,MAAM,SAASvgC,GAAG,CAACq/B,IAAD,CAAxB;;MACA,IAAIkB,MAAJ,EAAY;QACV,OAAO,CAACA,MAAM,CAAC7gC,QAAf;MACD;;MACD,OAAO,KAAP;IACD,CANc;;IAAA,gBAAT2kB,SAAS;MAAA;IAAA;EAAA,GAAf;;EAOA,MAAMrkB,GAAG;IAAA,iKAAG,WAAOq/B,IAAP,EAAgB;MAC1B,MAAMmB,cAAc,EAApB;;MACA,IAAInB,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,KAAjC,EAAwC;QACtC;QACA;QACA,MAAMoB,OAAO,GAAGlwB,IAAI,CAAEwuB,CAAD,IAAOA,CAAC,CAAChB,IAAF,KAAWsB,IAAX,IAAmB,CAACN,CAAC,CAACr/B,QAA9B,CAApB;;QACA,IAAI+gC,OAAJ,EAAa;UACX,OAAOA,OAAP;QACD,CANqC,CAOtC;QACA;;;QACA,OAAOlwB,IAAI,CAAEwuB,CAAD,IAAOA,CAAC,CAAChB,IAAF,KAAWsB,IAAnB,CAAX;MACD,CAVD,MAWK,IAAIA,IAAI,IAAI,IAAZ,EAAkB;QACrB;QACA;QACA,OAAO9uB,IAAI,CAAEwuB,CAAD,IAAOA,CAAC,CAAChb,MAAF,KAAasb,IAArB,CAAX;MACD,CAjByB,CAkB1B;;;MACA,MAAMkB,MAAM,GAAGhwB,IAAI,CAAEwuB,CAAD,IAAO,CAACA,CAAC,CAACr/B,QAAX,CAAnB;;MACA,IAAI6gC,MAAJ,EAAY;QACV,OAAOA,MAAP;MACD,CAtByB,CAuB1B;;;MACA,OAAOD,KAAK,CAACl/B,MAAN,GAAe,CAAf,GAAmBk/B,KAAK,CAAC,CAAD,CAAL,CAAS3hC,EAA5B,GAAiC6F,SAAxC;IACD,CAzBQ;;IAAA,gBAAHxE,GAAG;MAAA;IAAA;EAAA,GAAT;EA0BA;AACF;AACA;;;EACE,MAAMskB,OAAO;IAAA,iKAAG,aAAY;MAC1B,MAAMkc,cAAc,EAApB;MACA,OAAOE,YAAY,EAAnB;IACD,CAHY;;IAAA,gBAAPpc,OAAO;MAAA;IAAA;EAAA,GAAb;EAIA;AACF;AACA;;;EACE,MAAMC,QAAQ;IAAA,kKAAG,aAAY;MAC3B,MAAMic,cAAc,EAApB;MACA,OAAOG,YAAY,EAAnB;IACD,CAHa;;IAAA,gBAARpc,QAAQ;MAAA;IAAA;EAAA,GAAd;EAIA;AACF;AACA;AACA;;;EACE,MAAMqc,WAAW;IAAA,kKAAG,aAAY;MAC9B,MAAMJ,cAAc,EAApB;MACA,OAAOK,eAAe,EAAtB;IACD,CAHgB;;IAAA,gBAAXD,WAAW;MAAA;IAAA;EAAA,GAAjB;;EAIA,MAAME,iBAAiB,GAAG,CAACxmB,IAAD,EAAOzJ,SAAP,KAAqB;IAC7CwvB,cAAc,CAAC78B,GAAf,CAAmB8W,IAAnB,EAAyBzJ,SAAzB;EACD,CAFD;;EAGA,MAAMkwB,SAAS,GAAI1B,IAAD,IAAU;IAC1B,IAAIiB,KAAK,CAAC9zB,OAAN,CAAc6yB,IAAd,IAAsB,CAA1B,EAA6B;MAC3B,IAAI,CAACA,IAAI,CAAC3/B,QAAV,EAAoB;QAClBshC,cAAc,CAAC3B,IAAD,CAAd;MACD;;MACDiB,KAAK,CAAC1+B,IAAN,CAAWy9B,IAAX;IACD;EACF,CAPD;;EAQA,MAAM4B,WAAW,GAAI5B,IAAD,IAAU;IAC5B,MAAM9yB,KAAK,GAAG+zB,KAAK,CAAC9zB,OAAN,CAAc6yB,IAAd,CAAd;;IACA,IAAI9yB,KAAK,GAAG,CAAC,CAAb,EAAgB;MACd+zB,KAAK,CAAC9uB,MAAN,CAAajF,KAAb,EAAoB,CAApB;IACD;EACF,CALD;;EAMA,MAAMy0B,cAAc,GAAI3B,IAAD,IAAU;IAC/B;IACA;IACA;IACA,MAAMtB,IAAI,GAAGsB,IAAI,CAACtB,IAAlB;IACAuC,KAAK,CAAC9iC,MAAN,CAAcuhC,CAAD,IAAOA,CAAC,CAAChB,IAAF,KAAWA,IAAX,IAAmBgB,CAAC,KAAKM,IAA7C,EAAmD/+B,OAAnD,CAA4Dy+B,CAAD,IAAQA,CAAC,CAACr/B,QAAF,GAAa,IAAhF;EACD,CAND;;EAOA,MAAMwhC,QAAQ;IAAA,kKAAG,WAAO7B,IAAP,EAAa8B,UAAb,EAAyB3oB,QAAzB,EAAsC;MACrD,IAAIqoB,eAAe,EAAnB,EAAuB;QACrB,OAAO,KAAP;MACD;;MACD,IAAIM,UAAJ,EAAgB;QACd,MAAMC,UAAU,SAAS9c,OAAO,EAAhC;;QACA,IAAI8c,UAAU,IAAI/B,IAAI,CAAC1gC,EAAL,KAAYyiC,UAA9B,EAA0C;UACxC,MAAMA,UAAU,CAACC,OAAX,CAAmB,KAAnB,EAA0B,KAA1B,CAAN;QACD;MACF;;MACD,OAAOhC,IAAI,CAAC6B,QAAL,CAAcC,UAAd,EAA0B3oB,QAA1B,CAAP;IACD,CAXa;;IAAA,gBAAR0oB,QAAQ;MAAA;IAAA;EAAA,GAAd;;EAYA,MAAMI,gBAAgB,GAAG,CAACxgC,IAAD,EAAOygC,OAAP,KAAmB;IAC1C,MAAMzwB,gBAAgB,GAAGuvB,cAAc,CAACrgC,GAAf,CAAmBc,IAAnB,CAAzB;;IACA,IAAI,CAACgQ,gBAAL,EAAuB;MACrB,MAAM,IAAIuL,KAAJ,CAAU,0BAAV,CAAN;IACD;;IACD,MAAMxL,SAAS,GAAGC,gBAAgB,CAACywB,OAAD,CAAlC;IACA,OAAO1wB,SAAP;EACD,CAPD;;EAQA,MAAM6vB,YAAY,GAAG,MAAM;IACzB,OAAOnwB,IAAI,CAAEwuB,CAAD,IAAOA,CAAC,CAACyC,OAAV,CAAX;EACD,CAFD;;EAGA,MAAMb,YAAY,GAAG,MAAM;IACzB,OAAOL,KAAK,CAACnzB,GAAN,CAAWkyB,IAAD,IAAUA,IAAI,CAAC1gC,EAAzB,CAAP;EACD,CAFD;;EAGA,MAAMkiC,eAAe,GAAG,MAAM;IAC5B,OAAOP,KAAK,CAACmB,IAAN,CAAYpC,IAAD,IAAUA,IAAI,CAACuB,WAA1B,CAAP;EACD,CAFD;;EAGA,MAAMrwB,IAAI,GAAImxB,SAAD,IAAe;IAC1B,MAAMx9B,QAAQ,GAAGo8B,KAAK,CAAC/vB,IAAN,CAAWmxB,SAAX,CAAjB;;IACA,IAAIx9B,QAAQ,KAAKM,SAAjB,EAA4B;MAC1B,OAAON,QAAQ,CAACvF,EAAhB;IACD;;IACD,OAAO6F,SAAP;EACD,CAND;;EAOA,MAAMg8B,cAAc,GAAG,MAAM;IAC3B,OAAOh1B,OAAO,CAACm2B,GAAR,CAAYhoB,KAAK,CAACwb,IAAN,CAAW1J,QAAQ,CAACmW,gBAAT,CAA0B,UAA1B,CAAX,EAAkDz0B,GAAlD,CAAuDkyB,IAAD,IAAU,IAAI7zB,OAAJ,CAAaC,OAAD,IAAanP,uDAAgB,CAAC+iC,IAAD,EAAO5zB,OAAP,CAAzC,CAAhE,CAAZ,CAAP;EACD,CAFD;;EAGAq1B,iBAAiB,CAAC,QAAD,EAAWZ,mBAAX,CAAjB;EACAY,iBAAiB,CAAC,MAAD,EAASjB,iBAAT,CAAjB;EACAiB,iBAAiB,CAAC,SAAD,EAAY1B,oBAAZ,CAAjB;;EACA,IAAI,OAAO3T,QAAP,KAAoB,WAAxB,EAAqC;IACnCA,QAAQ,CAACle,gBAAT,CAA0B,eAA1B,EAA4CF,EAAD,IAAQ;MACjD,MAAMw0B,QAAQ,GAAGnB,YAAY,EAA7B;;MACA,IAAImB,QAAJ,EAAc;QACZx0B,EAAE,CAACC,MAAH,CAAUuI,QAAV,CAAmBukB,wFAAnB,EAA8C,MAAM;UAClD,OAAOyH,QAAQ,CAAC7d,KAAT,EAAP;QACD,CAFD;MAGD;IACF,CAPD;EAQD;;EACD,OAAO;IACL8c,iBADK;IAEL9gC,GAFK;IAGLukB,QAHK;IAILD,OAJK;IAKLD,SALK;IAML/I,YANK;IAOLslB,WAPK;IAQLxc,MARK;IASLF,MATK;IAULD,MAVK;IAWLD,KAXK;IAYLF,IAZK;IAaL4c,YAbK;IAcLY,gBAdK;IAeLP,SAfK;IAgBLE,WAhBK;IAiBLC,QAjBK;IAkBLF;EAlBK,CAAP;AAoBD,CAxMD;;AAyMA,MAAMtkC,cAAc,GAAG,aAAc0jC,oBAAoB,EAAzD;;;;;;;;;;;;;;;ACzSA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM5qB,GAAG,GAAG,OAAOX,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCrQ,SAArD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA,MAAMs9B,SAAS,GAAG,OAAlB;AAEA,IAAIC,OAAJ;AACA,IAAIC,UAAJ;AACA,IAAIC,WAAJ;AACA,IAAIC,kBAAkB,GAAG,KAAzB;AACA,IAAIC,2BAA2B,GAAG,KAAlC;AACA,IAAIC,iBAAiB,GAAG,KAAxB;AACA,IAAIC,SAAS,GAAG,KAAhB;AACA,IAAIC,YAAY,GAAG,KAAnB;AACA,MAAM9sB,GAAG,GAAG,OAAOX,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,EAArD;AACA,MAAMI,GAAG,GAAGO,GAAG,CAACiW,QAAJ,IAAgB;EAAET,IAAI,EAAE;AAAR,CAA5B;AACA,MAAMuX,GAAG,GAAG;EACRC,OAAO,EAAE,CADD;EAERC,cAAc,EAAE,EAFR;EAGRtb,GAAG,EAAGlpB,CAAD,IAAOA,CAAC,EAHL;EAIRD,GAAG,EAAGC,CAAD,IAAOE,qBAAqB,CAACF,CAAD,CAJzB;EAKRmpB,GAAG,EAAE,CAACzoB,EAAD,EAAKyF,SAAL,EAAgBs+B,QAAhB,EAA0B99B,IAA1B,KAAmCjG,EAAE,CAAC4O,gBAAH,CAAoBnJ,SAApB,EAA+Bs+B,QAA/B,EAAyC99B,IAAzC,CALhC;EAMR0iB,GAAG,EAAE,CAAC3oB,EAAD,EAAKyF,SAAL,EAAgBs+B,QAAhB,EAA0B99B,IAA1B,KAAmCjG,EAAE,CAAC6O,mBAAH,CAAuBpJ,SAAvB,EAAkCs+B,QAAlC,EAA4C99B,IAA5C,CANhC;EAOR+9B,EAAE,EAAE,CAACv+B,SAAD,EAAYQ,IAAZ,KAAqB,IAAI2zB,WAAJ,CAAgBn0B,SAAhB,EAA2BQ,IAA3B;AAPjB,CAAZ;;AASA,MAAMg+B,kBAAkB,GAAIC,OAAD,IAAa;EACpCv/B,MAAM,CAACoJ,MAAP,CAAc61B,GAAd,EAAmBM,OAAnB;AACH,CAFD;;AAGA,MAAMC,cAAc,GAAG,IAAvB;;AACA,MAAMC,cAAc,GAAI10B,CAAD,IAAO7C,OAAO,CAACC,OAAR,CAAgB4C,CAAhB,CAA9B;;AACA,MAAM20B,gCAAgC,GAAG,aAAc,CAAC,MAAM;EACtD,IAAI;IACA,IAAIC,aAAJ;IACA,OAAO,OAAO,IAAIA,aAAJ,GAAoBC,WAA3B,KAA2C,UAAlD;EACH,CAHD,CAIA,OAAOphB,CAAP,EAAU,CAAG;;EACb,OAAO,KAAP;AACH,CAPkD,GAAvD;;AASA,MAAMqhB,qBAAqB,GAAG,CAAC9b,GAAD,EAAM+b,OAAN,EAAeC,SAAf,EAA0BC,qBAA1B,KAAoD;EAC9E,IAAID,SAAJ,EAAe;IACXA,SAAS,CAACl2B,GAAV,CAAc,CAAC,CAACo2B,KAAD,EAAQjpB,IAAR,EAAc/Z,MAAd,CAAD,KAA2B;MACrC,MAAM6pB,MAAM,GAAGoZ,qBAAqB,CAACnc,GAAD,EAAMkc,KAAN,CAApC;MACA,MAAMn2B,OAAO,GAAGq2B,iBAAiB,CAACL,OAAD,EAAU7iC,MAAV,CAAjC;MACA,MAAMqE,IAAI,GAAG8+B,gBAAgB,CAACH,KAAD,CAA7B;MACAhB,GAAG,CAACnb,GAAJ,CAAQgD,MAAR,EAAgB9P,IAAhB,EAAsBlN,OAAtB,EAA+BxI,IAA/B;MACA,CAACw+B,OAAO,CAACO,aAAR,GAAwBP,OAAO,CAACO,aAAR,IAAyB,EAAlD,EAAsD/hC,IAAtD,CAA2D,MAAM2gC,GAAG,CAACjb,GAAJ,CAAQ8C,MAAR,EAAgB9P,IAAhB,EAAsBlN,OAAtB,EAA+BxI,IAA/B,CAAjE;IACH,CAND;EAOH;AACJ,CAVD;;AAWA,MAAM6+B,iBAAiB,GAAG,CAACL,OAAD,EAAUt/B,UAAV,KAA0BuJ,EAAD,IAAQ;EACvD,IAAI;IACA;MACI,IAAI+1B,OAAO,CAACZ,OAAR,GAAkB;MAAI;MAA1B,EAA0D;QACtD;QACAY,OAAO,CAACQ,cAAR,CAAuB9/B,UAAvB,EAAmCuJ,EAAnC;MACH,CAHD,MAIK;QACD,CAAC+1B,OAAO,CAACS,iBAAR,GAA4BT,OAAO,CAACS,iBAAR,IAA6B,EAA1D,EAA8DjiC,IAA9D,CAAmE,CAACkC,UAAD,EAAauJ,EAAb,CAAnE;MACH;IACJ;EACJ,CAVD,CAWA,OAAOyU,CAAP,EAAU;IACNgiB,YAAY,CAAChiB,CAAD,CAAZ;EACH;AACJ,CAfD;;AAgBA,MAAM0hB,qBAAqB,GAAG,CAACnc,GAAD,EAAMkc,KAAN,KAAgB;EAC1C,IAAIA,KAAK,GAAG;EAAE;EAAd,EACI,OAAOtuB,GAAP;EACJ,IAAIsuB,KAAK,GAAG;EAAE;EAAd,EACI,OAAO/tB,GAAP;EACJ,IAAI+tB,KAAK,GAAG;EAAG;EAAf,EACI,OAAOtuB,GAAG,CAAC+R,IAAX;EACJ,OAAOK,GAAP;AACH,CARD,EASA;;;AACA,MAAMqc,gBAAgB,GAAIH,KAAD,IAAW,CAACA,KAAK,GAAG;AAAE;AAAX,MAA6C,CAAjF;;AACA,MAAMQ,cAAc,GAAG,GAAvB;AACA,MAAMC,eAAe,GAAG,GAAxB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,UAAU,GAAG,MAAnB;AACA,MAAMC,iBAAiB,GAAG,QAA1B;AACA,MAAMC,gBAAgB,GAAG,MAAzB;AACA,MAAMC,YAAY,GAAG,kDAArB;AACA,MAAMC,QAAQ,GAAG,8BAAjB;;AACA,MAAMC,UAAU,GAAG,CAACC,MAAD,EAASngC,OAAO,GAAG,EAAnB,KAA0B;EACzC;IACI,OAAO,MAAM;MACT;IACH,CAFD;EAGH;AACJ,CAND;;AAOA,MAAMogC,UAAU,GAAG,CAACpwB,GAAD,EAAMqwB,WAAN,KAAsB;EACrC;IACI,OAAO,MAAM;MACT;IACH,CAFD;EAGH;AACJ,CAND;;AAOA,MAAMC,iBAAiB,GAAG,aAAc,IAAI35B,OAAJ,EAAxC;;AACA,MAAM45B,aAAa,GAAG,CAAC9C,OAAD,EAAU+C,OAAV,EAAmBC,OAAnB,KAA+B;EACjD,IAAI1b,KAAK,GAAG1J,MAAM,CAAC3f,GAAP,CAAW+hC,OAAX,CAAZ;;EACA,IAAIiB,gCAAgC,IAAI+B,OAAxC,EAAiD;IAC7C1b,KAAK,GAAIA,KAAK,IAAI,IAAI4Z,aAAJ,EAAlB;;IACA,IAAI,OAAO5Z,KAAP,KAAiB,QAArB,EAA+B;MAC3BA,KAAK,GAAGyb,OAAR;IACH,CAFD,MAGK;MACDzb,KAAK,CAAC6Z,WAAN,CAAkB4B,OAAlB;IACH;EACJ,CARD,MASK;IACDzb,KAAK,GAAGyb,OAAR;EACH;;EACDnlB,MAAM,CAACnc,GAAP,CAAWu+B,OAAX,EAAoB1Y,KAApB;AACH,CAfD;;AAgBA,MAAM2b,QAAQ,GAAG,CAACC,kBAAD,EAAqBC,OAArB,EAA8B/oB,IAA9B,EAAoCgpB,OAApC,KAAgD;EAC7D,IAAIpD,OAAO,GAAGqD,UAAU,CAACF,OAAD,EAAU/oB,IAAV,CAAxB;EACA,MAAMkN,KAAK,GAAG1J,MAAM,CAAC3f,GAAP,CAAW+hC,OAAX,CAAd,CAF6D,CAG7D;EACA;;EACAkD,kBAAkB,GAAGA,kBAAkB,CAACliB,QAAnB,KAAgC;EAAG;EAAnC,EAAsEkiB,kBAAtE,GAA2FhwB,GAAhH;;EACA,IAAIoU,KAAJ,EAAW;IACP,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC3B4b,kBAAkB,GAAGA,kBAAkB,CAACja,IAAnB,IAA2Bia,kBAAhD;MACA,IAAII,aAAa,GAAGT,iBAAiB,CAAC5kC,GAAlB,CAAsBilC,kBAAtB,CAApB;MACA,IAAIK,QAAJ;;MACA,IAAI,CAACD,aAAL,EAAoB;QAChBT,iBAAiB,CAACphC,GAAlB,CAAsByhC,kBAAtB,EAA2CI,aAAa,GAAG,IAAI5N,GAAJ,EAA3D;MACH;;MACD,IAAI,CAAC4N,aAAa,CAACE,GAAd,CAAkBxD,OAAlB,CAAL,EAAiC;QAC7B,IAAIkD,kBAAkB,CAACO,IAAnB,KACCF,QAAQ,GAAGL,kBAAkB,CAAC3Z,aAAnB,CAAkC,IAAG8Y,iBAAkB,KAAIrC,OAAQ,IAAnE,CADZ,CAAJ,EAC0F;UACtF;UACAuD,QAAQ,CAACG,SAAT,GAAqBpc,KAArB;QACH,CAJD,MAKK;UACD;YACIic,QAAQ,GAAGrwB,GAAG,CAACyW,aAAJ,CAAkB,OAAlB,CAAX;YACA4Z,QAAQ,CAACG,SAAT,GAAqBpc,KAArB;UACH;UACD4b,kBAAkB,CAACS,YAAnB,CAAgCJ,QAAhC,EAA0CL,kBAAkB,CAAC3Z,aAAnB,CAAiC,MAAjC,CAA1C;QACH;;QACD,IAAI+Z,aAAJ,EAAmB;UACfA,aAAa,CAACtjC,GAAd,CAAkBggC,OAAlB;QACH;MACJ;IACJ,CAxBD,MAyBK,IAAI,CAACkD,kBAAkB,CAACU,kBAAnB,CAAsCj0B,QAAtC,CAA+C2X,KAA/C,CAAL,EAA4D;MAC7D4b,kBAAkB,CAACU,kBAAnB,GAAwC,CAAC,GAAGV,kBAAkB,CAACU,kBAAvB,EAA2Ctc,KAA3C,CAAxC;IACH;EACJ;;EACD,OAAO0Y,OAAP;AACH,CArCD;;AAsCA,MAAM6D,YAAY,GAAIxC,OAAD,IAAa;EAC9B,MAAM8B,OAAO,GAAG9B,OAAO,CAACyC,SAAxB;EACA,MAAMxe,GAAG,GAAG+b,OAAO,CAAC0C,aAApB;EACA,MAAMvC,KAAK,GAAG2B,OAAO,CAAC1C,OAAtB;EACA,MAAMuD,eAAe,GAAGvB,UAAU,CAAC,cAAD,EAAiBU,OAAO,CAACc,SAAzB,CAAlC;EACA,MAAMjE,OAAO,GAAGiD,QAAQ,CAAC3d,GAAG,CAACkU,UAAJ,GAAiBlU,GAAG,CAACkU,UAArB,GAAkClU,GAAG,CAAC0D,WAAJ,EAAnC,EAAsDma,OAAtD,EAA+D9B,OAAO,CAAC6C,UAAvE,CAAxB;;EACA,IAAI1C,KAAK,GAAG;EAAG;EAAf,EAAyD;IACrD;IACA;IACA;IACA;IACA;IACA;IACA;IACAlc,GAAG,CAAC,MAAD,CAAH,GAAc0a,OAAd;IACA1a,GAAG,CAAC5lB,SAAJ,CAAcM,GAAd,CAAkBggC,OAAO,GAAG,IAA5B;;IACA,IAAIwB,KAAK,GAAG;IAAE;IAAd,EAAsD;MAClDlc,GAAG,CAAC5lB,SAAJ,CAAcM,GAAd,CAAkBggC,OAAO,GAAG,IAA5B;IACH;EACJ;;EACDgE,eAAe;AAClB,CArBD;;AAsBA,MAAMX,UAAU,GAAG,CAACc,GAAD,EAAM/pB,IAAN,KAAe,SAASA,IAAI,IAAI+pB,GAAG,CAAC1D,OAAJ,GAAc;AAAG;AAAzB,EAAmD0D,GAAG,CAACF,SAAJ,GAAgB,GAAhB,GAAsB7pB,IAAzE,GAAgF+pB,GAAG,CAACF,SAA7F,CAAlC;;AACA,MAAMG,qBAAqB,GAAIC,GAAD,IAASA,GAAG,CAACxuB,OAAJ,CAAY,6BAAZ,EAA2C,KAA3C,CAAvC,EACA;;;AACA,MAAMyuB,WAAW,GAAIhf,GAAD,IAASif,mBAAmB,CAACn5B,GAApB,CAAyBlP,CAAD,IAAOA,CAAC,CAACopB,GAAD,CAAhC,EAAuC9W,IAAvC,CAA6CwuB,CAAD,IAAO,CAAC,CAACA,CAArD,CAA7B,EACA;;;AACA,MAAMwH,OAAO,GAAIn5B,OAAD,IAAak5B,mBAAmB,CAAC1kC,IAApB,CAAyBwL,OAAzB,CAA7B;;AACA,MAAMo5B,OAAO,GAAI52B,GAAD,IAAS62B,UAAU,CAAC72B,GAAD,CAAV,CAAgBq2B,UAAzC;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMS,SAAS,GAAG,EAAlB;AACA;AACA;AACA;;AACA,MAAMC,MAAM,GAAG,4BAAf;AACA,MAAMC,OAAO,GAAG,8BAAhB;;AACA,MAAMC,KAAK,GAAIx4B,CAAD,IAAOA,CAAC,IAAI,IAA1B;;AACA,MAAMy4B,aAAa,GAAIxX,CAAD,IAAO;EACzB;EACAA,CAAC,GAAG,OAAOA,CAAX;EACA,OAAOA,CAAC,KAAK,QAAN,IAAkBA,CAAC,KAAK,UAA/B;AACH,CAJD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMrxB,CAAC,GAAG,CAAC8oC,QAAD,EAAWC,SAAX,EAAsB,GAAGrqB,QAAzB,KAAsC;EAC5C,IAAIsqB,KAAK,GAAG,IAAZ;EACA,IAAI3yB,GAAG,GAAG,IAAV;EACA,IAAI4yB,QAAQ,GAAG,IAAf;EACA,IAAIC,MAAM,GAAG,KAAb;EACA,IAAIC,UAAU,GAAG,KAAjB;EACA,MAAMC,aAAa,GAAG,EAAtB;;EACA,MAAMC,IAAI,GAAIriC,CAAD,IAAO;IAChB,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,CAAC,CAAC7D,MAAtB,EAA8BM,CAAC,EAA/B,EAAmC;MAC/BulC,KAAK,GAAGhiC,CAAC,CAACvD,CAAD,CAAT;;MACA,IAAIiY,KAAK,CAACC,OAAN,CAAcqtB,KAAd,CAAJ,EAA0B;QACtBK,IAAI,CAACL,KAAD,CAAJ;MACH,CAFD,MAGK,IAAIA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,KAAiB,SAAtC,EAAiD;QAClD,IAAKE,MAAM,GAAG,OAAOJ,QAAP,KAAoB,UAApB,IAAkC,CAACD,aAAa,CAACG,KAAD,CAA9D,EAAwE;UACpEA,KAAK,GAAGM,MAAM,CAACN,KAAD,CAAd;QACH;;QACD,IAAIE,MAAM,IAAIC,UAAd,EAA0B;UACtB;UACAC,aAAa,CAACA,aAAa,CAACjmC,MAAd,GAAuB,CAAxB,CAAb,CAAwComC,MAAxC,IAAkDP,KAAlD;QACH,CAHD,MAIK;UACD;UACAI,aAAa,CAACzlC,IAAd,CAAmBulC,MAAM,GAAGM,QAAQ,CAAC,IAAD,EAAOR,KAAP,CAAX,GAA2BA,KAApD;QACH;;QACDG,UAAU,GAAGD,MAAb;MACH;IACJ;EACJ,CArBD;;EAsBAG,IAAI,CAAC3qB,QAAD,CAAJ;;EACA,IAAIqqB,SAAJ,EAAe;IACX;IACA,IAAIA,SAAS,CAAC1yB,GAAd,EAAmB;MACfA,GAAG,GAAG0yB,SAAS,CAAC1yB,GAAhB;IACH;;IACD,IAAI0yB,SAAS,CAAC1sB,IAAd,EAAoB;MAChB4sB,QAAQ,GAAGF,SAAS,CAAC1sB,IAArB;IACH;;IACD;MACI,MAAMotB,SAAS,GAAGV,SAAS,CAACnb,SAAV,IAAuBmb,SAAS,CAACW,KAAnD;;MACA,IAAID,SAAJ,EAAe;QACXV,SAAS,CAACW,KAAV,GACI,OAAOD,SAAP,KAAqB,QAArB,GACMA,SADN,GAEMpkC,MAAM,CAACqjB,IAAP,CAAY+gB,SAAZ,EACGlqC,MADH,CACWqhC,CAAD,IAAO6I,SAAS,CAAC7I,CAAD,CAD1B,EAEGpU,IAFH,CAEQ,GAFR,CAHV;MAMH;IACJ;EACJ;;EACD,IAAI,OAAOsc,QAAP,KAAoB,UAAxB,EAAoC;IAChC;IACA,OAAOA,QAAQ,CAACC,SAAS,KAAK,IAAd,GAAqB,EAArB,GAA0BA,SAA3B,EAAsCK,aAAtC,EAAqDO,WAArD,CAAf;EACH;;EACD,MAAMC,KAAK,GAAGJ,QAAQ,CAACV,QAAD,EAAW,IAAX,CAAtB;EACAc,KAAK,CAACC,OAAN,GAAgBd,SAAhB;;EACA,IAAIK,aAAa,CAACjmC,MAAd,GAAuB,CAA3B,EAA8B;IAC1BymC,KAAK,CAACE,UAAN,GAAmBV,aAAnB;EACH;;EACD;IACIQ,KAAK,CAACG,KAAN,GAAc1zB,GAAd;EACH;EACD;IACIuzB,KAAK,CAACI,MAAN,GAAef,QAAf;EACH;EACD,OAAOW,KAAP;AACH,CAlED;;AAmEA,MAAMJ,QAAQ,GAAG,CAACS,GAAD,EAAMC,IAAN,KAAe;EAC5B,MAAMN,KAAK,GAAG;IACVrF,OAAO,EAAE,CADC;IAEV4F,KAAK,EAAEF,GAFG;IAGVV,MAAM,EAAEW,IAHE;IAIVE,KAAK,EAAE,IAJG;IAKVN,UAAU,EAAE;EALF,CAAd;EAOA;IACIF,KAAK,CAACC,OAAN,GAAgB,IAAhB;EACH;EACD;IACID,KAAK,CAACG,KAAN,GAAc,IAAd;EACH;EACD;IACIH,KAAK,CAACI,MAAN,GAAe,IAAf;EACH;EACD,OAAOJ,KAAP;AACH,CAlBD;;AAmBA,MAAMS,IAAI,GAAG,EAAb;;AACA,MAAMC,MAAM,GAAInmB,IAAD,IAAUA,IAAI,IAAIA,IAAI,CAACgmB,KAAL,KAAeE,IAAhD;;AACA,MAAMV,WAAW,GAAG;EAChBtnC,OAAO,EAAE,CAACqc,QAAD,EAAWmI,EAAX,KAAkBnI,QAAQ,CAACxP,GAAT,CAAaq7B,eAAb,EAA8BloC,OAA9B,CAAsCwkB,EAAtC,CADX;EAEhB3X,GAAG,EAAE,CAACwP,QAAD,EAAWmI,EAAX,KAAkBnI,QAAQ,CAACxP,GAAT,CAAaq7B,eAAb,EAA8Br7B,GAA9B,CAAkC2X,EAAlC,EAAsC3X,GAAtC,CAA0Cs7B,gBAA1C;AAFP,CAApB;;AAIA,MAAMD,eAAe,GAAIpmB,IAAD,KAAW;EAC/BsmB,MAAM,EAAEtmB,IAAI,CAAC0lB,OADkB;EAE/Ba,SAAS,EAAEvmB,IAAI,CAAC2lB,UAFe;EAG/Ba,IAAI,EAAExmB,IAAI,CAAC4lB,KAHoB;EAI/Ba,KAAK,EAAEzmB,IAAI,CAAC6lB,MAJmB;EAK/Ba,IAAI,EAAE1mB,IAAI,CAACgmB,KALoB;EAM/BW,KAAK,EAAE3mB,IAAI,CAAColB;AANmB,CAAX,CAAxB;;AAQA,MAAMiB,gBAAgB,GAAIrmB,IAAD,IAAU;EAC/B,IAAI,OAAOA,IAAI,CAAC0mB,IAAZ,KAAqB,UAAzB,EAAqC;IACjC,MAAM9B,SAAS,GAAG1jC,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB0V,IAAI,CAACsmB,MAAvB,CAAlB;;IACA,IAAItmB,IAAI,CAACwmB,IAAT,EAAe;MACX5B,SAAS,CAAC1yB,GAAV,GAAgB8N,IAAI,CAACwmB,IAArB;IACH;;IACD,IAAIxmB,IAAI,CAACymB,KAAT,EAAgB;MACZ7B,SAAS,CAAC1sB,IAAV,GAAiB8H,IAAI,CAACymB,KAAtB;IACH;;IACD,OAAO5qC,CAAC,CAACmkB,IAAI,CAAC0mB,IAAN,EAAY9B,SAAZ,EAAuB,IAAI5kB,IAAI,CAACumB,SAAL,IAAkB,EAAtB,CAAvB,CAAR;EACH;;EACD,MAAMd,KAAK,GAAGJ,QAAQ,CAACrlB,IAAI,CAAC0mB,IAAN,EAAY1mB,IAAI,CAAC2mB,KAAjB,CAAtB;EACAlB,KAAK,CAACC,OAAN,GAAgB1lB,IAAI,CAACsmB,MAArB;EACAb,KAAK,CAACE,UAAN,GAAmB3lB,IAAI,CAACumB,SAAxB;EACAd,KAAK,CAACG,KAAN,GAAc5lB,IAAI,CAACwmB,IAAnB;EACAf,KAAK,CAACI,MAAN,GAAe7lB,IAAI,CAACymB,KAApB;EACA,OAAOhB,KAAP;AACH,CAjBD;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmB,WAAW,GAAG,CAAC3hB,GAAD,EAAM4hB,UAAN,EAAkBC,QAAlB,EAA4BC,QAA5B,EAAsCC,KAAtC,EAA6C7F,KAA7C,KAAuD;EACvE,IAAI2F,QAAQ,KAAKC,QAAjB,EAA2B;IACvB,IAAIE,MAAM,GAAGC,iBAAiB,CAACjiB,GAAD,EAAM4hB,UAAN,CAA9B;IACA,IAAIM,EAAE,GAAGN,UAAU,CAAC/f,WAAX,EAAT;;IACA,IAAI+f,UAAU,KAAK,OAAnB,EAA4B;MACxB,MAAMxnC,SAAS,GAAG4lB,GAAG,CAAC5lB,SAAtB;MACA,MAAM+nC,UAAU,GAAGC,cAAc,CAACP,QAAD,CAAjC;MACA,MAAMQ,UAAU,GAAGD,cAAc,CAACN,QAAD,CAAjC;MACA1nC,SAAS,CAACK,MAAV,CAAiB,GAAG0nC,UAAU,CAAChsC,MAAX,CAAmByH,CAAD,IAAOA,CAAC,IAAI,CAACykC,UAAU,CAACh4B,QAAX,CAAoBzM,CAApB,CAA/B,CAApB;MACAxD,SAAS,CAACM,GAAV,CAAc,GAAG2nC,UAAU,CAAClsC,MAAX,CAAmByH,CAAD,IAAOA,CAAC,IAAI,CAACukC,UAAU,CAAC93B,QAAX,CAAoBzM,CAApB,CAA/B,CAAjB;IACH,CAND,MAOK,IAAIgkC,UAAU,KAAK,OAAnB,EAA4B;MAC7B;MACA;QACI,KAAK,MAAMU,IAAX,IAAmBT,QAAnB,EAA6B;UACzB,IAAI,CAACC,QAAD,IAAaA,QAAQ,CAACQ,IAAD,CAAR,IAAkB,IAAnC,EAAyC;YACrC,IAAIA,IAAI,CAACj4B,QAAL,CAAc,GAAd,CAAJ,EAAwB;cACpB2V,GAAG,CAACgC,KAAJ,CAAUS,cAAV,CAAyB6f,IAAzB;YACH,CAFD,MAGK;cACDtiB,GAAG,CAACgC,KAAJ,CAAUsgB,IAAV,IAAkB,EAAlB;YACH;UACJ;QACJ;MACJ;;MACD,KAAK,MAAMA,IAAX,IAAmBR,QAAnB,EAA6B;QACzB,IAAI,CAACD,QAAD,IAAaC,QAAQ,CAACQ,IAAD,CAAR,KAAmBT,QAAQ,CAACS,IAAD,CAA5C,EAAoD;UAChD,IAAIA,IAAI,CAACj4B,QAAL,CAAc,GAAd,CAAJ,EAAwB;YACpB2V,GAAG,CAACgC,KAAJ,CAAUO,WAAV,CAAsB+f,IAAtB,EAA4BR,QAAQ,CAACQ,IAAD,CAApC;UACH,CAFD,MAGK;YACDtiB,GAAG,CAACgC,KAAJ,CAAUsgB,IAAV,IAAkBR,QAAQ,CAACQ,IAAD,CAA1B;UACH;QACJ;MACJ;IACJ,CAxBI,MAyBA,IAAIV,UAAU,KAAK,KAAnB,EACD,CADC,KAEA,IAAIA,UAAU,KAAK,KAAnB,EAA0B;MAC3B;MACA,IAAIE,QAAJ,EAAc;QACVA,QAAQ,CAAC9hB,GAAD,CAAR;MACH;IACJ,CALI,MAMA,IAAK,CAACgiB,MAAF,IACLJ,UAAU,CAAC,CAAD,CAAV,KAAkB,GADb,IAELA,UAAU,CAAC,CAAD,CAAV,KAAkB,GAFjB,EAEsB;MACvB;MACA;MACA;MACA;MACA,IAAIA,UAAU,CAAC,CAAD,CAAV,KAAkB,GAAtB,EAA2B;QACvB;QACA;QACA;QACA;QACA;QACA;QACA;QACAA,UAAU,GAAGA,UAAU,CAAC/3B,KAAX,CAAiB,CAAjB,CAAb;MACH,CATD,MAUK,IAAIo4B,iBAAiB,CAAC9zB,GAAD,EAAM+zB,EAAN,CAArB,EAAgC;QACjC;QACA;QACA;QACA;QACAN,UAAU,GAAGM,EAAE,CAACr4B,KAAH,CAAS,CAAT,CAAb;MACH,CANI,MAOA;QACD;QACA;QACA;QACA;QACA;QACA+3B,UAAU,GAAGM,EAAE,CAAC,CAAD,CAAF,GAAQN,UAAU,CAAC/3B,KAAX,CAAiB,CAAjB,CAArB;MACH;;MACD,IAAIg4B,QAAJ,EAAc;QACV3G,GAAG,CAACjb,GAAJ,CAAQD,GAAR,EAAa4hB,UAAb,EAAyBC,QAAzB,EAAmC,KAAnC;MACH;;MACD,IAAIC,QAAJ,EAAc;QACV5G,GAAG,CAACnb,GAAJ,CAAQC,GAAR,EAAa4hB,UAAb,EAAyBE,QAAzB,EAAmC,KAAnC;MACH;IACJ,CAtCI,MAuCA;MACD;MACA,MAAMS,SAAS,GAAG9C,aAAa,CAACqC,QAAD,CAA/B;;MACA,IAAI,CAACE,MAAM,IAAKO,SAAS,IAAIT,QAAQ,KAAK,IAAtC,KAAgD,CAACC,KAArD,EAA4D;QACxD,IAAI;UACA,IAAI,CAAC/hB,GAAG,CAAC/iB,OAAJ,CAAYoN,QAAZ,CAAqB,GAArB,CAAL,EAAgC;YAC5B,MAAMmrB,CAAC,GAAGsM,QAAQ,IAAI,IAAZ,GAAmB,EAAnB,GAAwBA,QAAlC,CAD4B,CAE5B;;YACA,IAAIF,UAAU,KAAK,MAAnB,EAA2B;cACvBI,MAAM,GAAG,KAAT;YACH,CAFD,MAGK,IAAIH,QAAQ,IAAI,IAAZ,IAAoB7hB,GAAG,CAAC4hB,UAAD,CAAH,IAAmBpM,CAA3C,EAA8C;cAC/CxV,GAAG,CAAC4hB,UAAD,CAAH,GAAkBpM,CAAlB;YACH;UACJ,CATD,MAUK;YACDxV,GAAG,CAAC4hB,UAAD,CAAH,GAAkBE,QAAlB;UACH;QACJ,CAdD,CAeA,OAAOrnB,CAAP,EAAU,CAAG;MAChB;MACD;AACZ;AACA;AACA;AACA;AACA;AACA;;;MACY,IAAI+nB,KAAK,GAAG,KAAZ;MACA;QACI,IAAIN,EAAE,MAAMA,EAAE,GAAGA,EAAE,CAAC3xB,OAAH,CAAW,WAAX,EAAwB,EAAxB,CAAX,CAAN,EAA+C;UAC3CqxB,UAAU,GAAGM,EAAb;UACAM,KAAK,GAAG,IAAR;QACH;MACJ;;MACD,IAAIV,QAAQ,IAAI,IAAZ,IAAoBA,QAAQ,KAAK,KAArC,EAA4C;QACxC,IAAIA,QAAQ,KAAK,KAAb,IAAsB9hB,GAAG,CAAC2T,YAAJ,CAAiBiO,UAAjB,MAAiC,EAA3D,EAA+D;UAC3D,IAAIY,KAAJ,EAAW;YACPxiB,GAAG,CAACyiB,iBAAJ,CAAsBvF,QAAtB,EAAgC0E,UAAhC;UACH,CAFD,MAGK;YACD5hB,GAAG,CAAC4T,eAAJ,CAAoBgO,UAApB;UACH;QACJ;MACJ,CATD,MAUK,IAAI,CAAC,CAACI,MAAD,IAAW9F,KAAK,GAAG;MAAE;MAArB,GAAiD6F,KAAlD,KAA4D,CAACQ,SAAjE,EAA4E;QAC7ET,QAAQ,GAAGA,QAAQ,KAAK,IAAb,GAAoB,EAApB,GAAyBA,QAApC;;QACA,IAAIU,KAAJ,EAAW;UACPxiB,GAAG,CAAC0iB,cAAJ,CAAmBxF,QAAnB,EAA6B0E,UAA7B,EAAyCE,QAAzC;QACH,CAFD,MAGK;UACD9hB,GAAG,CAACjT,YAAJ,CAAiB60B,UAAjB,EAA6BE,QAA7B;QACH;MACJ;IACJ;EACJ;AACJ,CA3ID;;AA4IA,MAAMa,mBAAmB,GAAG,IAA5B;;AACA,MAAMP,cAAc,GAAI1qC,KAAD,IAAY,CAACA,KAAD,GAAS,EAAT,GAAcA,KAAK,CAACyQ,KAAN,CAAYw6B,mBAAZ,CAAjD;;AACA,MAAMC,aAAa,GAAG,CAACC,QAAD,EAAWC,QAAX,EAAqB9H,SAArB,EAAgC4G,UAAhC,KAA+C;EACjE;EACA;EACA;EACA,MAAM5hB,GAAG,GAAG8iB,QAAQ,CAAC9B,KAAT,CAAetlB,QAAf,KAA4B;EAAG;EAA/B,GAAmEonB,QAAQ,CAAC9B,KAAT,CAAe7C,IAAlF,GACN2E,QAAQ,CAAC9B,KAAT,CAAe7C,IADT,GAEN2E,QAAQ,CAAC9B,KAFf;EAGA,MAAM+B,aAAa,GAAIF,QAAQ,IAAIA,QAAQ,CAACpC,OAAtB,IAAkCpB,SAAxD;EACA,MAAM2D,aAAa,GAAGF,QAAQ,CAACrC,OAAT,IAAoBpB,SAA1C;EACA;IACI;IACA,KAAKuC,UAAL,IAAmBmB,aAAnB,EAAkC;MAC9B,IAAI,EAAEnB,UAAU,IAAIoB,aAAhB,CAAJ,EAAoC;QAChCrB,WAAW,CAAC3hB,GAAD,EAAM4hB,UAAN,EAAkBmB,aAAa,CAACnB,UAAD,CAA/B,EAA6CzkC,SAA7C,EAAwD69B,SAAxD,EAAmE8H,QAAQ,CAAC3H,OAA5E,CAAX;MACH;IACJ;EACJ,CAhBgE,CAiBjE;;EACA,KAAKyG,UAAL,IAAmBoB,aAAnB,EAAkC;IAC9BrB,WAAW,CAAC3hB,GAAD,EAAM4hB,UAAN,EAAkBmB,aAAa,CAACnB,UAAD,CAA/B,EAA6CoB,aAAa,CAACpB,UAAD,CAA1D,EAAwE5G,SAAxE,EAAmF8H,QAAQ,CAAC3H,OAA5F,CAAX;EACH;AACJ,CArBD;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8H,SAAS,GAAG,CAACC,cAAD,EAAiBC,cAAjB,EAAiCC,UAAjC,EAA6CC,SAA7C,KAA2D;EACzE;EACA,MAAMjD,QAAQ,GAAG+C,cAAc,CAACzC,UAAf,CAA0B0C,UAA1B,CAAjB;EACA,IAAI/oC,CAAC,GAAG,CAAR;EACA,IAAI2lB,GAAJ;EACA,IAAIsjB,SAAJ;EACA,IAAIC,QAAJ;;EACA,IAAI,CAAC1I,kBAAL,EAAyB;IACrB;IACAE,iBAAiB,GAAG,IAApB;;IACA,IAAIqF,QAAQ,CAACW,KAAT,KAAmB,MAAvB,EAA+B;MAC3B,IAAIrG,OAAJ,EAAa;QACT;QACA2I,SAAS,CAACjpC,SAAV,CAAoBM,GAApB,CAAwBggC,OAAO,GAAG,IAAlC;MACH;;MACD0F,QAAQ,CAACjF,OAAT,IAAoBiF,QAAQ,CAACM,UAAT,GACd;MACE;MAAE;MAFU,EAGd;MACE;MAAE;MAJV;IAKH;EACJ;;EACD,IAAIN,QAAQ,CAACD,MAAT,KAAoB,IAAxB,EAA8B;IAC1B;IACAngB,GAAG,GAAGogB,QAAQ,CAACY,KAAT,GAAiBpzB,GAAG,CAAC41B,cAAJ,CAAmBpD,QAAQ,CAACD,MAA5B,CAAvB;EACH,CAHD,MAIK,IAAIC,QAAQ,CAACjF,OAAT,GAAmB;EAAE;EAAzB,EAA4D;IAC7D;IACAnb,GAAG,GAAGogB,QAAQ,CAACY,KAAT,GACFpzB,GAAG,CAAC41B,cAAJ,CAAmB,EAAnB,CADJ;EAEH,CAJI,MAKA;IACD,IAAI,CAACxI,SAAL,EAAgB;MACZA,SAAS,GAAGoF,QAAQ,CAACW,KAAT,KAAmB,KAA/B;IACH,CAHA,CAID;;;IACA/gB,GAAG,GAAGogB,QAAQ,CAACY,KAAT,GAAkBpzB,GAAG,CAAC61B,eAAJ,CAAoBzI,SAAS,GAAGsE,MAAH,GAAYC,OAAzC,EAAkDa,QAAQ,CAACjF,OAAT,GAAmB;IAAE;IAArB,EAChE,SADgE,GAEhEiF,QAAQ,CAACW,KAFK,CAAxB;;IAIA,IAAI/F,SAAS,IAAIoF,QAAQ,CAACW,KAAT,KAAmB,eAApC,EAAqD;MACjD/F,SAAS,GAAG,KAAZ;IACH,CAXA,CAYD;;;IACA;MACI4H,aAAa,CAAC,IAAD,EAAOxC,QAAP,EAAiBpF,SAAjB,CAAb;IACH;;IACD,IAAIwE,KAAK,CAAC9E,OAAD,CAAL,IAAkB1a,GAAG,CAAC,MAAD,CAAH,KAAgB0a,OAAtC,EAA+C;MAC3C;MACA;MACA1a,GAAG,CAAC5lB,SAAJ,CAAcM,GAAd,CAAmBslB,GAAG,CAAC,MAAD,CAAH,GAAc0a,OAAjC;IACH;;IACD,IAAI0F,QAAQ,CAACM,UAAb,EAAyB;MACrB,KAAKrmC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG+lC,QAAQ,CAACM,UAAT,CAAoB3mC,MAApC,EAA4C,EAAEM,CAA9C,EAAiD;QAC7C;QACAipC,SAAS,GAAGL,SAAS,CAACC,cAAD,EAAiB9C,QAAjB,EAA2B/lC,CAA3B,EAA8B2lB,GAA9B,CAArB,CAF6C,CAG7C;;QACA,IAAIsjB,SAAJ,EAAe;UACX;UACAtjB,GAAG,CAACxa,WAAJ,CAAgB89B,SAAhB;QACH;MACJ;IACJ;;IACD;MACI,IAAIlD,QAAQ,CAACW,KAAT,KAAmB,KAAvB,EAA8B;QAC1B;QACA/F,SAAS,GAAG,KAAZ;MACH,CAHD,MAIK,IAAIhb,GAAG,CAAC/iB,OAAJ,KAAgB,eAApB,EAAqC;QACtC;QACA+9B,SAAS,GAAG,IAAZ;MACH;IACJ;EACJ;;EACD;IACIhb,GAAG,CAAC,MAAD,CAAH,GAAc4a,WAAd;;IACA,IAAIwF,QAAQ,CAACjF,OAAT,IAAoB;IAAE;IAAF,EAAqC;IAAE;IAA3D,CAAJ,EAAmG;MAC/F;MACAnb,GAAG,CAAC,MAAD,CAAH,GAAc,IAAd,CAF+F,CAG/F;;MACAA,GAAG,CAAC,MAAD,CAAH,GAAc2a,UAAd,CAJ+F,CAK/F;;MACA3a,GAAG,CAAC,MAAD,CAAH,GAAcogB,QAAQ,CAACQ,MAAT,IAAmB,EAAjC,CAN+F,CAO/F;;MACA2C,QAAQ,GAAGL,cAAc,IAAIA,cAAc,CAACxC,UAAjC,IAA+CwC,cAAc,CAACxC,UAAf,CAA0B0C,UAA1B,CAA1D;;MACA,IAAIG,QAAQ,IAAIA,QAAQ,CAACxC,KAAT,KAAmBX,QAAQ,CAACW,KAAxC,IAAiDmC,cAAc,CAAClC,KAApE,EAA2E;QACvE;QACA;QACA0C,yBAAyB,CAACR,cAAc,CAAClC,KAAhB,EAAuB,KAAvB,CAAzB;MACH;IACJ;EACJ;EACD,OAAOhhB,GAAP;AACH,CA7FD;;AA8FA,MAAM0jB,yBAAyB,GAAG,CAACL,SAAD,EAAYM,SAAZ,KAA0B;EACxDzI,GAAG,CAACC,OAAJ,IAAe;EAAE;EAAjB;EACA,MAAMyI,iBAAiB,GAAGP,SAAS,CAACQ,UAApC;;EACA,KAAK,IAAIxpC,CAAC,GAAGupC,iBAAiB,CAAC7pC,MAAlB,GAA2B,CAAxC,EAA2CM,CAAC,IAAI,CAAhD,EAAmDA,CAAC,EAApD,EAAwD;IACpD,MAAMipC,SAAS,GAAGM,iBAAiB,CAACvpC,CAAD,CAAnC;;IACA,IAAIipC,SAAS,CAAC,MAAD,CAAT,KAAsB1I,WAAtB,IAAqC0I,SAAS,CAAC,MAAD,CAAlD,EAA4D;MACxD;MACA;MACA;MACA;MACAQ,mBAAmB,CAACR,SAAD,CAAnB,CAA+BjF,YAA/B,CAA4CiF,SAA5C,EAAuDS,aAAa,CAACT,SAAD,CAApE,EALwD,CAMxD;MACA;MACA;;MACAA,SAAS,CAAC,MAAD,CAAT,CAAkB7oC,MAAlB;MACA6oC,SAAS,CAAC,MAAD,CAAT,GAAoBnmC,SAApB;MACA49B,iBAAiB,GAAG,IAApB;IACH;;IACD,IAAI4I,SAAJ,EAAe;MACXD,yBAAyB,CAACJ,SAAD,EAAYK,SAAZ,CAAzB;IACH;EACJ;;EACDzI,GAAG,CAACC,OAAJ,IAAe,CAAC;EAAE;EAAlB;AACH,CAvBD;;AAwBA,MAAM6I,SAAS,GAAG,CAACX,SAAD,EAAYY,MAAZ,EAAoBC,WAApB,EAAiCC,MAAjC,EAAyCC,QAAzC,EAAmDC,MAAnD,KAA8D;EAC5E,IAAIC,YAAY,GAAKjB,SAAS,CAAC,MAAD,CAAT,IAAqBA,SAAS,CAAC,MAAD,CAAT,CAAkBjb,UAAxC,IAAuDib,SAA3E;EACA,IAAIC,SAAJ;;EACA,IAAIgB,YAAY,CAACpQ,UAAb,IAA2BoQ,YAAY,CAACrnC,OAAb,KAAyB29B,WAAxD,EAAqE;IACjE0J,YAAY,GAAGA,YAAY,CAACpQ,UAA5B;EACH;;EACD,OAAOkQ,QAAQ,IAAIC,MAAnB,EAA2B,EAAED,QAA7B,EAAuC;IACnC,IAAID,MAAM,CAACC,QAAD,CAAV,EAAsB;MAClBd,SAAS,GAAGL,SAAS,CAAC,IAAD,EAAOiB,WAAP,EAAoBE,QAApB,EAA8Bf,SAA9B,CAArB;;MACA,IAAIC,SAAJ,EAAe;QACXa,MAAM,CAACC,QAAD,CAAN,CAAiBpD,KAAjB,GAAyBsC,SAAzB;QACAgB,YAAY,CAACjG,YAAb,CAA0BiF,SAA1B,EAAqCS,aAAa,CAACE,MAAD,CAAlD;MACH;IACJ;EACJ;AACJ,CAfD;;AAgBA,MAAMM,YAAY,GAAG,CAACJ,MAAD,EAASC,QAAT,EAAmBC,MAAnB,EAA2B7D,KAA3B,EAAkCxgB,GAAlC,KAA0C;EAC3D,OAAOokB,QAAQ,IAAIC,MAAnB,EAA2B,EAAED,QAA7B,EAAuC;IACnC,IAAK5D,KAAK,GAAG2D,MAAM,CAACC,QAAD,CAAnB,EAAgC;MAC5BpkB,GAAG,GAAGwgB,KAAK,CAACQ,KAAZ;MACAwD,YAAY,CAAChE,KAAD,CAAZ;MACA;QACI;QACA;QACA1F,2BAA2B,GAAG,IAA9B;;QACA,IAAI9a,GAAG,CAAC,MAAD,CAAP,EAAiB;UACb;UACAA,GAAG,CAAC,MAAD,CAAH,CAAYvlB,MAAZ;QACH,CAHD,MAIK;UACD;UACA;UACAipC,yBAAyB,CAAC1jB,GAAD,EAAM,IAAN,CAAzB;QACH;MACJ,CAhB2B,CAiB5B;;MACAA,GAAG,CAACvlB,MAAJ;IACH;EACJ;AACJ,CAvBD;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgqC,cAAc,GAAG,CAACpB,SAAD,EAAYqB,KAAZ,EAAmBtE,QAAnB,EAA6BuE,KAA7B,KAAuC;EAC1D,IAAIC,WAAW,GAAG,CAAlB;EACA,IAAIC,WAAW,GAAG,CAAlB;EACA,IAAIC,QAAQ,GAAG,CAAf;EACA,IAAIzqC,CAAC,GAAG,CAAR;EACA,IAAI0qC,SAAS,GAAGL,KAAK,CAAC3qC,MAAN,GAAe,CAA/B;EACA,IAAIirC,aAAa,GAAGN,KAAK,CAAC,CAAD,CAAzB;EACA,IAAIO,WAAW,GAAGP,KAAK,CAACK,SAAD,CAAvB;EACA,IAAIG,SAAS,GAAGP,KAAK,CAAC5qC,MAAN,GAAe,CAA/B;EACA,IAAIorC,aAAa,GAAGR,KAAK,CAAC,CAAD,CAAzB;EACA,IAAIS,WAAW,GAAGT,KAAK,CAACO,SAAD,CAAvB;EACA,IAAInqB,IAAJ;EACA,IAAIsqB,SAAJ;;EACA,OAAOT,WAAW,IAAIG,SAAf,IAA4BF,WAAW,IAAIK,SAAlD,EAA6D;IACzD,IAAIF,aAAa,IAAI,IAArB,EAA2B;MACvB;MACAA,aAAa,GAAGN,KAAK,CAAC,EAAEE,WAAH,CAArB;IACH,CAHD,MAIK,IAAIK,WAAW,IAAI,IAAnB,EAAyB;MAC1BA,WAAW,GAAGP,KAAK,CAAC,EAAEK,SAAH,CAAnB;IACH,CAFI,MAGA,IAAII,aAAa,IAAI,IAArB,EAA2B;MAC5BA,aAAa,GAAGR,KAAK,CAAC,EAAEE,WAAH,CAArB;IACH,CAFI,MAGA,IAAIO,WAAW,IAAI,IAAnB,EAAyB;MAC1BA,WAAW,GAAGT,KAAK,CAAC,EAAEO,SAAH,CAAnB;IACH,CAFI,MAGA,IAAII,WAAW,CAACN,aAAD,EAAgBG,aAAhB,CAAf,EAA+C;MAChD;MACA;MACA;MACA;MACAI,KAAK,CAACP,aAAD,EAAgBG,aAAhB,CAAL;MACAH,aAAa,GAAGN,KAAK,CAAC,EAAEE,WAAH,CAArB;MACAO,aAAa,GAAGR,KAAK,CAAC,EAAEE,WAAH,CAArB;IACH,CARI,MASA,IAAIS,WAAW,CAACL,WAAD,EAAcG,WAAd,CAAf,EAA2C;MAC5C;MACA;MACA;MACAG,KAAK,CAACN,WAAD,EAAcG,WAAd,CAAL;MACAH,WAAW,GAAGP,KAAK,CAAC,EAAEK,SAAH,CAAnB;MACAK,WAAW,GAAGT,KAAK,CAAC,EAAEO,SAAH,CAAnB;IACH,CAPI,MAQA,IAAII,WAAW,CAACN,aAAD,EAAgBI,WAAhB,CAAf,EAA6C;MAC9C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAKJ,aAAa,CAACjE,KAAd,KAAwB,MAAxB,IAAkCqE,WAAW,CAACrE,KAAZ,KAAsB,MAA7D,EAAsE;QAClE2C,yBAAyB,CAACsB,aAAa,CAAChE,KAAd,CAAoB5Y,UAArB,EAAiC,KAAjC,CAAzB;MACH;;MACDmd,KAAK,CAACP,aAAD,EAAgBI,WAAhB,CAAL,CAlB8C,CAmB9C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MACA/B,SAAS,CAAChF,YAAV,CAAuB2G,aAAa,CAAChE,KAArC,EAA4CiE,WAAW,CAACjE,KAAZ,CAAkBwE,WAA9D;MACAR,aAAa,GAAGN,KAAK,CAAC,EAAEE,WAAH,CAArB;MACAQ,WAAW,GAAGT,KAAK,CAAC,EAAEO,SAAH,CAAnB;IACH,CAvCI,MAwCA,IAAII,WAAW,CAACL,WAAD,EAAcE,aAAd,CAAf,EAA6C;MAC9C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAKH,aAAa,CAACjE,KAAd,KAAwB,MAAxB,IAAkCqE,WAAW,CAACrE,KAAZ,KAAsB,MAA7D,EAAsE;QAClE2C,yBAAyB,CAACuB,WAAW,CAACjE,KAAZ,CAAkB5Y,UAAnB,EAA+B,KAA/B,CAAzB;MACH;;MACDmd,KAAK,CAACN,WAAD,EAAcE,aAAd,CAAL,CAnB8C,CAoB9C;MACA;MACA;MACA;MACA;;MACA9B,SAAS,CAAChF,YAAV,CAAuB4G,WAAW,CAACjE,KAAnC,EAA0CgE,aAAa,CAAChE,KAAxD;MACAiE,WAAW,GAAGP,KAAK,CAAC,EAAEK,SAAH,CAAnB;MACAI,aAAa,GAAGR,KAAK,CAAC,EAAEE,WAAH,CAArB;IACH,CA5BI,MA6BA;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAC,QAAQ,GAAG,CAAC,CAAZ;MACA;QACI,KAAKzqC,CAAC,GAAGuqC,WAAT,EAAsBvqC,CAAC,IAAI0qC,SAA3B,EAAsC,EAAE1qC,CAAxC,EAA2C;UACvC,IAAIqqC,KAAK,CAACrqC,CAAD,CAAL,IAAYqqC,KAAK,CAACrqC,CAAD,CAAL,CAASsmC,KAAT,KAAmB,IAA/B,IAAuC+D,KAAK,CAACrqC,CAAD,CAAL,CAASsmC,KAAT,KAAmBwE,aAAa,CAACxE,KAA5E,EAAmF;YAC/EmE,QAAQ,GAAGzqC,CAAX;YACA;UACH;QACJ;MACJ;;MACD,IAAIyqC,QAAQ,IAAI,CAAhB,EAAmB;QACf;QACA;QACAO,SAAS,GAAGX,KAAK,CAACI,QAAD,CAAjB;;QACA,IAAIO,SAAS,CAACtE,KAAV,KAAoBoE,aAAa,CAACpE,KAAtC,EAA6C;UACzC;UACAhmB,IAAI,GAAGkoB,SAAS,CAACyB,KAAK,IAAIA,KAAK,CAACG,WAAD,CAAf,EAA8BzE,QAA9B,EAAwC0E,QAAxC,EAAkDzB,SAAlD,CAAhB;QACH,CAHD,MAIK;UACDkC,KAAK,CAACF,SAAD,EAAYF,aAAZ,CAAL,CADC,CAED;UACA;;UACAT,KAAK,CAACI,QAAD,CAAL,GAAkB3nC,SAAlB;UACA4d,IAAI,GAAGsqB,SAAS,CAACrE,KAAjB;QACH;;QACDmE,aAAa,GAAGR,KAAK,CAAC,EAAEE,WAAH,CAArB;MACH,CAhBD,MAiBK;QACD;QACA;QACA;QACA;QACA9pB,IAAI,GAAGkoB,SAAS,CAACyB,KAAK,IAAIA,KAAK,CAACG,WAAD,CAAf,EAA8BzE,QAA9B,EAAwCyE,WAAxC,EAAqDxB,SAArD,CAAhB;QACA8B,aAAa,GAAGR,KAAK,CAAC,EAAEE,WAAH,CAArB;MACH;;MACD,IAAI9pB,IAAJ,EAAU;QACN;QACA;UACI+oB,mBAAmB,CAACkB,aAAa,CAAChE,KAAf,CAAnB,CAAyC3C,YAAzC,CAAsDtjB,IAAtD,EAA4DgpB,aAAa,CAACiB,aAAa,CAAChE,KAAf,CAAzE;QACH;MACJ;IACJ;EACJ;;EACD,IAAI4D,WAAW,GAAGG,SAAlB,EAA6B;IACzB;IACAf,SAAS,CAACX,SAAD,EAAYsB,KAAK,CAACO,SAAS,GAAG,CAAb,CAAL,IAAwB,IAAxB,GAA+B,IAA/B,GAAsCP,KAAK,CAACO,SAAS,GAAG,CAAb,CAAL,CAAqBlE,KAAvE,EAA8EZ,QAA9E,EAAwFuE,KAAxF,EAA+FE,WAA/F,EAA4GK,SAA5G,CAAT;EACH,CAHD,MAIK,IAAIL,WAAW,GAAGK,SAAlB,EAA6B;IAC9B;IACA;IACA;IACAX,YAAY,CAACG,KAAD,EAAQE,WAAR,EAAqBG,SAArB,CAAZ;EACH;AACJ,CA9KD;AA+KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMO,WAAW,GAAG,CAACG,SAAD,EAAYC,UAAZ,KAA2B;EAC3C;EACA;EACA,IAAID,SAAS,CAAC1E,KAAV,KAAoB2E,UAAU,CAAC3E,KAAnC,EAA0C;IACtC,IAAI0E,SAAS,CAAC1E,KAAV,KAAoB,MAAxB,EAAgC;MAC5B,OAAO0E,SAAS,CAAC7E,MAAV,KAAqB8E,UAAU,CAAC9E,MAAvC;IACH,CAHqC,CAItC;;;IACA;MACI,OAAO6E,SAAS,CAAC9E,KAAV,KAAoB+E,UAAU,CAAC/E,KAAtC;IACH;EACJ;;EACD,OAAO,KAAP;AACH,CAbD;;AAcA,MAAMoD,aAAa,GAAIhpB,IAAD,IAAU;EAC5B;EACA;EACA;EACA;EACA,OAAQA,IAAI,IAAIA,IAAI,CAAC,MAAD,CAAb,IAA0BA,IAAjC;AACH,CAND;;AAOA,MAAM+oB,mBAAmB,GAAI/oB,IAAD,IAAU,CAACA,IAAI,CAAC,MAAD,CAAJ,GAAeA,IAAI,CAAC,MAAD,CAAnB,GAA8BA,IAA/B,EAAqCqN,UAA3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmd,KAAK,GAAG,CAAChC,QAAD,EAAWnD,QAAX,KAAwB;EAClC,MAAMpgB,GAAG,GAAIogB,QAAQ,CAACY,KAAT,GAAiBuC,QAAQ,CAACvC,KAAvC;EACA,MAAM2E,WAAW,GAAGpC,QAAQ,CAAC7C,UAA7B;EACA,MAAMkF,WAAW,GAAGxF,QAAQ,CAACM,UAA7B;EACA,MAAMG,GAAG,GAAGT,QAAQ,CAACW,KAArB;EACA,MAAMD,IAAI,GAAGV,QAAQ,CAACD,MAAtB;EACA,IAAI0F,aAAJ;;EACA,IAAI/E,IAAI,KAAK,IAAb,EAAmB;IACf;MACI;MACA;MACA9F,SAAS,GAAG6F,GAAG,KAAK,KAAR,GAAgB,IAAhB,GAAuBA,GAAG,KAAK,eAAR,GAA0B,KAA1B,GAAkC7F,SAArE;IACH;IACD;MACI,IAAI6F,GAAG,KAAK,MAAZ,EACI,CADJ,KAEK;QACD;QACA;QACA;QACA+B,aAAa,CAACW,QAAD,EAAWnD,QAAX,EAAqBpF,SAArB,CAAb;MACH;IACJ;;IACD,IAAI2K,WAAW,KAAK,IAAhB,IAAwBC,WAAW,KAAK,IAA5C,EAAkD;MAC9C;MACA;MACAnB,cAAc,CAACzkB,GAAD,EAAM2lB,WAAN,EAAmBvF,QAAnB,EAA6BwF,WAA7B,CAAd;IACH,CAJD,MAKK,IAAIA,WAAW,KAAK,IAApB,EAA0B;MAC3B;MACA,IAAIrC,QAAQ,CAACpD,MAAT,KAAoB,IAAxB,EAA8B;QAC1B;QACAngB,GAAG,CAACsE,WAAJ,GAAkB,EAAlB;MACH,CAL0B,CAM3B;;;MACA0f,SAAS,CAAChkB,GAAD,EAAM,IAAN,EAAYogB,QAAZ,EAAsBwF,WAAtB,EAAmC,CAAnC,EAAsCA,WAAW,CAAC7rC,MAAZ,GAAqB,CAA3D,CAAT;IACH,CARI,MASA,IAAI4rC,WAAW,KAAK,IAApB,EAA0B;MAC3B;MACApB,YAAY,CAACoB,WAAD,EAAc,CAAd,EAAiBA,WAAW,CAAC5rC,MAAZ,GAAqB,CAAtC,CAAZ;IACH;;IACD,IAAIihC,SAAS,IAAI6F,GAAG,KAAK,KAAzB,EAAgC;MAC5B7F,SAAS,GAAG,KAAZ;IACH;EACJ,CArCD,MAsCK,IAAK6K,aAAa,GAAG7lB,GAAG,CAAC,MAAD,CAAxB,EAAmC;IACpC;IACA6lB,aAAa,CAACzd,UAAd,CAAyB9D,WAAzB,GAAuCwc,IAAvC;EACH,CAHI,MAIA,IAAIyC,QAAQ,CAACpD,MAAT,KAAoBW,IAAxB,EAA8B;IAC/B;IACA;IACA9gB,GAAG,CAAChd,IAAJ,GAAW89B,IAAX;EACH;AACJ,CAtDD;;AAuDA,MAAMgF,4BAA4B,GAAI9lB,GAAD,IAAS;EAC1C;EACA,MAAM6jB,UAAU,GAAG7jB,GAAG,CAAC6jB,UAAvB;EACA,IAAIP,SAAJ;EACA,IAAIjpC,CAAJ;EACA,IAAI0rC,IAAJ;EACA,IAAIxO,CAAJ;EACA,IAAIyO,YAAJ;EACA,IAAItqB,QAAJ;;EACA,KAAKrhB,CAAC,GAAG,CAAJ,EAAO0rC,IAAI,GAAGlC,UAAU,CAAC9pC,MAA9B,EAAsCM,CAAC,GAAG0rC,IAA1C,EAAgD1rC,CAAC,EAAjD,EAAqD;IACjDipC,SAAS,GAAGO,UAAU,CAACxpC,CAAD,CAAtB;;IACA,IAAIipC,SAAS,CAAC5nB,QAAV,KAAuB;IAAE;IAA7B,EAA0D;MACtD,IAAI4nB,SAAS,CAAC,MAAD,CAAb,EAAuB;QACnB;QACA;QACA0C,YAAY,GAAG1C,SAAS,CAAC,MAAD,CAAxB,CAHmB,CAInB;QACA;;QACAA,SAAS,CAAC2C,MAAV,GAAmB,KAAnB;;QACA,KAAK1O,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwO,IAAhB,EAAsBxO,CAAC,EAAvB,EAA2B;UACvB7b,QAAQ,GAAGmoB,UAAU,CAACtM,CAAD,CAAV,CAAc7b,QAAzB;;UACA,IAAImoB,UAAU,CAACtM,CAAD,CAAV,CAAc,MAAd,MAA0B+L,SAAS,CAAC,MAAD,CAAnC,IAA+C0C,YAAY,KAAK,EAApE,EAAwE;YACpE;YACA,IAAItqB,QAAQ,KAAK;YAAE;YAAf,GAA8CsqB,YAAY,KAAKnC,UAAU,CAACtM,CAAD,CAAV,CAAc5D,YAAd,CAA2B,MAA3B,CAAnE,EAAuG;cACnG2P,SAAS,CAAC2C,MAAV,GAAmB,IAAnB;cACA;YACH;UACJ,CAND,MAOK;YACD;YACA;YACA;YACA,IAAIvqB,QAAQ,KAAK;YAAE;YAAf,GACCA,QAAQ,KAAK;YAAE;YAAf,GAA2CmoB,UAAU,CAACtM,CAAD,CAAV,CAAcjT,WAAd,CAA0Bjc,IAA1B,OAAqC,EADrF,EAC0F;cACtFi7B,SAAS,CAAC2C,MAAV,GAAmB,IAAnB;cACA;YACH;UACJ;QACJ;MACJ,CA5BqD,CA6BtD;;;MACAH,4BAA4B,CAACxC,SAAD,CAA5B;IACH;EACJ;AACJ,CA5CD;;AA6CA,MAAM4C,aAAa,GAAG,EAAtB;;AACA,MAAMC,mBAAmB,GAAInmB,GAAD,IAAS;EACjC;EACA,IAAIsjB,SAAJ;EACA,IAAIvoB,IAAJ;EACA,IAAIqrB,gBAAJ;EACA,IAAIJ,YAAJ;EACA,IAAIK,gBAAJ;EACA,IAAI9O,CAAJ;EACA,IAAIl9B,CAAC,GAAG,CAAR;EACA,MAAMwpC,UAAU,GAAG7jB,GAAG,CAAC6jB,UAAvB;EACA,MAAMkC,IAAI,GAAGlC,UAAU,CAAC9pC,MAAxB;;EACA,OAAOM,CAAC,GAAG0rC,IAAX,EAAiB1rC,CAAC,EAAlB,EAAsB;IAClBipC,SAAS,GAAGO,UAAU,CAACxpC,CAAD,CAAtB;;IACA,IAAIipC,SAAS,CAAC,MAAD,CAAT,KAAsBvoB,IAAI,GAAGuoB,SAAS,CAAC,MAAD,CAAtC,KAAmDvoB,IAAI,CAACqN,UAA5D,EAAwE;MACpE;MACA;MACAge,gBAAgB,GAAGrrB,IAAI,CAACqN,UAAL,CAAgByb,UAAnC;MACAmC,YAAY,GAAG1C,SAAS,CAAC,MAAD,CAAxB;;MACA,KAAK/L,CAAC,GAAG6O,gBAAgB,CAACrsC,MAAjB,GAA0B,CAAnC,EAAsCw9B,CAAC,IAAI,CAA3C,EAA8CA,CAAC,EAA/C,EAAmD;QAC/Cxc,IAAI,GAAGqrB,gBAAgB,CAAC7O,CAAD,CAAvB;;QACA,IAAI,CAACxc,IAAI,CAAC,MAAD,CAAL,IAAiB,CAACA,IAAI,CAAC,MAAD,CAAtB,IAAkCA,IAAI,CAAC,MAAD,CAAJ,KAAiBuoB,SAAS,CAAC,MAAD,CAAhE,EAA0E;UACtE;UACA;UACA;UACA,IAAIgD,mBAAmB,CAACvrB,IAAD,EAAOirB,YAAP,CAAvB,EAA6C;YACzC;YACAK,gBAAgB,GAAGH,aAAa,CAACh9B,IAAd,CAAoBrL,CAAD,IAAOA,CAAC,CAAC0oC,gBAAF,KAAuBxrB,IAAjD,CAAnB,CAFyC,CAGzC;YACA;YACA;;YACA+f,2BAA2B,GAAG,IAA9B;YACA/f,IAAI,CAAC,MAAD,CAAJ,GAAeA,IAAI,CAAC,MAAD,CAAJ,IAAgBirB,YAA/B;;YACA,IAAIK,gBAAJ,EAAsB;cAClB;cACA;cACAA,gBAAgB,CAACG,aAAjB,GAAiClD,SAAjC;YACH,CAJD,MAKK;cACD;cACA4C,aAAa,CAAC3rC,IAAd,CAAmB;gBACfisC,aAAa,EAAElD,SADA;gBAEfiD,gBAAgB,EAAExrB;cAFH,CAAnB;YAIH;;YACD,IAAIA,IAAI,CAAC,MAAD,CAAR,EAAkB;cACdmrB,aAAa,CAACpgC,GAAd,CAAmB2gC,YAAD,IAAkB;gBAChC,IAAIH,mBAAmB,CAACG,YAAY,CAACF,gBAAd,EAAgCxrB,IAAI,CAAC,MAAD,CAApC,CAAvB,EAAsE;kBAClEsrB,gBAAgB,GAAGH,aAAa,CAACh9B,IAAd,CAAoBrL,CAAD,IAAOA,CAAC,CAAC0oC,gBAAF,KAAuBxrB,IAAjD,CAAnB;;kBACA,IAAIsrB,gBAAgB,IAAI,CAACI,YAAY,CAACD,aAAtC,EAAqD;oBACjDC,YAAY,CAACD,aAAb,GAA6BH,gBAAgB,CAACG,aAA9C;kBACH;gBACJ;cACJ,CAPD;YAQH;UACJ,CA9BD,MA+BK,IAAI,CAACN,aAAa,CAAC9L,IAAd,CAAoBv8B,CAAD,IAAOA,CAAC,CAAC0oC,gBAAF,KAAuBxrB,IAAjD,CAAL,EAA6D;YAC9D;YACA;YACAmrB,aAAa,CAAC3rC,IAAd,CAAmB;cACfgsC,gBAAgB,EAAExrB;YADH,CAAnB;UAGH;QACJ;MACJ;IACJ;;IACD,IAAIuoB,SAAS,CAAC5nB,QAAV,KAAuB;IAAE;IAA7B,EAA0D;MACtDyqB,mBAAmB,CAAC7C,SAAD,CAAnB;IACH;EACJ;AACJ,CArED;;AAsEA,MAAMgD,mBAAmB,GAAG,CAACI,cAAD,EAAiBV,YAAjB,KAAkC;EAC1D,IAAIU,cAAc,CAAChrB,QAAf,KAA4B;EAAE;EAAlC,EAA+D;IAC3D,IAAIgrB,cAAc,CAAC/S,YAAf,CAA4B,MAA5B,MAAwC,IAAxC,IAAgDqS,YAAY,KAAK,EAArE,EAAyE;MACrE,OAAO,IAAP;IACH;;IACD,IAAIU,cAAc,CAAC/S,YAAf,CAA4B,MAA5B,MAAwCqS,YAA5C,EAA0D;MACtD,OAAO,IAAP;IACH;;IACD,OAAO,KAAP;EACH;;EACD,IAAIU,cAAc,CAAC,MAAD,CAAd,KAA2BV,YAA/B,EAA6C;IACzC,OAAO,IAAP;EACH;;EACD,OAAOA,YAAY,KAAK,EAAxB;AACH,CAdD;;AAeA,MAAMxB,YAAY,GAAImC,KAAD,IAAW;EAC5B;IACIA,KAAK,CAAClG,OAAN,IAAiBkG,KAAK,CAAClG,OAAN,CAAcl4B,GAA/B,IAAsCo+B,KAAK,CAAClG,OAAN,CAAcl4B,GAAd,CAAkB,IAAlB,CAAtC;IACAo+B,KAAK,CAACjG,UAAN,IAAoBiG,KAAK,CAACjG,UAAN,CAAiB56B,GAAjB,CAAqB0+B,YAArB,CAApB;EACH;AACJ,CALD;;AAMA,MAAMoC,UAAU,GAAG,CAAC7K,OAAD,EAAU8K,eAAV,KAA8B;EAC7C,MAAM/I,OAAO,GAAG/B,OAAO,CAAC0C,aAAxB;EACA,MAAMZ,OAAO,GAAG9B,OAAO,CAACyC,SAAxB;EACA,MAAM+E,QAAQ,GAAGxH,OAAO,CAAC+K,OAAR,IAAmB1G,QAAQ,CAAC,IAAD,EAAO,IAAP,CAA5C;EACA,MAAM2G,SAAS,GAAG7F,MAAM,CAAC2F,eAAD,CAAN,GAA0BA,eAA1B,GAA4CjwC,CAAC,CAAC,IAAD,EAAO,IAAP,EAAaiwC,eAAb,CAA/D;EACAjM,WAAW,GAAGkD,OAAO,CAAC7gC,OAAtB;;EACA,IAAI4gC,OAAO,CAACmJ,gBAAZ,EAA8B;IAC1BD,SAAS,CAACtG,OAAV,GAAoBsG,SAAS,CAACtG,OAAV,IAAqB,EAAzC;IACA5C,OAAO,CAACmJ,gBAAR,CAAyBlhC,GAAzB,CAA6B,CAAC,CAACmhC,QAAD,EAAWC,SAAX,CAAD,KAA4BH,SAAS,CAACtG,OAAV,CAAkByG,SAAlB,IAA+BpJ,OAAO,CAACmJ,QAAD,CAA/F;EACH;;EACDF,SAAS,CAAChG,KAAV,GAAkB,IAAlB;EACAgG,SAAS,CAAC5L,OAAV,IAAqB;EAAE;EAAvB;EACAY,OAAO,CAAC+K,OAAR,GAAkBC,SAAlB;EACAA,SAAS,CAAC/F,KAAV,GAAkBuC,QAAQ,CAACvC,KAAT,GAAkBlD,OAAO,CAAC5J,UAAR,IAAsB4J,OAA1D;EACA;IACIpD,OAAO,GAAGoD,OAAO,CAAC,MAAD,CAAjB;EACH;EACD;IACInD,UAAU,GAAGmD,OAAO,CAAC,MAAD,CAApB;IACAjD,kBAAkB,GAAG,CAACgD,OAAO,CAAC1C,OAAR,GAAkB;IAAE;IAArB,MAAiE,CAAtF,CAFJ,CAGI;;IACAL,2BAA2B,GAAG,KAA9B;EACH,CAtB4C,CAuB7C;;EACAyK,KAAK,CAAChC,QAAD,EAAWwD,SAAX,CAAL;EACA;IACI;IACA;IACA7L,GAAG,CAACC,OAAJ,IAAe;IAAE;IAAjB;;IACA,IAAIJ,iBAAJ,EAAuB;MACnBoL,mBAAmB,CAACY,SAAS,CAAC/F,KAAX,CAAnB;MACA,IAAImG,YAAJ;MACA,IAAIT,cAAJ;MACA,IAAIU,eAAJ;MACA,IAAIC,aAAJ;MACA,IAAIC,gBAAJ;MACA,IAAIC,OAAJ;MACA,IAAIltC,CAAC,GAAG,CAAR;;MACA,OAAOA,CAAC,GAAG6rC,aAAa,CAACnsC,MAAzB,EAAiCM,CAAC,EAAlC,EAAsC;QAClC8sC,YAAY,GAAGjB,aAAa,CAAC7rC,CAAD,CAA5B;QACAqsC,cAAc,GAAGS,YAAY,CAACZ,gBAA9B;;QACA,IAAI,CAACG,cAAc,CAAC,MAAD,CAAnB,EAA6B;UACzB;UACA;UACAU,eAAe,GACXx5B,GAAG,CAAC41B,cAAJ,CAAmB,EAAnB,CADJ;UAEA4D,eAAe,CAAC,MAAD,CAAf,GAA0BV,cAA1B;UACAA,cAAc,CAACte,UAAf,CAA0BiW,YAA1B,CAAwCqI,cAAc,CAAC,MAAD,CAAd,GAAyBU,eAAjE,EAAmFV,cAAnF;QACH;MACJ;;MACD,KAAKrsC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG6rC,aAAa,CAACnsC,MAA9B,EAAsCM,CAAC,EAAvC,EAA2C;QACvC8sC,YAAY,GAAGjB,aAAa,CAAC7rC,CAAD,CAA5B;QACAqsC,cAAc,GAAGS,YAAY,CAACZ,gBAA9B;;QACA,IAAIY,YAAY,CAACX,aAAjB,EAAgC;UAC5B;UACA;UACAa,aAAa,GAAGF,YAAY,CAACX,aAAb,CAA2Bpe,UAA3C;UACAkf,gBAAgB,GAAGH,YAAY,CAACX,aAAb,CAA2BhB,WAA9C;UACA4B,eAAe,GAAGV,cAAc,CAAC,MAAD,CAAhC;;UACA,OAAQU,eAAe,GAAGA,eAAe,CAACI,eAA1C,EAA4D;YACxDD,OAAO,GAAGH,eAAe,CAAC,MAAD,CAAzB;;YACA,IAAIG,OAAO,IAAIA,OAAO,CAAC,MAAD,CAAP,KAAoBb,cAAc,CAAC,MAAD,CAA7C,IAAyDW,aAAa,KAAKE,OAAO,CAACnf,UAAvF,EAAmG;cAC/Fmf,OAAO,GAAGA,OAAO,CAAC/B,WAAlB;;cACA,IAAI,CAAC+B,OAAD,IAAY,CAACA,OAAO,CAAC,MAAD,CAAxB,EAAkC;gBAC9BD,gBAAgB,GAAGC,OAAnB;gBACA;cACH;YACJ;UACJ;;UACD,IAAK,CAACD,gBAAD,IAAqBD,aAAa,KAAKX,cAAc,CAACte,UAAvD,IACAse,cAAc,CAAClB,WAAf,KAA+B8B,gBADnC,EACqD;YACjD;YACA;YACA;YACA,IAAIZ,cAAc,KAAKY,gBAAvB,EAAyC;cACrC,IAAI,CAACZ,cAAc,CAAC,MAAD,CAAf,IAA2BA,cAAc,CAAC,MAAD,CAA7C,EAAuD;gBACnD;gBACAA,cAAc,CAAC,MAAD,CAAd,GAAyBA,cAAc,CAAC,MAAD,CAAd,CAAuBte,UAAvB,CAAkCsX,QAA3D;cACH,CAJoC,CAKrC;;;cACA2H,aAAa,CAAChJ,YAAd,CAA2BqI,cAA3B,EAA2CY,gBAA3C;YACH;UACJ;QACJ,CA9BD,MA+BK;UACD;UACA,IAAIZ,cAAc,CAAChrB,QAAf,KAA4B;UAAE;UAAlC,EAA+D;YAC3DgrB,cAAc,CAACT,MAAf,GAAwB,IAAxB;UACH;QACJ;MACJ;IACJ;;IACD,IAAInL,2BAAJ,EAAiC;MAC7BgL,4BAA4B,CAACiB,SAAS,CAAC/F,KAAX,CAA5B;IACH,CArEL,CAsEI;IACA;;;IACA9F,GAAG,CAACC,OAAJ,IAAe,CAAC;IAAE;IAAlB,CAxEJ,CAyEI;;IACA+K,aAAa,CAACnsC,MAAd,GAAuB,CAAvB;EACH;AACJ,CArGD;;AAsGA,MAAMqhB,UAAU,GAAI7S,GAAD,IAAU62B,UAAU,CAAC72B,GAAD,CAAV,CAAgBk2B,aAA7C;;AACA,MAAMgJ,WAAW,GAAG,CAACl/B,GAAD,EAAM0K,IAAN,EAAYipB,KAAZ,KAAsB;EACtC,MAAMlc,GAAG,GAAG5E,UAAU,CAAC7S,GAAD,CAAtB;EACA,OAAO;IACHiN,IAAI,EAAGvP,MAAD,IAAY;MACd,OAAOyhC,SAAS,CAAC1nB,GAAD,EAAM/M,IAAN,EAAY;QACxBqf,OAAO,EAAE,CAAC,EAAE4J,KAAK,GAAG;QAAE;QAAZ,CADc;QAExByL,QAAQ,EAAE,CAAC,EAAEzL,KAAK,GAAG;QAAE;QAAZ,CAFa;QAGxB0L,UAAU,EAAE,CAAC,EAAE1L,KAAK,GAAG;QAAE;QAAZ,CAHW;QAIxBj2B;MAJwB,CAAZ,CAAhB;IAMH;EARE,CAAP;AAUH,CAZD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyhC,SAAS,GAAG,CAAC1nB,GAAD,EAAM/M,IAAN,EAAY1V,IAAZ,KAAqB;EACnC,MAAMyI,EAAE,GAAGk1B,GAAG,CAACI,EAAJ,CAAOroB,IAAP,EAAa1V,IAAb,CAAX;EACAyiB,GAAG,CAACmR,aAAJ,CAAkBnrB,EAAlB;EACA,OAAOA,EAAP;AACH,CAJD;;AAKA,MAAM6hC,gBAAgB,GAAG,CAAC9L,OAAD,EAAU+L,iBAAV,KAAgC;EACrD,IAAIA,iBAAiB,IAAI,CAAC/L,OAAO,CAACgM,iBAA9B,IAAmDD,iBAAiB,CAAC,KAAD,CAAxE,EAAiF;IAC7EA,iBAAiB,CAAC,KAAD,CAAjB,CAAyBvtC,IAAzB,CAA8B,IAAI4J,OAAJ,CAAatG,CAAD,IAAQk+B,OAAO,CAACgM,iBAAR,GAA4BlqC,CAAhD,CAA9B;EACH;AACJ,CAJD;;AAKA,MAAMmqC,cAAc,GAAG,CAACjM,OAAD,EAAUkM,aAAV,KAA4B;EAC/C;IACIlM,OAAO,CAACZ,OAAR,IAAmB;IAAG;IAAtB;EACH;;EACD,IAAIY,OAAO,CAACZ,OAAR,GAAkB;EAAE;EAAxB,EAA+D;IAC3DY,OAAO,CAACZ,OAAR,IAAmB;IAAI;IAAvB;IACA;EACH;;EACD0M,gBAAgB,CAAC9L,OAAD,EAAUA,OAAO,CAACmM,mBAAlB,CAAhB,CAR+C,CAS/C;EACA;EACA;;EACA,MAAMC,QAAQ,GAAG,MAAMC,aAAa,CAACrM,OAAD,EAAUkM,aAAV,CAApC;;EACA,OAAOI,SAAS,CAACF,QAAD,CAAhB;AACH,CAdD;;AAeA,MAAMC,aAAa,GAAG,CAACrM,OAAD,EAAUkM,aAAV,KAA4B;EAC9C,MAAMK,WAAW,GAAGnL,UAAU,CAAC,gBAAD,EAAmBpB,OAAO,CAACyC,SAAR,CAAkBG,SAArC,CAA9B;EACA,MAAM9hC,QAAQ,GAAGk/B,OAAO,CAACQ,cAAzB;EACA,IAAI7vB,OAAJ;;EACA,IAAIu7B,aAAJ,EAAmB;IACf;MACIlM,OAAO,CAACZ,OAAR,IAAmB;MAAI;MAAvB;;MACA,IAAIY,OAAO,CAACS,iBAAZ,EAA+B;QAC3BT,OAAO,CAACS,iBAAR,CAA0B12B,GAA1B,CAA8B,CAAC,CAACrJ,UAAD,EAAaw0B,KAAb,CAAD,KAAyBsX,QAAQ,CAAC1rC,QAAD,EAAWJ,UAAX,EAAuBw0B,KAAvB,CAA/D;QACA8K,OAAO,CAACS,iBAAR,GAA4B,IAA5B;MACH;IACJ;IACD;MACI9vB,OAAO,GAAG67B,QAAQ,CAAC1rC,QAAD,EAAW,mBAAX,CAAlB;IACH;EACJ;;EACD;IACI6P,OAAO,GAAG/B,IAAI,CAAC+B,OAAD,EAAU,MAAM67B,QAAQ,CAAC1rC,QAAD,EAAW,qBAAX,CAAxB,CAAd;EACH;EACDyrC,WAAW;EACX,OAAO39B,IAAI,CAAC+B,OAAD,EAAU,MAAM87B,eAAe,CAACzM,OAAD,EAAUl/B,QAAV,EAAoBorC,aAApB,CAA/B,CAAX;AACH,CArBD;;AAsBA,MAAMO,eAAe;EAAA,gKAAG,WAAOzM,OAAP,EAAgBl/B,QAAhB,EAA0BorC,aAA1B,EAA4C;IAChE;IACA,MAAMjoB,GAAG,GAAG+b,OAAO,CAAC0C,aAApB;IACA,MAAMgK,SAAS,GAAGtL,UAAU,CAAC,QAAD,EAAWpB,OAAO,CAACyC,SAAR,CAAkBG,SAA7B,CAA5B;IACA,MAAM+J,EAAE,GAAG1oB,GAAG,CAAC,MAAD,CAAd;;IACA,IAAIioB,aAAJ,EAAmB;MACf;MACA1J,YAAY,CAACxC,OAAD,CAAZ;IACH;;IACD,MAAM4M,SAAS,GAAGxL,UAAU,CAAC,QAAD,EAAWpB,OAAO,CAACyC,SAAR,CAAkBG,SAA7B,CAA5B;IACA;MACIiK,UAAU,CAAC7M,OAAD,EAAUl/B,QAAV,CAAV;IACH;;IACD,IAAI6rC,EAAJ,EAAQ;MACJ;MACA;MACA;MACAA,EAAE,CAAC5iC,GAAH,CAAQ2X,EAAD,IAAQA,EAAE,EAAjB;MACAuC,GAAG,CAAC,MAAD,CAAH,GAAc7iB,SAAd;IACH;;IACDwrC,SAAS;IACTF,SAAS;IACT;MACI,MAAMI,gBAAgB,GAAG7oB,GAAG,CAAC,KAAD,CAA5B;;MACA,MAAM8oB,UAAU,GAAG,MAAMC,mBAAmB,CAAChN,OAAD,CAA5C;;MACA,IAAI8M,gBAAgB,CAAC9uC,MAAjB,KAA4B,CAAhC,EAAmC;QAC/B+uC,UAAU;MACb,CAFD,MAGK;QACD3kC,OAAO,CAACm2B,GAAR,CAAYuO,gBAAZ,EAA8Bl+B,IAA9B,CAAmCm+B,UAAnC;QACA/M,OAAO,CAACZ,OAAR,IAAmB;QAAE;QAArB;QACA0N,gBAAgB,CAAC9uC,MAAjB,GAA0B,CAA1B;MACH;IACJ;EACJ,CAlCoB;;EAAA,gBAAfyuC,eAAe;IAAA;EAAA;AAAA,GAArB;;AAmCA,MAAMI,UAAU,GAAG,CAAC7M,OAAD,EAAUl/B,QAAV,EAAoBmjB,GAApB,KAA4B;EAC3C,IAAI;IACAnjB,QAAQ,GAAGA,QAAQ,CAACmsC,MAAT,IAAmBnsC,QAAQ,CAACmsC,MAAT,EAA9B;IACA;MACIjN,OAAO,CAACZ,OAAR,IAAmB,CAAC;MAAG;MAAvB;IACH;IACD;MACIY,OAAO,CAACZ,OAAR,IAAmB;MAAE;MAArB;IACH;IACD;MACI;QACI;QACA;QACA;QACA;UACIyL,UAAU,CAAC7K,OAAD,EAAUl/B,QAAV,CAAV;QACH;MACJ;IACJ;EACJ,CAlBD,CAmBA,OAAO4d,CAAP,EAAU;IACNgiB,YAAY,CAAChiB,CAAD,EAAIshB,OAAO,CAAC0C,aAAZ,CAAZ;EACH;;EACD,OAAO,IAAP;AACH,CAxBD;;AAyBA,MAAMsK,mBAAmB,GAAIhN,OAAD,IAAa;EACrC,MAAM9+B,OAAO,GAAG8+B,OAAO,CAACyC,SAAR,CAAkBG,SAAlC;EACA,MAAM3e,GAAG,GAAG+b,OAAO,CAAC0C,aAApB;EACA,MAAMwK,aAAa,GAAG9L,UAAU,CAAC,YAAD,EAAelgC,OAAf,CAAhC;EACA,MAAMJ,QAAQ,GAAGk/B,OAAO,CAACQ,cAAzB;EACA,MAAMuL,iBAAiB,GAAG/L,OAAO,CAACmM,mBAAlC;EACA;IACIK,QAAQ,CAAC1rC,QAAD,EAAW,oBAAX,CAAR;EACH;;EACD,IAAI,EAAEk/B,OAAO,CAACZ,OAAR,GAAkB;EAAG;EAAvB,CAAJ,EAAiE;IAC7DY,OAAO,CAACZ,OAAR,IAAmB;IAAG;IAAtB;IACA;MACI;MACA+N,eAAe,CAAClpB,GAAD,CAAf;IACH;IACD;MACIuoB,QAAQ,CAAC1rC,QAAD,EAAW,kBAAX,CAAR;IACH;IACDosC,aAAa;IACb;MACIlN,OAAO,CAACoN,gBAAR,CAAyBnpB,GAAzB;;MACA,IAAI,CAAC8nB,iBAAL,EAAwB;QACpBsB,UAAU;MACb;IACJ;EACJ,CAhBD,MAiBK;IACD;MACIb,QAAQ,CAAC1rC,QAAD,EAAW,oBAAX,CAAR;IACH;IACDosC,aAAa;EAChB;;EACD;IACIlN,OAAO,CAACsN,mBAAR,CAA4BrpB,GAA5B;EACH,CAlCoC,CAmCrC;EACA;;EACA;IACI,IAAI+b,OAAO,CAACgM,iBAAZ,EAA+B;MAC3BhM,OAAO,CAACgM,iBAAR;MACAhM,OAAO,CAACgM,iBAAR,GAA4B5qC,SAA5B;IACH;;IACD,IAAI4+B,OAAO,CAACZ,OAAR,GAAkB;IAAI;IAA1B,EAA0D;MACtDmO,QAAQ,CAAC,MAAMtB,cAAc,CAACjM,OAAD,EAAU,KAAV,CAArB,CAAR;IACH;;IACDA,OAAO,CAACZ,OAAR,IAAmB,EAAE;IAAE;IAAF,EAA0C;IAAI;IAAhD,CAAnB;EACH,CA9CoC,CA+CrC;EACA;EACA;AACH,CAlDD;;AAmDA,MAAMoO,WAAW,GAAIhhC,GAAD,IAAS;EACzB;IACI,MAAMwzB,OAAO,GAAGqD,UAAU,CAAC72B,GAAD,CAA1B;IACA,MAAMihC,WAAW,GAAGzN,OAAO,CAAC0C,aAAR,CAAsB+K,WAA1C;;IACA,IAAIA,WAAW,IACX,CAACzN,OAAO,CAACZ,OAAR,IAAmB;IAAE;IAAF,EAAiC;IAAG;IAAvD,CAAD,MAAiG;IAAE;IADvG,EACqI;MACjI6M,cAAc,CAACjM,OAAD,EAAU,KAAV,CAAd;IACH,CANL,CAOI;;;IACA,OAAOyN,WAAP;EACH;AACJ,CAXD;;AAYA,MAAMJ,UAAU,GAAIK,GAAD,IAAS;EACxB;EACA;EACA;IACIP,eAAe,CAACt7B,GAAG,CAAC87B,eAAL,CAAf;EACH;EACDJ,QAAQ,CAAC,MAAM5B,SAAS,CAACv5B,GAAD,EAAM,SAAN,EAAiB;IAAElI,MAAM,EAAE;MAAE0jC,SAAS,EAAElP;IAAb;EAAV,CAAjB,CAAhB,CAAR;AACH,CAPD;;AAQA,MAAM8N,QAAQ,GAAG,CAAC1rC,QAAD,EAAW3D,MAAX,EAAmB0wC,GAAnB,KAA2B;EACxC,IAAI/sC,QAAQ,IAAIA,QAAQ,CAAC3D,MAAD,CAAxB,EAAkC;IAC9B,IAAI;MACA,OAAO2D,QAAQ,CAAC3D,MAAD,CAAR,CAAiB0wC,GAAjB,CAAP;IACH,CAFD,CAGA,OAAOnvB,CAAP,EAAU;MACNgiB,YAAY,CAAChiB,CAAD,CAAZ;IACH;EACJ;;EACD,OAAOtd,SAAP;AACH,CAVD;;AAWA,MAAMwN,IAAI,GAAG,CAAC+B,OAAD,EAAUm9B,MAAV,KAAqB;EAC9B,OAAOn9B,OAAO,IAAIA,OAAO,CAAC/B,IAAnB,GAA0B+B,OAAO,CAAC/B,IAAR,CAAak/B,MAAb,CAA1B,GAAiDA,MAAM,EAA9D;AACH,CAFD;;AAGA,MAAMX,eAAe,GAAIlpB,GAAD,IAASA,GAAG,CAAC5lB,SAAJ,CAAcM,GAAd,CAAkB,UAAlB,CAAjC;;AAEA,MAAMovC,uBAAuB,GAAG,CAAChM,OAAD,EAAU7gC,OAAV,EAAmB8sC,MAAnB,EAA2BhO,OAA3B,KAAuC;EACnE,MAAMiO,UAAU,GAAG7M,UAAU,CAAC,eAAD,EAAkBlgC,OAAlB,CAA7B;EACA,MAAMi3B,UAAU,GAAG4J,OAAO,CAAC5J,UAA3B;EACA,MAAM+V,gBAAgB,GAAG,EAAzB;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAMC,eAAe,GAAGjW,UAAU,GAAG,EAAH,GAAQ,IAA1C;EACA,MAAMsM,KAAK,GAAIzE,OAAO,CAAC+K,OAAR,GAAkB1G,QAAQ,CAACnjC,OAAD,EAAU,IAAV,CAAzC;;EACA,IAAI,CAACi+B,GAAG,CAACkP,aAAT,EAAwB;IACpBC,yBAAyB,CAACz8B,GAAG,CAAC+R,IAAL,EAAYub,GAAG,CAACkP,aAAJ,GAAoB,IAAI/0B,GAAJ,EAAhC,CAAzB;EACH;;EACDyoB,OAAO,CAAChB,UAAD,CAAP,GAAsBiN,MAAtB;EACAjM,OAAO,CAAClK,eAAR,CAAwBkJ,UAAxB;EACAwN,aAAa,CAAC9J,KAAD,EAAQyJ,gBAAR,EAA0BC,SAA1B,EAAqCC,eAArC,EAAsDrM,OAAtD,EAA+DA,OAA/D,EAAwEiM,MAAxE,CAAb;EACAE,gBAAgB,CAACnkC,GAAjB,CAAsBlI,CAAD,IAAO;IACxB,MAAM2sC,aAAa,GAAG3sC,CAAC,CAAC4sC,QAAF,GAAa,GAAb,GAAmB5sC,CAAC,CAAC6sC,QAA3C;IACA,MAAMrD,eAAe,GAAGlM,GAAG,CAACkP,aAAJ,CAAkBzxC,GAAlB,CAAsB4xC,aAAtB,CAAxB;IACA,MAAMxvB,IAAI,GAAGnd,CAAC,CAACojC,KAAf;;IACA,IAAIoG,eAAe,IAAI3L,cAAnB,IAAqC2L,eAAe,CAAC,MAAD,CAAf,KAA4B,EAArE,EAAyE;MACrEA,eAAe,CAAChf,UAAhB,CAA2BiW,YAA3B,CAAwCtjB,IAAxC,EAA8CqsB,eAAe,CAAC5B,WAA9D;IACH;;IACD,IAAI,CAACtR,UAAL,EAAiB;MACbnZ,IAAI,CAAC,MAAD,CAAJ,GAAe9d,OAAf;;MACA,IAAImqC,eAAJ,EAAqB;QACjBrsB,IAAI,CAAC,MAAD,CAAJ,GAAeqsB,eAAf;QACArsB,IAAI,CAAC,MAAD,CAAJ,CAAa,MAAb,IAAuBA,IAAvB;MACH;IACJ;;IACDmgB,GAAG,CAACkP,aAAJ,CAAkB1lC,MAAlB,CAAyB6lC,aAAzB;EACH,CAfD;;EAgBA,IAAIrW,UAAJ,EAAgB;IACZiW,eAAe,CAACrkC,GAAhB,CAAqB4kC,cAAD,IAAoB;MACpC,IAAIA,cAAJ,EAAoB;QAChBxW,UAAU,CAAC1uB,WAAX,CAAuBklC,cAAvB;MACH;IACJ,CAJD;EAKH;;EACDV,UAAU;AACb,CArCD;;AAsCA,MAAMM,aAAa,GAAG,CAACpG,WAAD,EAAc+F,gBAAd,EAAgCC,SAAhC,EAA2CC,eAA3C,EAA4DrM,OAA5D,EAAqE/iB,IAArE,EAA2EgvB,MAA3E,KAAsF;EACxG,IAAIY,aAAJ;EACA,IAAIC,WAAJ;EACA,IAAIC,UAAJ;EACA,IAAIxwC,CAAJ;;EACA,IAAI0gB,IAAI,CAACW,QAAL,KAAkB;EAAE;EAAxB,EAAqD;IACjDivB,aAAa,GAAG5vB,IAAI,CAAC4Y,YAAL,CAAkBqJ,gBAAlB,CAAhB;;IACA,IAAI2N,aAAJ,EAAmB;MACf;MACA;MACAC,WAAW,GAAGD,aAAa,CAACxiC,KAAd,CAAoB,GAApB,CAAd;;MACA,IAAIyiC,WAAW,CAAC,CAAD,CAAX,KAAmBb,MAAnB,IAA6Ba,WAAW,CAAC,CAAD,CAAX,KAAmB,GAApD,EAAyD;QACrDC,UAAU,GAAG;UACT1P,OAAO,EAAE,CADA;UAETqP,QAAQ,EAAEI,WAAW,CAAC,CAAD,CAFZ;UAGTH,QAAQ,EAAEG,WAAW,CAAC,CAAD,CAHZ;UAITE,OAAO,EAAEF,WAAW,CAAC,CAAD,CAJX;UAKTG,OAAO,EAAEH,WAAW,CAAC,CAAD,CALX;UAMT7J,KAAK,EAAEhmB,IAAI,CAAC9d,OAAL,CAAa4kB,WAAb,EANE;UAOTmf,KAAK,EAAEjmB,IAPE;UAQT0lB,OAAO,EAAE,IARA;UASTC,UAAU,EAAE,IATH;UAUTC,KAAK,EAAE,IAVE;UAWTC,MAAM,EAAE,IAXC;UAYTT,MAAM,EAAE;QAZC,CAAb;QAcA8J,gBAAgB,CAAC1vC,IAAjB,CAAsBswC,UAAtB;QACA9vB,IAAI,CAAC6Y,eAAL,CAAqBoJ,gBAArB,EAhBqD,CAiBrD;QACA;;QACA,IAAI,CAACkH,WAAW,CAACxD,UAAjB,EAA6B;UACzBwD,WAAW,CAACxD,UAAZ,GAAyB,EAAzB;QACH,CArBoD,CAsBrD;;;QACAwD,WAAW,CAACxD,UAAZ,CAAuBmK,UAAU,CAACE,OAAlC,IAA6CF,UAA7C,CAvBqD,CAwBrD;;QACA3G,WAAW,GAAG2G,UAAd;;QACA,IAAIV,eAAe,IAAIU,UAAU,CAACC,OAAX,KAAuB,GAA9C,EAAmD;UAC/CX,eAAe,CAACU,UAAU,CAACE,OAAZ,CAAf,GAAsCF,UAAU,CAAC7J,KAAjD;QACH;MACJ;IACJ,CApCgD,CAqCjD;;;IACA,KAAK3mC,CAAC,GAAG0gB,IAAI,CAAC8oB,UAAL,CAAgB9pC,MAAhB,GAAyB,CAAlC,EAAqCM,CAAC,IAAI,CAA1C,EAA6CA,CAAC,EAA9C,EAAkD;MAC9CiwC,aAAa,CAACpG,WAAD,EAAc+F,gBAAd,EAAgCC,SAAhC,EAA2CC,eAA3C,EAA4DrM,OAA5D,EAAqE/iB,IAAI,CAAC8oB,UAAL,CAAgBxpC,CAAhB,CAArE,EAAyF0vC,MAAzF,CAAb;IACH;;IACD,IAAIhvB,IAAI,CAACmZ,UAAT,EAAqB;MACjB;MACA,KAAK75B,CAAC,GAAG0gB,IAAI,CAACmZ,UAAL,CAAgB2P,UAAhB,CAA2B9pC,MAA3B,GAAoC,CAA7C,EAAgDM,CAAC,IAAI,CAArD,EAAwDA,CAAC,EAAzD,EAA6D;QACzDiwC,aAAa,CAACpG,WAAD,EAAc+F,gBAAd,EAAgCC,SAAhC,EAA2CC,eAA3C,EAA4DrM,OAA5D,EAAqE/iB,IAAI,CAACmZ,UAAL,CAAgB2P,UAAhB,CAA2BxpC,CAA3B,CAArE,EAAoG0vC,MAApG,CAAb;MACH;IACJ;EACJ,CA/CD,MAgDK,IAAIhvB,IAAI,CAACW,QAAL,KAAkB;EAAE;EAAxB,EAAqD;IACtD;IACAkvB,WAAW,GAAG7vB,IAAI,CAACiwB,SAAL,CAAe7iC,KAAf,CAAqB,GAArB,CAAd;;IACA,IAAIyiC,WAAW,CAAC,CAAD,CAAX,KAAmBb,MAAnB,IAA6Ba,WAAW,CAAC,CAAD,CAAX,KAAmB,GAApD,EAAyD;MACrD;MACAD,aAAa,GAAGC,WAAW,CAAC,CAAD,CAA3B;MACAC,UAAU,GAAG;QACT1P,OAAO,EAAE,CADA;QAETqP,QAAQ,EAAEI,WAAW,CAAC,CAAD,CAFZ;QAGTH,QAAQ,EAAEG,WAAW,CAAC,CAAD,CAHZ;QAITE,OAAO,EAAEF,WAAW,CAAC,CAAD,CAJX;QAKTG,OAAO,EAAEH,WAAW,CAAC,CAAD,CALX;QAMT5J,KAAK,EAAEjmB,IANE;QAOT0lB,OAAO,EAAE,IAPA;QAQTC,UAAU,EAAE,IARH;QASTC,KAAK,EAAE,IATE;QAUTC,MAAM,EAAE,IAVC;QAWTG,KAAK,EAAE,IAXE;QAYTZ,MAAM,EAAE;MAZC,CAAb;;MAcA,IAAIwK,aAAa,KAAK9N,YAAtB,EAAoC;QAChCgO,UAAU,CAAC7J,KAAX,GAAmBjmB,IAAI,CAACyqB,WAAxB;;QACA,IAAIqF,UAAU,CAAC7J,KAAX,IAAoB6J,UAAU,CAAC7J,KAAX,CAAiBtlB,QAAjB,KAA8B;QAAE;QAAxD,EAAkF;UAC9EmvB,UAAU,CAAC1K,MAAX,GAAoB0K,UAAU,CAAC7J,KAAX,CAAiB1c,WAArC;UACA2lB,gBAAgB,CAAC1vC,IAAjB,CAAsBswC,UAAtB,EAF8E,CAG9E;;UACA9vB,IAAI,CAACtgB,MAAL;;UACA,IAAI,CAACypC,WAAW,CAACxD,UAAjB,EAA6B;YACzBwD,WAAW,CAACxD,UAAZ,GAAyB,EAAzB;UACH;;UACDwD,WAAW,CAACxD,UAAZ,CAAuBmK,UAAU,CAACE,OAAlC,IAA6CF,UAA7C;;UACA,IAAIV,eAAe,IAAIU,UAAU,CAACC,OAAX,KAAuB,GAA9C,EAAmD;YAC/CX,eAAe,CAACU,UAAU,CAACE,OAAZ,CAAf,GAAsCF,UAAU,CAAC7J,KAAjD;UACH;QACJ;MACJ,CAfD,MAgBK,IAAI6J,UAAU,CAACL,QAAX,KAAwBT,MAA5B,EAAoC;QACrC;QACA,IAAIY,aAAa,KAAK/N,YAAtB,EAAoC;UAChC;UACAiO,UAAU,CAAC9J,KAAX,GAAmB,MAAnB;;UACA,IAAI6J,WAAW,CAAC,CAAD,CAAf,EAAoB;YAChB7vB,IAAI,CAAC,MAAD,CAAJ,GAAe8vB,UAAU,CAACjK,MAAX,GAAoBgK,WAAW,CAAC,CAAD,CAA9C;UACH,CAFD,MAGK;YACD7vB,IAAI,CAAC,MAAD,CAAJ,GAAe,EAAf;UACH;;UACDA,IAAI,CAAC,MAAD,CAAJ,GAAe,IAAf;;UACA,IAAIovB,eAAJ,EAAqB;YACjB;YACA;YACAU,UAAU,CAAC7J,KAAX,GAAmBpzB,GAAG,CAACyW,aAAJ,CAAkBwmB,UAAU,CAAC9J,KAA7B,CAAnB;;YACA,IAAI8J,UAAU,CAACjK,MAAf,EAAuB;cACnB;cACAiK,UAAU,CAAC7J,KAAX,CAAiBj0B,YAAjB,CAA8B,MAA9B,EAAsC89B,UAAU,CAACjK,MAAjD;YACH,CAPgB,CAQjB;;;YACA7lB,IAAI,CAACqN,UAAL,CAAgBiW,YAAhB,CAA6BwM,UAAU,CAAC7J,KAAxC,EAA+CjmB,IAA/C,EATiB,CAUjB;;YACAA,IAAI,CAACtgB,MAAL;;YACA,IAAIowC,UAAU,CAACC,OAAX,KAAuB,GAA3B,EAAgC;cAC5BX,eAAe,CAACU,UAAU,CAACE,OAAZ,CAAf,GAAsCF,UAAU,CAAC7J,KAAjD;YACH;UACJ;;UACDkJ,SAAS,CAAC3vC,IAAV,CAAeswC,UAAf;;UACA,IAAI,CAAC3G,WAAW,CAACxD,UAAjB,EAA6B;YACzBwD,WAAW,CAACxD,UAAZ,GAAyB,EAAzB;UACH;;UACDwD,WAAW,CAACxD,UAAZ,CAAuBmK,UAAU,CAACE,OAAlC,IAA6CF,UAA7C;QACH,CA/BD,MAgCK,IAAIF,aAAa,KAAKjO,cAAtB,EAAsC;UACvC;UACA,IAAIyN,eAAJ,EAAqB;YACjB;YACApvB,IAAI,CAACtgB,MAAL;UACH,CAHD,MAIK;YACDqjC,OAAO,CAAC,MAAD,CAAP,GAAkB/iB,IAAlB;YACAA,IAAI,CAAC,MAAD,CAAJ,GAAe,IAAf;UACH;QACJ;MACJ;IACJ;EACJ,CAnFI,MAoFA,IAAImpB,WAAW,IAAIA,WAAW,CAACnD,KAAZ,KAAsB,OAAzC,EAAkD;IACnD,MAAMP,KAAK,GAAGJ,QAAQ,CAAC,IAAD,EAAOrlB,IAAI,CAACuJ,WAAZ,CAAtB;IACAkc,KAAK,CAACQ,KAAN,GAAcjmB,IAAd;IACAylB,KAAK,CAACuK,OAAN,GAAgB,GAAhB;IACA7G,WAAW,CAACxD,UAAZ,GAAyB,CAACF,KAAD,CAAzB;EACH;AACJ,CA/ID;;AAgJA,MAAM6J,yBAAyB,GAAG,CAACtvB,IAAD,EAAOkwB,WAAP,KAAuB;EACrD,IAAIlwB,IAAI,CAACW,QAAL,KAAkB;EAAE;EAAxB,EAAqD;IACjD,IAAIrhB,CAAC,GAAG,CAAR;;IACA,OAAOA,CAAC,GAAG0gB,IAAI,CAAC8oB,UAAL,CAAgB9pC,MAA3B,EAAmCM,CAAC,EAApC,EAAwC;MACpCgwC,yBAAyB,CAACtvB,IAAI,CAAC8oB,UAAL,CAAgBxpC,CAAhB,CAAD,EAAqB4wC,WAArB,CAAzB;IACH;;IACD,IAAIlwB,IAAI,CAACmZ,UAAT,EAAqB;MACjB,KAAK75B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG0gB,IAAI,CAACmZ,UAAL,CAAgB2P,UAAhB,CAA2B9pC,MAA3C,EAAmDM,CAAC,EAApD,EAAwD;QACpDgwC,yBAAyB,CAACtvB,IAAI,CAACmZ,UAAL,CAAgB2P,UAAhB,CAA2BxpC,CAA3B,CAAD,EAAgC4wC,WAAhC,CAAzB;MACH;IACJ;EACJ,CAVD,MAWK,IAAIlwB,IAAI,CAACW,QAAL,KAAkB;EAAE;EAAxB,EAAqD;IACtD,MAAMkvB,WAAW,GAAG7vB,IAAI,CAACiwB,SAAL,CAAe7iC,KAAf,CAAqB,GAArB,CAApB;;IACA,IAAIyiC,WAAW,CAAC,CAAD,CAAX,KAAmBjO,eAAvB,EAAwC;MACpCsO,WAAW,CAAC9uC,GAAZ,CAAgByuC,WAAW,CAAC,CAAD,CAAX,GAAiB,GAAjB,GAAuBA,WAAW,CAAC,CAAD,CAAlD,EAAuD7vB,IAAvD;MACAA,IAAI,CAACiwB,SAAL,GAAiB,EAAjB,CAFoC,CAGpC;MACA;;MACAjwB,IAAI,CAAC,MAAD,CAAJ,GAAe6vB,WAAW,CAAC,CAAD,CAA1B;IACH;EACJ;AACJ,CAtBD;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,kBAAkB,GAAG,CAACC,SAAD,EAAYC,QAAZ,KAAyB;EAChD;EACA,IAAID,SAAS,IAAI,IAAb,IAAqB,CAAC1L,aAAa,CAAC0L,SAAD,CAAvC,EAAoD;IAChD,IAAIC,QAAQ,GAAG;IAAE;IAAjB,EAA6C;MACzC;MACA;MACA,OAAOD,SAAS,KAAK,OAAd,GAAwB,KAAxB,GAAgCA,SAAS,KAAK,EAAd,IAAoB,CAAC,CAACA,SAA7D;IACH;;IACD,IAAIC,QAAQ,GAAG;IAAE;IAAjB,EAA4C;MACxC;MACA,OAAO/vC,UAAU,CAAC8vC,SAAD,CAAjB;IACH;;IACD,IAAIC,QAAQ,GAAG;IAAE;IAAjB,EAA4C;MACxC;MACA;MACA,OAAOlL,MAAM,CAACiL,SAAD,CAAb;IACH,CAd+C,CAehD;;;IACA,OAAOA,SAAP;EACH,CAnB+C,CAoBhD;EACA;;;EACA,OAAOA,SAAP;AACH,CAvBD;;AAwBA,MAAME,QAAQ,GAAG,CAAC9iC,GAAD,EAAM0+B,QAAN,KAAmB7H,UAAU,CAAC72B,GAAD,CAAV,CAAgB+iC,gBAAhB,CAAiC3yC,GAAjC,CAAqCsuC,QAArC,CAApC;;AACA,MAAMsE,QAAQ,GAAG,CAAChjC,GAAD,EAAM0+B,QAAN,EAAgBuE,MAAhB,EAAwB3N,OAAxB,KAAoC;EACjD;EACA,MAAM9B,OAAO,GAAGqD,UAAU,CAAC72B,GAAD,CAA1B;EACA,MAAMyX,GAAG,GAAG+b,OAAO,CAAC0C,aAApB;EACA,MAAMgN,MAAM,GAAG1P,OAAO,CAACuP,gBAAR,CAAyB3yC,GAAzB,CAA6BsuC,QAA7B,CAAf;EACA,MAAM/K,KAAK,GAAGH,OAAO,CAACZ,OAAtB;EACA,MAAMt+B,QAAQ,GAAGk/B,OAAO,CAACQ,cAAzB;EACAiP,MAAM,GAAGN,kBAAkB,CAACM,MAAD,EAAS3N,OAAO,CAAC6N,SAAR,CAAkBzE,QAAlB,EAA4B,CAA5B,CAAT,CAA3B,CAPiD,CAQjD;;EACA,MAAM0E,UAAU,GAAG/Y,MAAM,CAACgZ,KAAP,CAAaH,MAAb,KAAwB7Y,MAAM,CAACgZ,KAAP,CAAaJ,MAAb,CAA3C;EACA,MAAMK,cAAc,GAAGL,MAAM,KAAKC,MAAX,IAAqB,CAACE,UAA7C;;EACA,IAAI,CAAC,EAAEzP,KAAK,GAAG;EAAE;EAAZ,KAAwDuP,MAAM,KAAKtuC,SAApE,KAAkF0uC,cAAtF,EAAsG;IAClG;IACA;IACA9P,OAAO,CAACuP,gBAAR,CAAyBnvC,GAAzB,CAA6B8qC,QAA7B,EAAuCuE,MAAvC;;IACA,IAAI3uC,QAAJ,EAAc;MACV;MACA,IAAIghC,OAAO,CAACiO,UAAR,IAAsB5P,KAAK,GAAG;MAAI;MAAtC,EAAqE;QACjE,MAAM6P,YAAY,GAAGlO,OAAO,CAACiO,UAAR,CAAmB7E,QAAnB,CAArB;;QACA,IAAI8E,YAAJ,EAAkB;UACd;UACAA,YAAY,CAACjmC,GAAb,CAAkBkmC,eAAD,IAAqB;YAClC,IAAI;cACA;cACAnvC,QAAQ,CAACmvC,eAAD,CAAR,CAA0BR,MAA1B,EAAkCC,MAAlC,EAA0CxE,QAA1C;YACH,CAHD,CAIA,OAAOxsB,CAAP,EAAU;cACNgiB,YAAY,CAAChiB,CAAD,EAAIuF,GAAJ,CAAZ;YACH;UACJ,CARD;QASH;MACJ;;MACD,IAAI,CAACkc,KAAK,IAAI;MAAE;MAAF,EAAiC;MAAG;MAAxC,CAAN,MAAuF;MAAE;MAA7F,EAA2H;QACvH;QACA;QACA;QACA;QACA8L,cAAc,CAACjM,OAAD,EAAU,KAAV,CAAd;MACH;IACJ;EACJ;AACJ,CAzCD;;AA0CA,MAAMkQ,cAAc,GAAG,CAACC,IAAD,EAAOrO,OAAP,EAAgB3B,KAAhB,KAA0B;EAC7C,IAAI2B,OAAO,CAAC6N,SAAZ,EAAuB;IACnB,IAAIQ,IAAI,CAACC,QAAT,EAAmB;MACftO,OAAO,CAACiO,UAAR,GAAqBI,IAAI,CAACC,QAA1B;IACH,CAHkB,CAInB;;;IACA,MAAMC,OAAO,GAAGnwC,MAAM,CAACowC,OAAP,CAAexO,OAAO,CAAC6N,SAAvB,CAAhB;IACA,MAAM1vC,SAAS,GAAGkwC,IAAI,CAAClwC,SAAvB;IACAowC,OAAO,CAACtmC,GAAR,CAAY,CAAC,CAAC87B,UAAD,EAAa,CAAC0K,WAAD,CAAb,CAAD,KAAiC;MACzC,IAAKA,WAAW,GAAG;MAAG;MAAjB,GACKpQ,KAAK,GAAG;MAAE;MAAX,GAA4CoQ,WAAW,GAAG;MAAG;MADtE,EACkG;QAC9F;QACArwC,MAAM,CAACC,cAAP,CAAsBF,SAAtB,EAAiC4lC,UAAjC,EAA6C;UACzCjpC,GAAG,GAAG;YACF;YACA,OAAO0yC,QAAQ,CAAC,IAAD,EAAOzJ,UAAP,CAAf;UACH,CAJwC;;UAKzCzlC,GAAG,CAAC2lC,QAAD,EAAW;YACV;YACAyJ,QAAQ,CAAC,IAAD,EAAO3J,UAAP,EAAmBE,QAAnB,EAA6BjE,OAA7B,CAAR;UACH,CARwC;;UASzC0O,YAAY,EAAE,IAT2B;UAUzCC,UAAU,EAAE;QAV6B,CAA7C;MAYH,CAfD,MAgBK,IAAItQ,KAAK,GAAG;MAAE;MAAV,GACLoQ,WAAW,GAAG;MAAG;MADhB,EAC2C;QAC5C;QACArwC,MAAM,CAACC,cAAP,CAAsBF,SAAtB,EAAiC4lC,UAAjC,EAA6C;UACzClqC,KAAK,CAAC,GAAGgC,IAAJ,EAAU;YACX,MAAM6O,GAAG,GAAG62B,UAAU,CAAC,IAAD,CAAtB;YACA,OAAO72B,GAAG,CAACkkC,mBAAJ,CAAwB9hC,IAAxB,CAA6B,MAAMpC,GAAG,CAACg0B,cAAJ,CAAmBqF,UAAnB,EAA+B,GAAGloC,IAAlC,CAAnC,CAAP;UACH;;QAJwC,CAA7C;MAMH;IACJ,CA3BD;;IA4BA,IAAKwiC,KAAK,GAAG;IAAE;IAAf,EAAwD;MACpD,MAAMwQ,kBAAkB,GAAG,IAAIr3B,GAAJ,EAA3B;;MACArZ,SAAS,CAAC2wC,wBAAV,GAAqC,UAAUC,QAAV,EAAoBC,SAApB,EAA+B/K,QAA/B,EAAyC;QAC1E5G,GAAG,CAACpb,GAAJ,CAAQ,MAAM;UACV,MAAMmnB,QAAQ,GAAGyF,kBAAkB,CAAC/zC,GAAnB,CAAuBi0C,QAAvB,CAAjB,CADU,CAEV;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UACA,IAAI,KAAKnrB,cAAL,CAAoBwlB,QAApB,CAAJ,EAAmC;YAC/BnF,QAAQ,GAAG,KAAKmF,QAAL,CAAX;YACA,OAAO,KAAKA,QAAL,CAAP;UACH,CAHD,MAIK,IAAIjrC,SAAS,CAACylB,cAAV,CAAyBwlB,QAAzB,KACL,OAAO,KAAKA,QAAL,CAAP,KAA0B,QADrB,IAEL,KAAKA,QAAL,KAAkBnF,QAFjB,EAE2B;YAC5B;YACA;YACA;YACA;UACH;;UACD,KAAKmF,QAAL,IAAiBnF,QAAQ,KAAK,IAAb,IAAqB,OAAO,KAAKmF,QAAL,CAAP,KAA0B,SAA/C,GAA2D,KAA3D,GAAmEnF,QAApF;QACH,CAhDD;MAiDH,CAlDD,CAFoD,CAqDpD;MACA;;;MACAoK,IAAI,CAACY,kBAAL,GAA0BV,OAAO,CAC5Bj2C,MADqB,CACd,CAAC,CAAC42C,CAAD,EAAIrV,CAAJ,CAAD,KAAYA,CAAC,CAAC,CAAD,CAAD,GAAO;MAAG;MADR,EACyC;MADzC,CAErB5xB,GAFqB,CAEjB,CAAC,CAACmhC,QAAD,EAAWvP,CAAX,CAAD,KAAmB;QACxB,MAAMkV,QAAQ,GAAGlV,CAAC,CAAC,CAAD,CAAD,IAAQuP,QAAzB;QACAyF,kBAAkB,CAACvwC,GAAnB,CAAuBywC,QAAvB,EAAiC3F,QAAjC;;QACA,IAAIvP,CAAC,CAAC,CAAD,CAAD,GAAO;QAAI;QAAf,EAA+C;UAC3CmG,OAAO,CAACmJ,gBAAR,CAAyBzsC,IAAzB,CAA8B,CAAC0sC,QAAD,EAAW2F,QAAX,CAA9B;QACH;;QACD,OAAOA,QAAP;MACH,CATyB,CAA1B;IAUH;EACJ;;EACD,OAAOV,IAAP;AACH,CAxGD;;AAyGA,MAAMc,mBAAmB;EAAA,iKAAG,WAAOhtB,GAAP,EAAY+b,OAAZ,EAAqB8B,OAArB,EAA8BoP,YAA9B,EAA4Cf,IAA5C,EAAqD;IAC7E;IACA,IAAI,CAACnQ,OAAO,CAACZ,OAAR,GAAkB;IAAG;IAAtB,MAAoE,CAAxE,EAA2E;MACvE;QACI;QACAY,OAAO,CAACZ,OAAR,IAAmB;QAAG;QAAtB,CAFJ,CAGI;QACA;QACA;;QACA+Q,IAAI,GAAGgB,UAAU,CAACrP,OAAD,CAAjB;;QACA,IAAIqO,IAAI,CAACvhC,IAAT,EAAe;UACX;UACA,MAAMwiC,OAAO,GAAG9P,UAAU,EAA1B;UACA6O,IAAI,SAASA,IAAb;UACAiB,OAAO;QACV;;QACD,IAAI,CAACjB,IAAI,CAACkB,SAAV,EAAqB;UACjB;UACA;UACA;UACA;YACIvP,OAAO,CAACiO,UAAR,GAAqBI,IAAI,CAACC,QAA1B;UACH;UACDF,cAAc,CAACC,IAAD,EAAOrO,OAAP,EAAgB;UAAE;UAAlB,CAAd;UACAqO,IAAI,CAACkB,SAAL,GAAiB,IAAjB;QACH;;QACD,MAAMC,cAAc,GAAGlQ,UAAU,CAAC,gBAAD,EAAmBU,OAAO,CAACc,SAA3B,CAAjC,CAvBJ,CAwBI;QACA;QACA;;QACA;UACI5C,OAAO,CAACZ,OAAR,IAAmB;UAAE;UAArB;QACH,CA7BL,CA8BI;QACA;QACA;QACA;;QACA,IAAI;UACA,IAAI+Q,IAAJ,CAASnQ,OAAT;QACH,CAFD,CAGA,OAAOthB,CAAP,EAAU;UACNgiB,YAAY,CAAChiB,CAAD,CAAZ;QACH;;QACD;UACIshB,OAAO,CAACZ,OAAR,IAAmB,CAAC;UAAE;UAAtB;QACH;QACD;UACIY,OAAO,CAACZ,OAAR,IAAmB;UAAI;UAAvB;QACH;QACDkS,cAAc;QACdC,qBAAqB,CAACvR,OAAO,CAACQ,cAAT,CAArB;MACH;;MACD,IAAI2P,IAAI,CAAClqB,KAAT,EAAgB;QACZ;QACA,IAAIA,KAAK,GAAGkqB,IAAI,CAAClqB,KAAjB;;QACA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;UAC3BA,KAAK,GAAGA,KAAK,CAAE+Z,OAAO,CAAC6C,UAAR,GAAqBI,WAAW,CAAChf,GAAD,CAAlC,CAAb;QACH;;QACD,MAAM0a,OAAO,GAAGqD,UAAU,CAACF,OAAD,EAAU9B,OAAO,CAAC6C,UAAlB,CAA1B;;QACA,IAAI,CAACtmB,MAAM,CAAC4lB,GAAP,CAAWxD,OAAX,CAAL,EAA0B;UACtB,MAAM6S,iBAAiB,GAAGpQ,UAAU,CAAC,gBAAD,EAAmBU,OAAO,CAACc,SAA3B,CAApC;UACAnB,aAAa,CAAC9C,OAAD,EAAU1Y,KAAV,EAAiB,CAAC,EAAE6b,OAAO,CAAC1C,OAAR,GAAkB;UAAE;UAAtB,CAAlB,CAAb;UACAoS,iBAAiB;QACpB;MACJ;IACJ,CAjE4E,CAkE7E;;;IACA,MAAMzF,iBAAiB,GAAG/L,OAAO,CAACmM,mBAAlC;;IACA,MAAMsF,QAAQ,GAAG,MAAMxF,cAAc,CAACjM,OAAD,EAAU,IAAV,CAArC;;IACA,IAAI+L,iBAAiB,IAAIA,iBAAiB,CAAC,MAAD,CAA1C,EAAoD;MAChD;MACA;MACA;MACA;MACA;MACA;MACAA,iBAAiB,CAAC,MAAD,CAAjB,CAA0BvtC,IAA1B,CAA+BizC,QAA/B;IACH,CARD,MASK;MACDA,QAAQ;IACX;EACJ,CAjFwB;;EAAA,gBAAnBR,mBAAmB;IAAA;EAAA;AAAA,GAAzB;;AAkFA,MAAMM,qBAAqB,GAAIzwC,QAAD,IAAc;EACxC;IACI0rC,QAAQ,CAAC1rC,QAAD,EAAW,mBAAX,CAAR;EACH;AACJ,CAJD;;AAKA,MAAM4wC,iBAAiB,GAAIztB,GAAD,IAAS;EAC/B,IAAI,CAACkb,GAAG,CAACC,OAAJ,GAAc;EAAE;EAAjB,MAA6D,CAAjE,EAAoE;IAChE,MAAMY,OAAO,GAAGqD,UAAU,CAACpf,GAAD,CAA1B;IACA,MAAM6d,OAAO,GAAG9B,OAAO,CAACyC,SAAxB;IACA,MAAMkP,YAAY,GAAGvQ,UAAU,CAAC,mBAAD,EAAsBU,OAAO,CAACc,SAA9B,CAA/B;;IACA,IAAI,EAAE5C,OAAO,CAACZ,OAAR,GAAkB;IAAE;IAAtB,CAAJ,EAA0D;MACtD;MACAY,OAAO,CAACZ,OAAR,IAAmB;MAAE;MAArB;MACA,IAAI4O,MAAJ;MACA;QACIA,MAAM,GAAG/pB,GAAG,CAAC2T,YAAJ,CAAiBmJ,UAAjB,CAAT;;QACA,IAAIiN,MAAJ,EAAY;UACR,IAAIlM,OAAO,CAAC1C,OAAR,GAAkB;UAAE;UAAxB,EAAgE;YAC5D,MAAMT,OAAO,GAAGiD,QAAQ,CAAC3d,GAAG,CAACkU,UAAL,EAAiB2J,OAAjB,EAA0B7d,GAAG,CAAC2T,YAAJ,CAAiB,QAAjB,CAA1B,CAAxB;YAEA3T,GAAG,CAAC5lB,SAAJ,CAAcK,MAAd,CAAqBigC,OAAO,GAAG,IAA/B,EAAqCA,OAAO,GAAG,IAA/C;UACH;;UACDoP,uBAAuB,CAAC9pB,GAAD,EAAM6d,OAAO,CAACc,SAAd,EAAyBoL,MAAzB,EAAiChO,OAAjC,CAAvB;QACH;MACJ;;MACD,IAAI,CAACgO,MAAL,EAAa;QACT;QACA;QACA;QACA;QACA,IAAKlM,OAAO,CAAC1C,OAAR,IAAmB;QAAE;QAAF,EAAsC;QAAE;QAA3D,CAAL,EAAsG;UAClGwS,mBAAmB,CAAC3tB,GAAD,CAAnB;QACH;MACJ;;MACD;QACI;QACA;QACA,IAAI8nB,iBAAiB,GAAG9nB,GAAxB;;QACA,OAAQ8nB,iBAAiB,GAAGA,iBAAiB,CAAC1f,UAAlB,IAAgC0f,iBAAiB,CAAC3J,IAA9E,EAAqF;UACjF;UACA;UACA,IAAK2J,iBAAiB,CAACpsB,QAAlB,KAA+B;UAAE;UAAjC,GACDosB,iBAAiB,CAACpU,YAAlB,CAA+B,MAA/B,CADC,IAEDoU,iBAAiB,CAAC,KAAD,CAFjB,IAGAA,iBAAiB,CAAC,KAAD,CAHrB,EAG8B;YAC1B;YACA;YACAD,gBAAgB,CAAC9L,OAAD,EAAWA,OAAO,CAACmM,mBAAR,GAA8BJ,iBAAzC,CAAhB;YACA;UACH;QACJ;MACJ,CAzCqD,CA0CtD;MACA;;MACA,IAAIjK,OAAO,CAAC6N,SAAZ,EAAuB;QACnBzvC,MAAM,CAACowC,OAAP,CAAexO,OAAO,CAAC6N,SAAvB,EAAkC5lC,GAAlC,CAAsC,CAAC,CAAC87B,UAAD,EAAa,CAAC0K,WAAD,CAAb,CAAD,KAAiC;UACnE,IAAIA,WAAW,GAAG;UAAG;UAAjB,GAA4CtsB,GAAG,CAACyB,cAAJ,CAAmBmgB,UAAnB,CAAhD,EAAgF;YAC5E,MAAMlqC,KAAK,GAAGsoB,GAAG,CAAC4hB,UAAD,CAAjB;YACA,OAAO5hB,GAAG,CAAC4hB,UAAD,CAAV;YACA5hB,GAAG,CAAC4hB,UAAD,CAAH,GAAkBlqC,KAAlB;UACH;QACJ,CAND;MAOH;;MACD;QACI;QACA;QACA;QACA;QACA4xC,QAAQ,CAAC,MAAM0D,mBAAmB,CAAChtB,GAAD,EAAM+b,OAAN,EAAe8B,OAAf,CAA1B,CAAR;MACH;IACJ,CA5DD,MA6DK;MACD;MACA;MACA;MACA/B,qBAAqB,CAAC9b,GAAD,EAAM+b,OAAN,EAAe8B,OAAO,CAAC+P,WAAvB,CAArB,CAJC,CAKD;;MACAN,qBAAqB,CAACvR,OAAO,CAACQ,cAAT,CAArB;IACH;;IACDmR,YAAY;EACf;AACJ,CA5ED;;AA6EA,MAAMC,mBAAmB,GAAI3tB,GAAD,IAAS;EACjC;EACA;EACA;EACA;EACA;EACA;EACA,MAAM6tB,aAAa,GAAI7tB,GAAG,CAAC,MAAD,CAAH,GAAcpS,GAAG,CAACkgC,aAAJ,CAAkB,EAAlB,CAArC;EACAD,aAAa,CAAC,MAAD,CAAb,GAAwB,IAAxB;EACA7tB,GAAG,CAACqe,YAAJ,CAAiBwP,aAAjB,EAAgC7tB,GAAG,CAAC+tB,UAApC;AACH,CAVD;;AAWA,MAAMC,oBAAoB,GAAIhuB,GAAD,IAAS;EAClC,IAAI,CAACkb,GAAG,CAACC,OAAJ,GAAc;EAAE;EAAjB,MAA6D,CAAjE,EAAoE;IAChE,MAAMY,OAAO,GAAGqD,UAAU,CAACpf,GAAD,CAA1B;IACA,MAAMnjB,QAAQ,GAAGk/B,OAAO,CAACQ,cAAzB;IACA;MACI,IAAIR,OAAO,CAACO,aAAZ,EAA2B;QACvBP,OAAO,CAACO,aAAR,CAAsBx2B,GAAtB,CAA2BmoC,UAAD,IAAgBA,UAAU,EAApD;QACAlS,OAAO,CAACO,aAAR,GAAwBn/B,SAAxB;MACH;IACJ;IACD;MACIorC,QAAQ,CAAC1rC,QAAD,EAAW,sBAAX,CAAR;IACH;EACJ;AACJ,CAdD;;AAeA,MAAMqxC,aAAa,GAAG,CAACC,WAAD,EAAcx8B,OAAO,GAAG,EAAxB,KAA+B;EACjD,MAAMy8B,YAAY,GAAGjR,UAAU,EAA/B;EACA,MAAMkR,OAAO,GAAG,EAAhB;EACA,MAAMzuB,OAAO,GAAGjO,OAAO,CAACiO,OAAR,IAAmB,EAAnC;EACA,MAAMxiB,cAAc,GAAG+Q,GAAG,CAAC/Q,cAA3B;EACA,MAAMumB,IAAI,GAAG/V,GAAG,CAAC+V,IAAjB;EACA,MAAM2qB,WAAW,GAAG,aAAc3qB,IAAI,CAACM,aAAL,CAAmB,eAAnB,CAAlC;EACA,MAAMsqB,eAAe,GAAG,aAAc3gC,GAAG,CAACyW,aAAJ,CAAkB,OAAlB,CAAtC;EACA,MAAMmqB,0BAA0B,GAAG,EAAnC;EACA,MAAMl2B,MAAM,GAAG,aAAc1K,GAAG,CAAC2sB,gBAAJ,CAAsB,IAAGwC,iBAAkB,GAA3C,CAA7B;EACA,IAAI0R,eAAJ;EACA,IAAIC,eAAe,GAAG,IAAtB;EACA,IAAIr0C,CAAC,GAAG,CAAR;EACA4B,MAAM,CAACoJ,MAAP,CAAc61B,GAAd,EAAmBvpB,OAAnB;EACAupB,GAAG,CAACE,cAAJ,GAAqB,IAAIuT,GAAJ,CAAQh9B,OAAO,CAACi9B,YAAR,IAAwB,IAAhC,EAAsChhC,GAAG,CAACihC,OAA1C,EAAmDt/B,IAAxE;EACA;IACI;IACA;IACA2rB,GAAG,CAACC,OAAJ,IAAe;IAAE;IAAjB;EACH;EACD;IACI,OAAO9gC,CAAC,GAAGie,MAAM,CAACve,MAAlB,EAA0BM,CAAC,EAA3B,EAA+B;MAC3BmjC,aAAa,CAACllB,MAAM,CAACje,CAAD,CAAN,CAAUs5B,YAAV,CAAuBoJ,iBAAvB,CAAD,EAA4C+B,qBAAqB,CAACxmB,MAAM,CAACje,CAAD,CAAN,CAAU+jC,SAAX,CAAjE,EAAwF,IAAxF,CAAb;IACH;EACJ;EACD+P,WAAW,CAACroC,GAAZ,CAAiBgpC,UAAD,IAAgB;IAC5BA,UAAU,CAAC,CAAD,CAAV,CAAchpC,GAAd,CAAmBipC,WAAD,IAAiB;MAC/B,MAAMlR,OAAO,GAAG;QACZ1C,OAAO,EAAE4T,WAAW,CAAC,CAAD,CADR;QAEZpQ,SAAS,EAAEoQ,WAAW,CAAC,CAAD,CAFV;QAGZrD,SAAS,EAAEqD,WAAW,CAAC,CAAD,CAHV;QAIZnB,WAAW,EAAEmB,WAAW,CAAC,CAAD;MAJZ,CAAhB;MAMA;QACIlR,OAAO,CAAC6N,SAAR,GAAoBqD,WAAW,CAAC,CAAD,CAA/B;MACH;MACD;QACIlR,OAAO,CAAC+P,WAAR,GAAsBmB,WAAW,CAAC,CAAD,CAAjC;MACH;MACD;QACIlR,OAAO,CAACmJ,gBAAR,GAA2B,EAA3B;MACH;MACD;QACInJ,OAAO,CAACiO,UAAR,GAAqB,EAArB;MACH;MACD,MAAM7uC,OAAO,GAAG4gC,OAAO,CAACc,SAAxB;MACA,MAAMqQ,WAAW,GAAG,cAAcC,WAAd,CAA0B;QAC1C;QACA73C,WAAW,CAAC83C,IAAD,EAAO;UACd;UACA,MAAMA,IAAN;UACAA,IAAI,GAAG,IAAP;UACAC,YAAY,CAACD,IAAD,EAAOrR,OAAP,CAAZ;;UACA,IAAIA,OAAO,CAAC1C,OAAR,GAAkB;UAAE;UAAxB,EAAgE;YAC5D;YACA;YACA;YACA;YACA;cACI;gBACI+T,IAAI,CAAC9a,YAAL,CAAkB;kBACdtf,IAAI,EAAE,MADQ;kBAEds6B,cAAc,EAAE,CAAC,EAAEvR,OAAO,CAAC1C,OAAR,GAAkB;kBAAG;kBAAvB;gBAFH,CAAlB;cAIH;YACJ;UACJ;QACJ;;QACDsS,iBAAiB,GAAG;UAChB,IAAIgB,eAAJ,EAAqB;YACjBnhB,YAAY,CAACmhB,eAAD,CAAZ;YACAA,eAAe,GAAG,IAAlB;UACH;;UACD,IAAIC,eAAJ,EAAqB;YACjB;YACAF,0BAA0B,CAACj0C,IAA3B,CAAgC,IAAhC;UACH,CAHD,MAIK;YACD2gC,GAAG,CAACpb,GAAJ,CAAQ,MAAM2tB,iBAAiB,CAAC,IAAD,CAA/B;UACH;QACJ;;QACDO,oBAAoB,GAAG;UACnB9S,GAAG,CAACpb,GAAJ,CAAQ,MAAMkuB,oBAAoB,CAAC,IAAD,CAAlC;QACH;;QACD/4C,gBAAgB,GAAG;UACf,OAAOmqC,UAAU,CAAC,IAAD,CAAV,CAAiBiQ,gBAAxB;QACH;;MAxCyC,CAA9C;MA0CAxR,OAAO,CAACyR,cAAR,GAAyBR,UAAU,CAAC,CAAD,CAAnC;;MACA,IAAI,CAAClvB,OAAO,CAACvV,QAAR,CAAiBpN,OAAjB,CAAD,IAA8B,CAACG,cAAc,CAACzE,GAAf,CAAmBsE,OAAnB,CAAnC,EAAgE;QAC5DoxC,OAAO,CAAC9zC,IAAR,CAAa0C,OAAb;QACAG,cAAc,CAACC,MAAf,CAAsBJ,OAAtB,EAA+BgvC,cAAc,CAAC+C,WAAD,EAAcnR,OAAd,EAAuB;QAAE;QAAzB,CAA7C;MACH;IACJ,CAnED;EAoEH,CArED;EAsEA;IACI0Q,eAAe,CAACnQ,SAAhB,GAA4BiQ,OAAO,GAAGpR,YAAtC;IACAsR,eAAe,CAACxhC,YAAhB,CAA6B,aAA7B,EAA4C,EAA5C;IACA4W,IAAI,CAAC0a,YAAL,CAAkBkQ,eAAlB,EAAmCD,WAAW,GAAGA,WAAW,CAAC9I,WAAf,GAA6B7hB,IAAI,CAACoqB,UAAhF;EACH,CAnGgD,CAoGjD;;EACAW,eAAe,GAAG,KAAlB;;EACA,IAAIF,0BAA0B,CAACz0C,MAA/B,EAAuC;IACnCy0C,0BAA0B,CAAC1oC,GAA3B,CAAgCq4B,IAAD,IAAUA,IAAI,CAACsP,iBAAL,EAAzC;EACH,CAFD,MAGK;IACD;MACIvS,GAAG,CAACpb,GAAJ,CAAQ,MAAO2uB,eAAe,GAAG13C,UAAU,CAACqyC,UAAD,EAAa,EAAb,CAA3C;IACH;EACJ,CA7GgD,CA8GjD;;;EACAgF,YAAY;AACf,CAhHD;;AAiHA,MAAMmB,YAAY,GAAIrnC,IAAD,IAAU;EAC3B,MAAMsnC,QAAQ,GAAG,IAAIb,GAAJ,CAAQzmC,IAAR,EAAcgzB,GAAG,CAACE,cAAlB,CAAjB;EACA,OAAOoU,QAAQ,CAACC,MAAT,KAAoBthC,GAAG,CAAC5K,QAAJ,CAAaksC,MAAjC,GAA0CD,QAAQ,CAACjgC,IAAnD,GAA0DigC,QAAQ,CAACE,QAA1E;AACH,CAHD;;AAIA,MAAMC,QAAQ,GAAG,aAAc,IAAI/rC,OAAJ,EAA/B;;AACA,MAAMw7B,UAAU,GAAI72B,GAAD,IAASonC,QAAQ,CAACh3C,GAAT,CAAa4P,GAAb,CAA5B;;AACA,MAAMqnC,gBAAgB,GAAG,CAACC,YAAD,EAAe9T,OAAf,KAA2B4T,QAAQ,CAACxzC,GAAT,CAAc4/B,OAAO,CAACQ,cAAR,GAAyBsT,YAAvC,EAAsD9T,OAAtD,CAApD;;AACA,MAAMoT,YAAY,GAAG,CAACnvB,GAAD,EAAM6d,OAAN,KAAkB;EACnC,MAAM9B,OAAO,GAAG;IACZZ,OAAO,EAAE,CADG;IAEZsD,aAAa,EAAEze,GAFH;IAGZwe,SAAS,EAAEX,OAHC;IAIZyN,gBAAgB,EAAE,IAAIj2B,GAAJ;EAJN,CAAhB;EAMA;IACI0mB,OAAO,CAAC0Q,mBAAR,GAA8B,IAAItoC,OAAJ,CAAatG,CAAD,IAAQk+B,OAAO,CAACsN,mBAAR,GAA8BxrC,CAAlD,CAA9B;EACH;EACD;IACIk+B,OAAO,CAACsT,gBAAR,GAA2B,IAAIlrC,OAAJ,CAAatG,CAAD,IAAQk+B,OAAO,CAACoN,gBAAR,GAA2BtrC,CAA/C,CAA3B;IACAmiB,GAAG,CAAC,KAAD,CAAH,GAAa,EAAb;IACAA,GAAG,CAAC,MAAD,CAAH,GAAc,EAAd;EACH;EACD8b,qBAAqB,CAAC9b,GAAD,EAAM+b,OAAN,EAAe8B,OAAO,CAAC+P,WAAvB,CAArB;EACA,OAAO+B,QAAQ,CAACxzC,GAAT,CAAa6jB,GAAb,EAAkB+b,OAAlB,CAAP;AACH,CAjBD;;AAkBA,MAAMkG,iBAAiB,GAAG,CAACjiB,GAAD,EAAM4hB,UAAN,KAAqBA,UAAU,IAAI5hB,GAA7D;;AACA,MAAMyc,YAAY,GAAG,CAAChiB,CAAD,EAAInjB,EAAJ,KAAW,CAAC,GAAGwe,OAAO,CAACyU,KAAZ,EAAmB9P,CAAnB,EAAsBnjB,EAAtB,CAAhC;;AACA,MAAMw4C,UAAU,GAAG,aAAc,IAAIz6B,GAAJ,EAAjC;;AACA,MAAM63B,UAAU,GAAG,CAACrP,OAAD,EAAU9B,OAAV,EAAmBkR,YAAnB,KAAoC;EACnD;EACA,MAAM8C,UAAU,GAAGlS,OAAO,CAACc,SAAR,CAAkBpuB,OAAlB,CAA0B,IAA1B,EAAgC,GAAhC,CAAnB;EACA,MAAMy/B,QAAQ,GAAGnS,OAAO,CAACyR,cAAzB;EACA,MAAMW,MAAM,GAAGH,UAAU,CAACn3C,GAAX,CAAeq3C,QAAf,CAAf;;EACA,IAAIC,MAAJ,EAAY;IACR,OAAOA,MAAM,CAACF,UAAD,CAAb;EACH;EACD;;;EACA,OAAO,yBAKN,KAAIC,QAAS,WALP,EAKwBrlC,IALxB,CAK8BulC,cAAD,IAAoB;IACpD;MACIJ,UAAU,CAAC3zC,GAAX,CAAe6zC,QAAf,EAAyBE,cAAzB;IACH;IACD,OAAOA,cAAc,CAACH,UAAD,CAArB;EACH,CAVM,EAUJtT,YAVI,CAAP;AAWH,CApBD;;AAqBA,MAAMnkB,MAAM,GAAG,aAAc,IAAIjD,GAAJ,EAA7B;AACA,MAAM4pB,mBAAmB,GAAG,EAA5B;AACA,MAAMkR,aAAa,GAAG,EAAtB;AACA,MAAMC,cAAc,GAAG,EAAvB;;AACA,MAAMC,SAAS,GAAG,CAACzyB,KAAD,EAAQD,KAAR,KAAmBF,EAAD,IAAQ;EACxCG,KAAK,CAACrjB,IAAN,CAAWkjB,EAAX;;EACA,IAAI,CAACwd,YAAL,EAAmB;IACfA,YAAY,GAAG,IAAf;;IACA,IAAItd,KAAK,IAAIud,GAAG,CAACC,OAAJ,GAAc;IAAE;IAA7B,EAA6D;MACzDmO,QAAQ,CAACgH,KAAD,CAAR;IACH,CAFD,MAGK;MACDpV,GAAG,CAACvkC,GAAJ,CAAQ25C,KAAR;IACH;EACJ;AACJ,CAXD;;AAYA,MAAMC,OAAO,GAAI3yB,KAAD,IAAW;EACvB,KAAK,IAAIvjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGujB,KAAK,CAAC7jB,MAA1B,EAAkCM,CAAC,EAAnC,EAAuC;IACnC,IAAI;MACAujB,KAAK,CAACvjB,CAAD,CAAL,CAASm2C,WAAW,CAAC3a,GAAZ,EAAT;IACH,CAFD,CAGA,OAAOpb,CAAP,EAAU;MACNgiB,YAAY,CAAChiB,CAAD,CAAZ;IACH;EACJ;;EACDmD,KAAK,CAAC7jB,MAAN,GAAe,CAAf;AACH,CAVD;;AAWA,MAAMu2C,KAAK,GAAG,MAAM;EAChB;EACA;EACA;EACAC,OAAO,CAACJ,aAAD,CAAP,CAJgB,CAKhB;;EACA;IACII,OAAO,CAACH,cAAD,CAAP;;IACA,IAAKnV,YAAY,GAAGkV,aAAa,CAACp2C,MAAd,GAAuB,CAA3C,EAA+C;MAC3C;MACA;MACAmhC,GAAG,CAACvkC,GAAJ,CAAQ25C,KAAR;IACH;EACJ;AACJ,CAdD;;AAeA,MAAMhH,QAAQ,GAAG,aAAe7rB,EAAD,IAAQie,cAAc,GAAG/wB,IAAjB,CAAsB8S,EAAtB,CAAvC;;AACA,MAAMgzB,QAAQ,GAAG,aAAcJ,SAAS,CAACF,aAAD,EAAgB,KAAhB,CAAxC;AACA,MAAM9H,SAAS,GAAG,aAAcgI,SAAS,CAACD,cAAD,EAAiB,IAAjB,CAAzC;AACA,MAAMM,KAAK,GAAG;EACVC,KAAK,EAAE,KADG;EAEVC,SAAS,EAAE,IAFD;EAGVC,QAAQ,EAAE,KAHA;EAIVC,SAAS,EAAE;AAJD,CAAd;;;;;;;;;;;;;;;;AC3tEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,MAAMI,iBAAiB,GAAIC,eAAD,IAAqB;EAC7C,IAAI;IACF,IAAIA,eAAe,YAAYr7C,eAA/B,EAAgD;MAC9C,OAAOq7C,eAAe,CAACz5C,KAAvB;IACD;;IACD,IAAI,CAAC05C,kBAAkB,EAAnB,IAAyB,OAAOD,eAAP,KAA2B,QAApD,IAAgEA,eAAe,KAAK,EAAxF,EAA4F;MAC1F,OAAOA,eAAP;IACD;IACD;AACJ;AACA;AACA;AACA;;;IACI,MAAME,gBAAgB,GAAGjtB,QAAQ,CAACktB,sBAAT,EAAzB;IACA,MAAMC,UAAU,GAAGntB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAnB;IACAgtB,gBAAgB,CAAC7rC,WAAjB,CAA6B+rC,UAA7B;IACAA,UAAU,CAACnT,SAAX,GAAuB+S,eAAvB;IACA;AACJ;AACA;AACA;;IACIK,WAAW,CAACv4C,OAAZ,CAAqBw4C,UAAD,IAAgB;MAClC,MAAMC,mBAAmB,GAAGL,gBAAgB,CAAC9W,gBAAjB,CAAkCkX,UAAlC,CAA5B;;MACA,KAAK,IAAIE,YAAY,GAAGD,mBAAmB,CAAC33C,MAApB,GAA6B,CAArD,EAAwD43C,YAAY,IAAI,CAAxE,EAA2EA,YAAY,EAAvF,EAA2F;QACzF,MAAMh4C,OAAO,GAAG+3C,mBAAmB,CAACC,YAAD,CAAnC;;QACA,IAAIh4C,OAAO,CAACyuB,UAAZ,EAAwB;UACtBzuB,OAAO,CAACyuB,UAAR,CAAmBC,WAAnB,CAA+B1uB,OAA/B;QACD,CAFD,MAGK;UACH03C,gBAAgB,CAAChpB,WAAjB,CAA6B1uB,OAA7B;QACD;QACD;AACR;AACA;AACA;AACA;;;QACQ,MAAMi4C,aAAa,GAAGC,kBAAkB,CAACl4C,OAAD,CAAxC;QACA;;QACA,KAAK,IAAIypC,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAGwO,aAAa,CAAC73C,MAApD,EAA4DqpC,UAAU,EAAtE,EAA0E;UACxE0O,eAAe,CAACF,aAAa,CAACxO,UAAD,CAAd,CAAf;QACD;MACF;IACF,CArBD;IAsBA;AACJ;AACA;AACA;IACI;;IACA,MAAM2O,UAAU,GAAGF,kBAAkB,CAACR,gBAAD,CAArC;IACA;;IACA,KAAK,IAAIjO,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAG2O,UAAU,CAACh4C,MAAjD,EAAyDqpC,UAAU,EAAnE,EAAuE;MACrE0O,eAAe,CAACC,UAAU,CAAC3O,UAAD,CAAX,CAAf;IACD,CAnDC,CAoDF;;;IACA,MAAM4O,WAAW,GAAG5tB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAApB;IACA2tB,WAAW,CAACxsC,WAAZ,CAAwB6rC,gBAAxB,EAtDE,CAuDF;;IACA,MAAMY,WAAW,GAAGD,WAAW,CAAC/tB,aAAZ,CAA0B,KAA1B,CAApB;IACA,OAAOguB,WAAW,KAAK,IAAhB,GAAuBA,WAAW,CAAC7T,SAAnC,GAA+C4T,WAAW,CAAC5T,SAAlE;EACD,CA1DD,CA2DA,OAAO8T,GAAP,EAAY;IACVp8B,OAAO,CAACyU,KAAR,CAAc2nB,GAAd;IACA,OAAO,EAAP;EACD;AACF,CAhED;AAiEA;AACA;AACA;AACA;AACA;;;AACA,MAAMJ,eAAe,GAAIn4C,OAAD,IAAa;EACnC;EACA,IAAIA,OAAO,CAAC+hB,QAAR,IAAoB/hB,OAAO,CAAC+hB,QAAR,KAAqB,CAA7C,EAAgD;IAC9C;EACD;;EACD,KAAK,IAAIrhB,CAAC,GAAGV,OAAO,CAAC45B,UAAR,CAAmBx5B,MAAnB,GAA4B,CAAzC,EAA4CM,CAAC,IAAI,CAAjD,EAAoDA,CAAC,EAArD,EAAyD;IACvD,MAAM6sC,SAAS,GAAGvtC,OAAO,CAAC45B,UAAR,CAAmBt8B,IAAnB,CAAwBoD,CAAxB,CAAlB;IACA,MAAM83C,aAAa,GAAGjL,SAAS,CAACj0B,IAAhC,CAFuD,CAGvD;;IACA,IAAI,CAACm/B,iBAAiB,CAAC/nC,QAAlB,CAA2B8nC,aAAa,CAACtwB,WAAd,EAA3B,CAAL,EAA8D;MAC5DloB,OAAO,CAACi6B,eAAR,CAAwBue,aAAxB;MACA;IACD,CAPsD,CAQvD;IACA;;;IACA,MAAME,cAAc,GAAGnL,SAAS,CAACxvC,KAAjC;IACA;;IACA,IAAI26C,cAAc,IAAI,IAAlB,IAA0BA,cAAc,CAACxwB,WAAf,GAA6BxX,QAA7B,CAAsC,aAAtC,CAA9B,EAAoF;MAClF1Q,OAAO,CAACi6B,eAAR,CAAwBue,aAAxB;IACD;EACF;EACD;AACF;AACA;;;EACE,MAAMP,aAAa,GAAGC,kBAAkB,CAACl4C,OAAD,CAAxC;EACA;;EACA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu3C,aAAa,CAAC73C,MAAlC,EAA0CM,CAAC,EAA3C,EAA+C;IAC7Cy3C,eAAe,CAACF,aAAa,CAACv3C,CAAD,CAAd,CAAf;EACD;AACF,CA7BD;AA8BA;AACA;AACA;AACA;;;AACA,MAAMw3C,kBAAkB,GAAIv6C,EAAD,IAAQ;EACjC,OAAOA,EAAE,CAACge,QAAH,IAAe,IAAf,GAAsBhe,EAAE,CAACge,QAAzB,GAAoChe,EAAE,CAACusC,UAA9C;AACD,CAFD;;AAGA,MAAMuN,kBAAkB,GAAG,MAAM;EAC/B,IAAIx4C,EAAJ;;EACA,MAAMuV,GAAG,GAAGX,MAAZ;EACA,MAAME,MAAM,GAAG,CAAC9U,EAAE,GAAGuV,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACV,KAApD,MAA+D,IAA/D,IAAuE7U,EAAE,KAAK,KAAK,CAAnF,GAAuF,KAAK,CAA5F,GAAgGA,EAAE,CAAC8U,MAAlH;;EACA,IAAIA,MAAJ,EAAY;IACV,IAAIA,MAAM,CAAC/U,GAAX,EAAgB;MACd,OAAO+U,MAAM,CAAC/U,GAAP,CAAW,kBAAX,EAA+B,IAA/B,CAAP;IACD,CAFD,MAGK;MACH,OAAO+U,MAAM,CAAC4kC,gBAAP,KAA4B,IAA5B,IAAoC5kC,MAAM,CAAC4kC,gBAAP,KAA4Bn1C,SAAvE;IACD;EACF;;EACD,OAAO,IAAP;AACD,CAbD;;AAcA,MAAMi1C,iBAAiB,GAAG,CAAC,OAAD,EAAU,IAAV,EAAgB,MAAhB,EAAwB,KAAxB,EAA+B,MAA/B,EAAuC,MAAvC,CAA1B;AACA,MAAMZ,WAAW,GAAG,CAAC,QAAD,EAAW,OAAX,EAAoB,QAApB,EAA8B,MAA9B,EAAsC,MAAtC,EAA8C,QAA9C,EAAwD,OAAxD,CAApB;;AACA,MAAM17C,eAAN,CAAsB;EACpBsB,WAAW,CAACM,KAAD,EAAQ;IACjB,KAAKA,KAAL,GAAaA,KAAb;EACD;;AAHmB;;;;;;;;;;;;;;;;;;AClItB;AACA;AACA;AACA;AACA;;AAEA,MAAMwO,gBAAgB,GAAG,CAAC5O,EAAD,EAAKyF,SAAL,EAAgBwR,QAAhB,EAA0BhR,IAA1B,KAAmC;EAC1D;EACA;EACA,MAAMi1C,YAAY,GAAGC,eAAe,CAACn7C,EAAD,CAAf,GACjB;IACAu5B,OAAO,EAAE,CAAC,CAACtzB,IAAI,CAACszB,OADhB;IAEAjO,OAAO,EAAE,CAAC,CAACrlB,IAAI,CAACqlB;EAFhB,CADiB,GAKjB,CAAC,CAACrlB,IAAI,CAACszB,OALX;EAMA,IAAIn2B,GAAJ;EACA,IAAID,MAAJ;;EACA,IAAInD,EAAE,CAAC,iCAAD,CAAN,EAA2C;IACzCoD,GAAG,GAAG,iCAAN;IACAD,MAAM,GAAG,oCAAT;EACD,CAHD,MAIK;IACHC,GAAG,GAAG,kBAAN;IACAD,MAAM,GAAG,qBAAT;EACD;;EACDnD,EAAE,CAACoD,GAAD,CAAF,CAAQqC,SAAR,EAAmBwR,QAAnB,EAA6BikC,YAA7B;EACA,OAAO,MAAM;IACXl7C,EAAE,CAACmD,MAAD,CAAF,CAAWsC,SAAX,EAAsBwR,QAAtB,EAAgCikC,YAAhC;EACD,CAFD;AAGD,CAvBD;;AAwBA,MAAMC,eAAe,GAAI13B,IAAD,IAAU;EAChC,IAAI23B,SAAS,KAAKv1C,SAAlB,EAA6B;IAC3B,IAAI;MACF,MAAMI,IAAI,GAAGtB,MAAM,CAACC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;QAChDvD,GAAG,EAAE,MAAM;UACT+5C,SAAS,GAAG,IAAZ;QACD;MAH+C,CAArC,CAAb;MAKA33B,IAAI,CAAC7U,gBAAL,CAAsB,UAAtB,EAAkC,MAAM;QACtC;MACD,CAFD,EAEG3I,IAFH;IAGD,CATD,CAUA,OAAOkd,CAAP,EAAU;MACRi4B,SAAS,GAAG,KAAZ;IACD;EACF;;EACD,OAAO,CAAC,CAACA,SAAT;AACD,CAjBD;;AAkBA,IAAIA,SAAJ;;AAEA,MAAMC,UAAU,GAAG,IAAnB;;AACA,MAAMC,mBAAmB,GAAG,CAACt7C,EAAD,EAAKu7C,WAAL,EAAkBC,WAAlB,EAA+BC,SAA/B,EAA0CphC,OAA1C,KAAsD;EAChF,IAAIqhC,YAAJ;EACA,IAAIC,WAAJ;EACA,IAAIC,UAAJ;EACA,IAAIC,aAAJ;EACA,IAAIC,YAAJ;EACA,IAAIC,WAAJ;EACA,IAAIC,SAAJ;EACA,IAAIC,cAAc,GAAG,CAArB;;EACA,MAAMC,gBAAgB,GAAIxtC,EAAD,IAAQ;IAC/ButC,cAAc,GAAGxd,IAAI,CAACF,GAAL,KAAa8c,UAA9B;;IACA,IAAI,CAACE,WAAW,CAAC7sC,EAAD,CAAhB,EAAsB;MACpB;IACD;;IACD,IAAI,CAACitC,WAAD,IAAgBH,WAApB,EAAiC;MAC/BG,WAAW,GAAG/sC,gBAAgB,CAAC5O,EAAD,EAAK,WAAL,EAAkBw7C,WAAlB,EAA+BnhC,OAA/B,CAA9B;IACD;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;IACI,IAAI,CAACuhC,UAAL,EAAiB;MACfA,UAAU,GAAGhtC,gBAAgB,CAACF,EAAE,CAAC+c,MAAJ,EAAY,UAAZ,EAAwB0wB,cAAxB,EAAwC9hC,OAAxC,CAA7B;IACD;;IACD,IAAI,CAACwhC,aAAL,EAAoB;MAClBA,aAAa,GAAGjtC,gBAAgB,CAACF,EAAE,CAAC+c,MAAJ,EAAY,aAAZ,EAA2B0wB,cAA3B,EAA2C9hC,OAA3C,CAAhC;IACD;EACF,CAvBD;;EAwBA,MAAM+hC,eAAe,GAAI1tC,EAAD,IAAQ;IAC9B,IAAIutC,cAAc,GAAGxd,IAAI,CAACF,GAAL,EAArB,EAAiC;MAC/B;IACD;;IACD,IAAI,CAACgd,WAAW,CAAC7sC,EAAD,CAAhB,EAAsB;MACpB;IACD;;IACD,IAAI,CAACqtC,WAAD,IAAgBP,WAApB,EAAiC;MAC/BO,WAAW,GAAGntC,gBAAgB,CAACytC,WAAW,CAACr8C,EAAD,CAAZ,EAAkB,WAAlB,EAA+Bw7C,WAA/B,EAA4CnhC,OAA5C,CAA9B;IACD;;IACD,IAAI,CAAC2hC,SAAL,EAAgB;MACdA,SAAS,GAAGptC,gBAAgB,CAACytC,WAAW,CAACr8C,EAAD,CAAZ,EAAkB,SAAlB,EAA6Bs8C,aAA7B,EAA4CjiC,OAA5C,CAA5B;IACD;EACF,CAbD;;EAcA,MAAM8hC,cAAc,GAAIztC,EAAD,IAAQ;IAC7B6tC,SAAS;;IACT,IAAId,SAAJ,EAAe;MACbA,SAAS,CAAC/sC,EAAD,CAAT;IACD;EACF,CALD;;EAMA,MAAM4tC,aAAa,GAAI5tC,EAAD,IAAQ;IAC5B8tC,SAAS;;IACT,IAAIf,SAAJ,EAAe;MACbA,SAAS,CAAC/sC,EAAD,CAAT;IACD;EACF,CALD;;EAMA,MAAM6tC,SAAS,GAAG,MAAM;IACtB,IAAIZ,WAAJ,EAAiB;MACfA,WAAW;IACZ;;IACD,IAAIC,UAAJ,EAAgB;MACdA,UAAU;IACX;;IACD,IAAIC,aAAJ,EAAmB;MACjBA,aAAa;IACd;;IACDF,WAAW,GAAGC,UAAU,GAAGC,aAAa,GAAGh2C,SAA3C;EACD,CAXD;;EAYA,MAAM22C,SAAS,GAAG,MAAM;IACtB,IAAIT,WAAJ,EAAiB;MACfA,WAAW;IACZ;;IACD,IAAIC,SAAJ,EAAe;MACbA,SAAS;IACV;;IACDD,WAAW,GAAGC,SAAS,GAAGn2C,SAA1B;EACD,CARD;;EASA,MAAM0wB,IAAI,GAAG,MAAM;IACjBgmB,SAAS;IACTC,SAAS;EACV,CAHD;;EAIA,MAAMj3B,MAAM,GAAG,CAACG,SAAS,GAAG,IAAb,KAAsB;IACnC,IAAI,CAACA,SAAL,EAAgB;MACd,IAAIg2B,YAAJ,EAAkB;QAChBA,YAAY;MACb;;MACD,IAAII,YAAJ,EAAkB;QAChBA,YAAY;MACb;;MACDJ,YAAY,GAAGI,YAAY,GAAGj2C,SAA9B;MACA0wB,IAAI;IACL,CATD,MAUK;MACH,IAAI,CAACmlB,YAAL,EAAmB;QACjBA,YAAY,GAAG9sC,gBAAgB,CAAC5O,EAAD,EAAK,YAAL,EAAmBk8C,gBAAnB,EAAqC7hC,OAArC,CAA/B;MACD;;MACD,IAAI,CAACyhC,YAAL,EAAmB;QACjBA,YAAY,GAAGltC,gBAAgB,CAAC5O,EAAD,EAAK,WAAL,EAAkBo8C,eAAlB,EAAmC/hC,OAAnC,CAA/B;MACD;IACF;EACF,CAnBD;;EAoBA,MAAMlN,OAAO,GAAG,MAAM;IACpBoY,MAAM,CAAC,KAAD,CAAN;IACAk2B,SAAS,GAAGD,WAAW,GAAGD,WAAW,GAAG11C,SAAxC;EACD,CAHD;;EAIA,OAAO;IACL0f,MADK;IAELgR,IAFK;IAGLppB;EAHK,CAAP;AAKD,CAjHD;;AAkHA,MAAMkvC,WAAW,GAAI54B,IAAD,IAAU;EAC5B,OAAOA,IAAI,YAAYg5B,QAAhB,GAA2Bh5B,IAA3B,GAAkCA,IAAI,CAACoJ,aAA9C;AACD,CAFD;;AAIA,MAAM6vB,mBAAmB,GAAG,CAACptC,SAAD,EAAYqtC,MAAZ,EAAoBC,QAApB,KAAiC;EAC3D,MAAMC,OAAO,GAAGD,QAAQ,IAAI7nB,IAAI,CAAC0D,EAAL,GAAU,GAAd,CAAxB;EACA,MAAMqkB,MAAM,GAAGxtC,SAAS,KAAK,GAA7B;EACA,MAAMytC,SAAS,GAAGhoB,IAAI,CAACyD,GAAL,CAASqkB,OAAT,CAAlB;EACA,MAAMG,SAAS,GAAGL,MAAM,GAAGA,MAA3B;EACA,IAAIM,MAAM,GAAG,CAAb;EACA,IAAIC,MAAM,GAAG,CAAb;EACA,IAAIC,KAAK,GAAG,KAAZ;EACA,IAAIC,KAAK,GAAG,CAAZ;EACA,OAAO;IACL/jB,KAAK,CAACwF,CAAD,EAAIE,CAAJ,EAAO;MACVke,MAAM,GAAGpe,CAAT;MACAqe,MAAM,GAAGne,CAAT;MACAqe,KAAK,GAAG,CAAR;MACAD,KAAK,GAAG,IAAR;IACD,CANI;;IAOLE,MAAM,CAACxe,CAAD,EAAIE,CAAJ,EAAO;MACX,IAAI,CAACoe,KAAL,EAAY;QACV,OAAO,KAAP;MACD;;MACD,MAAMG,MAAM,GAAGze,CAAC,GAAGoe,MAAnB;MACA,MAAMM,MAAM,GAAGxe,CAAC,GAAGme,MAAnB;MACA,MAAMM,QAAQ,GAAGF,MAAM,GAAGA,MAAT,GAAkBC,MAAM,GAAGA,MAA5C;;MACA,IAAIC,QAAQ,GAAGR,SAAf,EAA0B;QACxB,OAAO,KAAP;MACD;;MACD,MAAMS,UAAU,GAAG1oB,IAAI,CAACmD,IAAL,CAAUslB,QAAV,CAAnB;MACA,MAAME,MAAM,GAAG,CAACZ,MAAM,GAAGQ,MAAH,GAAYC,MAAnB,IAA6BE,UAA5C;;MACA,IAAIC,MAAM,GAAGX,SAAb,EAAwB;QACtBK,KAAK,GAAG,CAAR;MACD,CAFD,MAGK,IAAIM,MAAM,GAAG,CAACX,SAAd,EAAyB;QAC5BK,KAAK,GAAG,CAAC,CAAT;MACD,CAFI,MAGA;QACHA,KAAK,GAAG,CAAR;MACD;;MACDD,KAAK,GAAG,KAAR;MACA,OAAO,IAAP;IACD,CA9BI;;IA+BLQ,SAAS,GAAG;MACV,OAAOP,KAAK,KAAK,CAAjB;IACD,CAjCI;;IAkCLprB,YAAY,GAAG;MACb,OAAOorB,KAAP;IACD;;EApCI,CAAP;AAsCD,CA/CD;;AAiDA,MAAM9+C,aAAa,GAAI8X,MAAD,IAAY;EAChC,IAAIwnC,cAAc,GAAG,KAArB;EACA,IAAIC,aAAa,GAAG,KAApB;EACA,IAAIC,aAAa,GAAG,IAApB;EACA,IAAIC,YAAY,GAAG,KAAnB;EACA,MAAMC,WAAW,GAAGr5C,MAAM,CAACoJ,MAAP,CAAc;IAAEkrB,aAAa,EAAE,KAAjB;IAAwB3pB,SAAS,EAAE,GAAnC;IAAwC2uC,eAAe,EAAE,CAAzD;IAA4D3yB,OAAO,EAAE,IAArE;IAA2EsxB,QAAQ,EAAE,EAArF;IAAyFI,SAAS,EAAE;EAApG,CAAd,EAAwH5mC,MAAxH,CAApB;EACA,MAAM2G,QAAQ,GAAGihC,WAAW,CAACjhC,QAA7B;EACA,MAAMmhC,WAAW,GAAGF,WAAW,CAACE,WAAhC;EACA,MAAMlhC,OAAO,GAAGghC,WAAW,CAAChhC,OAA5B;EACA,MAAMC,KAAK,GAAG+gC,WAAW,CAAC/gC,KAA1B;EACA,MAAMkhC,WAAW,GAAGH,WAAW,CAACG,WAAhC;EACA,MAAMC,MAAM,GAAGJ,WAAW,CAACI,MAA3B;EACA,MAAMpB,SAAS,GAAGgB,WAAW,CAAChB,SAA9B;EACA,MAAM1xB,OAAO,GAAG0yB,WAAW,CAAC1yB,OAA5B;EACA,MAAM+yB,WAAW,GAAGL,WAAW,CAACK,WAAhC;EACA,MAAM1vC,MAAM,GAAG;IACbxM,IAAI,EAAE,KADO;IAEb86C,MAAM,EAAE,CAFK;IAGbC,MAAM,EAAE,CAHK;IAIboB,SAAS,EAAE,CAJE;IAKbC,QAAQ,EAAE,CALG;IAMbC,QAAQ,EAAE,CANG;IAObC,SAAS,EAAE,CAPE;IAQbC,SAAS,EAAE,CARE;IASbpB,MAAM,EAAE,CATK;IAUbC,MAAM,EAAE,CAVK;IAWbroB,WAAW,EAAE,CAXA;IAYbyE,KAAK,EAAE9zB,SAZM;IAab6F,IAAI,EAAE7F;EAbO,CAAf;EAeA,MAAM84C,GAAG,GAAGjC,mBAAmB,CAACsB,WAAW,CAAC1uC,SAAb,EAAwB0uC,WAAW,CAAChB,SAApC,EAA+CgB,WAAW,CAACpB,QAA3D,CAA/B;EACA,MAAMpiB,OAAO,GAAGE,4EAAA,CAAiC;IAC/C/e,IAAI,EAAEvF,MAAM,CAACkjB,WADkC;IAE/CtiB,QAAQ,EAAEZ,MAAM,CAAC6nC,eAF8B;IAG/ChlB,aAAa,EAAE7iB,MAAM,CAAC6iB;EAHyB,CAAjC,CAAhB;;EAKA,MAAMsiB,WAAW,GAAI7sC,EAAD,IAAQ;IAC1B,MAAM8vB,SAAS,GAAGD,GAAG,CAAC7vB,EAAD,CAArB;;IACA,IAAImvC,aAAa,IAAI,CAACC,aAAtB,EAAqC;MACnC,OAAO,KAAP;IACD;;IACDc,YAAY,CAAClwC,EAAD,EAAKC,MAAL,CAAZ;IACAA,MAAM,CAACsuC,MAAP,GAAgBtuC,MAAM,CAAC4vC,QAAvB;IACA5vC,MAAM,CAACuuC,MAAP,GAAgBvuC,MAAM,CAAC6vC,QAAvB;IACA7vC,MAAM,CAAC2vC,SAAP,GAAmB3vC,MAAM,CAACumB,WAAP,GAAqBsJ,SAAxC;IACA7vB,MAAM,CAAC8vC,SAAP,GAAmB9vC,MAAM,CAAC+vC,SAAP,GAAmB/vC,MAAM,CAAC2uC,MAAP,GAAgB3uC,MAAM,CAAC4uC,MAAP,GAAgB,CAAtE;IACA5uC,MAAM,CAACgrB,KAAP,GAAejrB,EAAf,CAV0B,CAW1B;;IACA,IAAIqO,QAAQ,IAAIA,QAAQ,CAACpO,MAAD,CAAR,KAAqB,KAArC,EAA4C;MAC1C,OAAO,KAAP;IACD,CAdyB,CAe1B;;;IACA6rB,OAAO,CAACV,OAAR,GAhB0B,CAiB1B;;IACA,IAAI,CAACU,OAAO,CAACnB,KAAR,EAAL,EAAsB;MACpB,OAAO,KAAP;IACD;;IACDwkB,aAAa,GAAG,IAAhB;;IACA,IAAIb,SAAS,KAAK,CAAlB,EAAqB;MACnB,OAAO6B,eAAe,EAAtB;IACD;;IACDF,GAAG,CAACtlB,KAAJ,CAAU1qB,MAAM,CAACsuC,MAAjB,EAAyBtuC,MAAM,CAACuuC,MAAhC;IACA,OAAO,IAAP;EACD,CA3BD;;EA4BA,MAAM1B,WAAW,GAAI9sC,EAAD,IAAQ;IAC1B;IACA;IACA,IAAIkvC,cAAJ,EAAoB;MAClB,IAAI,CAACG,YAAD,IAAiBD,aAArB,EAAoC;QAClCC,YAAY,GAAG,IAAf;QACAe,eAAe,CAACnwC,MAAD,EAASD,EAAT,CAAf;QACAlP,qBAAqB,CAACu/C,UAAD,CAArB;MACD;;MACD;IACD,CAVyB,CAW1B;;;IACAD,eAAe,CAACnwC,MAAD,EAASD,EAAT,CAAf;;IACA,IAAIiwC,GAAG,CAACtB,MAAJ,CAAW1uC,MAAM,CAAC4vC,QAAlB,EAA4B5vC,MAAM,CAAC6vC,QAAnC,CAAJ,EAAkD;MAChD,IAAI,CAACG,GAAG,CAAChB,SAAJ,EAAD,IAAoB,CAACkB,eAAe,EAAxC,EAA4C;QAC1CG,YAAY;MACb;IACF;EACF,CAlBD;;EAmBA,MAAMD,UAAU,GAAG,MAAM;IACvB;IACA;IACA,IAAI,CAACnB,cAAL,EAAqB;MACnB;IACD;;IACDG,YAAY,GAAG,KAAf;;IACA,IAAIK,MAAJ,EAAY;MACVA,MAAM,CAACzvC,MAAD,CAAN;IACD;EACF,CAVD;;EAWA,MAAMkwC,eAAe,GAAG,MAAM;IAC5B,IAAI,CAACrkB,OAAO,CAACjB,OAAR,EAAL,EAAwB;MACtB,OAAO,KAAP;IACD;;IACDqkB,cAAc,GAAG,IAAjB;IACAE,aAAa,GAAG,KAAhB,CAL4B,CAM5B;IACA;IACA;IACA;IACA;IACA;;IACAnvC,MAAM,CAACsuC,MAAP,GAAgBtuC,MAAM,CAAC4vC,QAAvB;IACA5vC,MAAM,CAACuuC,MAAP,GAAgBvuC,MAAM,CAAC6vC,QAAvB;IACA7vC,MAAM,CAAC2vC,SAAP,GAAmB3vC,MAAM,CAACumB,WAA1B;;IACA,IAAIgpB,WAAJ,EAAiB;MACfA,WAAW,CAACvvC,MAAD,CAAX,CAAoB0E,IAApB,CAAyB4rC,WAAzB;IACD,CAFD,MAGK;MACHA,WAAW;IACZ;;IACD,OAAO,IAAP;EACD,CAtBD;;EAuBA,MAAMC,iBAAiB,GAAG,MAAM;IAC9B,IAAI,OAAOpyB,QAAP,KAAoB,WAAxB,EAAqC;MACnC,MAAMqyB,aAAa,GAAGryB,QAAQ,CAACqyB,aAA/B;;MACA,IAAIA,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,aAAa,CAACC,IAAhF,EAAsF;QACpFD,aAAa,CAACC,IAAd;MACD;IACF;EACF,CAPD;;EAQA,MAAMH,WAAW,GAAG,MAAM;IACxB,IAAIZ,WAAJ,EAAiB;MACfa,iBAAiB;IAClB;;IACD,IAAIliC,OAAJ,EAAa;MACXA,OAAO,CAACrO,MAAD,CAAP;IACD;;IACDmvC,aAAa,GAAG,IAAhB;EACD,CARD;;EASA,MAAMuB,KAAK,GAAG,MAAM;IAClBzB,cAAc,GAAG,KAAjB;IACAC,aAAa,GAAG,KAAhB;IACAE,YAAY,GAAG,KAAf;IACAD,aAAa,GAAG,IAAhB;IACAtjB,OAAO,CAACV,OAAR;EACD,CAND,CAtIgC,CA6IhC;;;EACA,MAAM2hB,SAAS,GAAI/sC,EAAD,IAAQ;IACxB,MAAM4wC,cAAc,GAAG1B,cAAvB;IACA,MAAM2B,gBAAgB,GAAGzB,aAAzB;IACAuB,KAAK;;IACL,IAAI,CAACE,gBAAL,EAAuB;MACrB;IACD;;IACDT,eAAe,CAACnwC,MAAD,EAASD,EAAT,CAAf,CAPwB,CAQxB;;IACA,IAAI4wC,cAAJ,EAAoB;MAClB,IAAIriC,KAAJ,EAAW;QACTA,KAAK,CAACtO,MAAD,CAAL;MACD;;MACD;IACD,CAduB,CAexB;;;IACA,IAAIwvC,WAAJ,EAAiB;MACfA,WAAW,CAACxvC,MAAD,CAAX;IACD;EACF,CAnBD;;EAoBA,MAAM6wC,aAAa,GAAGlE,mBAAmB,CAAC0C,WAAW,CAACh+C,EAAb,EAAiBu7C,WAAjB,EAA8BC,WAA9B,EAA2CC,SAA3C,EAAsD;IAC7FliB,OAAO,EAAE,KADoF;IAE7FjO;EAF6F,CAAtD,CAAzC;;EAIA,MAAM0zB,YAAY,GAAG,MAAM;IACzBK,KAAK;IACLG,aAAa,CAACjpB,IAAd;;IACA,IAAI4nB,WAAJ,EAAiB;MACfA,WAAW,CAACxvC,MAAD,CAAX;IACD;EACF,CAND;;EAOA,OAAO;IACL4W,MAAM,CAACA,MAAM,GAAG,IAAV,EAAgB;MACpB,IAAI,CAACA,MAAL,EAAa;QACX,IAAIq4B,cAAJ,EAAoB;UAClBnC,SAAS,CAAC51C,SAAD,CAAT;QACD;;QACDw5C,KAAK;MACN;;MACDG,aAAa,CAACj6B,MAAd,CAAqBA,MAArB;IACD,CATI;;IAULpY,OAAO,GAAG;MACRqtB,OAAO,CAACrtB,OAAR;MACAqyC,aAAa,CAACryC,OAAd;IACD;;EAbI,CAAP;AAeD,CA5LD;;AA6LA,MAAM2xC,eAAe,GAAG,CAACnwC,MAAD,EAASD,EAAT,KAAgB;EACtC,IAAI,CAACA,EAAL,EAAS;IACP;EACD;;EACD,MAAM+wC,KAAK,GAAG9wC,MAAM,CAAC4vC,QAArB;EACA,MAAMmB,KAAK,GAAG/wC,MAAM,CAAC6vC,QAArB;EACA,MAAMmB,KAAK,GAAGhxC,MAAM,CAACumB,WAArB;EACA0pB,YAAY,CAAClwC,EAAD,EAAKC,MAAL,CAAZ;EACA,MAAM4vC,QAAQ,GAAG5vC,MAAM,CAAC4vC,QAAxB;EACA,MAAMC,QAAQ,GAAG7vC,MAAM,CAAC6vC,QAAxB;EACA,MAAMoB,SAAS,GAAIjxC,MAAM,CAACumB,WAAP,GAAqBqJ,GAAG,CAAC7vB,EAAD,CAA3C;EACA,MAAMmxC,SAAS,GAAGD,SAAS,GAAGD,KAA9B;;EACA,IAAIE,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAG,GAAjC,EAAsC;IACpC,MAAMpB,SAAS,GAAG,CAACF,QAAQ,GAAGkB,KAAZ,IAAqBI,SAAvC;IACA,MAAMnB,SAAS,GAAG,CAACF,QAAQ,GAAGkB,KAAZ,IAAqBG,SAAvC;IACAlxC,MAAM,CAAC8vC,SAAP,GAAmBA,SAAS,GAAG,GAAZ,GAAkB9vC,MAAM,CAAC8vC,SAAP,GAAmB,GAAxD;IACA9vC,MAAM,CAAC+vC,SAAP,GAAmBA,SAAS,GAAG,GAAZ,GAAkB/vC,MAAM,CAAC+vC,SAAP,GAAmB,GAAxD;EACD;;EACD/vC,MAAM,CAAC2uC,MAAP,GAAgBiB,QAAQ,GAAG5vC,MAAM,CAACsuC,MAAlC;EACAtuC,MAAM,CAAC4uC,MAAP,GAAgBiB,QAAQ,GAAG7vC,MAAM,CAACuuC,MAAlC;EACAvuC,MAAM,CAACgrB,KAAP,GAAejrB,EAAf;AACD,CArBD;;AAsBA,MAAMkwC,YAAY,GAAG,CAAClwC,EAAD,EAAKC,MAAL,KAAgB;EACnC;EACA;EACA,IAAIkwB,CAAC,GAAG,CAAR;EACA,IAAIE,CAAC,GAAG,CAAR;;EACA,IAAIrwB,EAAJ,EAAQ;IACN,MAAMiwB,cAAc,GAAGjwB,EAAE,CAACiwB,cAA1B;;IACA,IAAIA,cAAc,IAAIA,cAAc,CAACl8B,MAAf,GAAwB,CAA9C,EAAiD;MAC/C,MAAMm8B,KAAK,GAAGD,cAAc,CAAC,CAAD,CAA5B;MACAE,CAAC,GAAGD,KAAK,CAACE,OAAV;MACAC,CAAC,GAAGH,KAAK,CAACI,OAAV;IACD,CAJD,MAKK,IAAItwB,EAAE,CAACuwB,KAAH,KAAap5B,SAAjB,EAA4B;MAC/Bg5B,CAAC,GAAGnwB,EAAE,CAACuwB,KAAP;MACAF,CAAC,GAAGrwB,EAAE,CAACwwB,KAAP;IACD;EACF;;EACDvwB,MAAM,CAAC4vC,QAAP,GAAkB1f,CAAlB;EACAlwB,MAAM,CAAC6vC,QAAP,GAAkBzf,CAAlB;AACD,CAnBD;;AAoBA,MAAMR,GAAG,GAAI7vB,EAAD,IAAQ;EAClB,OAAOA,EAAE,CAAC8vB,SAAH,IAAgBC,IAAI,CAACF,GAAL,EAAvB;AACD,CAFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjcA;AACA;AACA;AACA;AACA;AAEA,MAAMnhC,oBAAoB,GAAG,kBAA7B;AACA,MAAMC,mBAAmB,GAAG,iBAA5B;AACA,MAAMC,oBAAoB,GAAG,kBAA7B;AACA,MAAMC,mBAAmB,GAAG,iBAA5B;AACA,MAAMC,qBAAqB,GAAG,mBAA9B;;AAEA,MAAMmB,sBAAsB,GAAG,MAAM,6HAArC;;AACA,MAAMC,qBAAqB,GAAG,MAAM,6HAApC;;AACA,MAAMuU,UAAU,GAAIlN,IAAD,IAAU;EAC3B,OAAO,IAAI4G,OAAJ,CAAY,CAACC,OAAD,EAAUgzC,MAAV,KAAqB;IACtC/O,qDAAS,CAAC,MAAM;MACdgP,gBAAgB,CAAC95C,IAAD,CAAhB;MACA+5C,aAAa,CAAC/5C,IAAD,CAAb,CAAoBoN,IAApB,CAA0B8nB,MAAD,IAAY;QACnC,IAAIA,MAAM,CAACjpB,SAAX,EAAsB;UACpBipB,MAAM,CAACjpB,SAAP,CAAiB/E,OAAjB;QACD;;QACD8yC,eAAe,CAACh6C,IAAD,CAAf;QACA6G,OAAO,CAACquB,MAAD,CAAP;MACD,CAND,EAMIlI,KAAD,IAAW;QACZgtB,eAAe,CAACh6C,IAAD,CAAf;QACA65C,MAAM,CAAC7sB,KAAD,CAAN;MACD,CATD;IAUD,CAZQ,CAAT;EAaD,CAdM,CAAP;AAeD,CAhBD;;AAiBA,MAAM8sB,gBAAgB,GAAI95C,IAAD,IAAU;EACjC,MAAM4O,UAAU,GAAG5O,IAAI,CAAC4O,UAAxB;EACA,MAAMC,SAAS,GAAG7O,IAAI,CAAC6O,SAAvB;EACAorC,SAAS,CAACrrC,UAAD,EAAaC,SAAb,EAAwB7O,IAAI,CAACqJ,SAA7B,CAAT;;EACA,IAAIrJ,IAAI,CAAC0O,UAAT,EAAqB;IACnBE,UAAU,CAAC/R,SAAX,CAAqBM,GAArB,CAAyB,aAAzB;EACD,CAFD,MAGK;IACHyR,UAAU,CAAC/R,SAAX,CAAqBK,MAArB,CAA4B,aAA5B;EACD;;EACDg9C,aAAa,CAACtrC,UAAD,EAAa,KAAb,CAAb;EACA;AACF;AACA;AACA;AACA;AACA;;EACEA,UAAU,CAAC6V,KAAX,CAAiBO,WAAjB,CAA6B,gBAA7B,EAA+C,MAA/C;;EACA,IAAInW,SAAJ,EAAe;IACbqrC,aAAa,CAACrrC,SAAD,EAAY,KAAZ,CAAb;IACAA,SAAS,CAAC4V,KAAV,CAAgBO,WAAhB,CAA4B,gBAA5B,EAA8C,MAA9C;EACD;AACF,CAtBD;;AAuBA,MAAM+0B,aAAa;EAAA,gKAAG,WAAO/5C,IAAP,EAAgB;IACpC,MAAMkM,gBAAgB,SAASiuC,mBAAmB,CAACn6C,IAAD,CAAlD;IACA,MAAM4oB,GAAG,GAAG1c,gBAAgB,IAAIinC,2DAApB,GAAsClnC,SAAS,CAACC,gBAAD,EAAmBlM,IAAnB,CAA/C,GAA0Eo6C,WAAW,CAACp6C,IAAD,CAAjG,CAFoC,CAEqE;;IACzG,OAAO4oB,GAAP;EACD,CAJkB;;EAAA,gBAAbmxB,aAAa;IAAA;EAAA;AAAA,GAAnB;;AAKA,MAAMC,eAAe,GAAIh6C,IAAD,IAAU;EAChC,MAAM4O,UAAU,GAAG5O,IAAI,CAAC4O,UAAxB;EACA,MAAMC,SAAS,GAAG7O,IAAI,CAAC6O,SAAvB;EACAD,UAAU,CAAC/R,SAAX,CAAqBK,MAArB,CAA4B,oBAA5B;EACA0R,UAAU,CAAC6V,KAAX,CAAiBS,cAAjB,CAAgC,gBAAhC;;EACA,IAAIrW,SAAS,KAAKjP,SAAlB,EAA6B;IAC3BiP,SAAS,CAAChS,SAAV,CAAoBK,MAApB,CAA2B,oBAA3B;IACA2R,SAAS,CAAC4V,KAAV,CAAgBS,cAAhB,CAA+B,gBAA/B;EACD;AACF,CATD;;AAUA,MAAMi1B,mBAAmB;EAAA,iKAAG,WAAOn6C,IAAP,EAAgB;IAC1C,IAAI,CAACA,IAAI,CAAC6O,SAAN,IAAmB,CAAC7O,IAAI,CAAC4T,QAAzB,IAAqC5T,IAAI,CAACiP,QAAL,KAAkB,CAA3D,EAA8D;MAC5D,OAAOrP,SAAP;IACD;;IACD,IAAII,IAAI,CAACkM,gBAAT,EAA2B;MACzB,OAAOlM,IAAI,CAACkM,gBAAZ;IACD;;IACD,MAAM2I,YAAY,GAAG7U,IAAI,CAACuX,IAAL,KAAc,KAAd,GACjB,OAAO7e,sBAAsB,EAA7B,EAAiCA,sBADhB,GAEjB,OAAOC,qBAAqB,EAA5B,EAAgCA,qBAFpC;IAGA,OAAOkc,YAAP;EACD,CAXwB;;EAAA,gBAAnBslC,mBAAmB;IAAA;EAAA;AAAA,GAAzB;;AAYA,MAAMluC,SAAS;EAAA,iKAAG,WAAOC,gBAAP,EAAyBlM,IAAzB,EAAkC;IAClD,MAAMq6C,YAAY,CAACr6C,IAAD,EAAO,IAAP,CAAlB;IACA,MAAMs6C,KAAK,GAAGpuC,gBAAgB,CAAClM,IAAI,CAACu6C,MAAN,EAAcv6C,IAAd,CAA9B;IACAw6C,cAAc,CAACx6C,IAAI,CAAC4O,UAAN,EAAkB5O,IAAI,CAAC6O,SAAvB,CAAd;IACA,MAAM4rC,WAAW,SAASC,cAAc,CAACJ,KAAD,EAAQt6C,IAAR,CAAxC;;IACA,IAAIA,IAAI,CAAC26C,gBAAT,EAA2B;MACzB36C,IAAI,CAAC26C,gBAAL,CAAsB/6C,SAAtB;IACD;;IACD,IAAI66C,WAAJ,EAAiB;MACfG,aAAa,CAAC56C,IAAI,CAAC4O,UAAN,EAAkB5O,IAAI,CAAC6O,SAAvB,CAAb;IACD;;IACD,OAAO;MACLgsC,YAAY,EAAEJ,WADT;MAELxuC,SAAS,EAAEquC;IAFN,CAAP;EAID,CAfc;;EAAA,gBAATruC,SAAS;IAAA;EAAA;AAAA,GAAf;;AAgBA,MAAMmuC,WAAW;EAAA,iKAAG,WAAOp6C,IAAP,EAAgB;IAClC,MAAM4O,UAAU,GAAG5O,IAAI,CAAC4O,UAAxB;IACA,MAAMC,SAAS,GAAG7O,IAAI,CAAC6O,SAAvB;IACA,MAAMwrC,YAAY,CAACr6C,IAAD,EAAO,KAAP,CAAlB;IACAw6C,cAAc,CAAC5rC,UAAD,EAAaC,SAAb,CAAd;IACA+rC,aAAa,CAAChsC,UAAD,EAAaC,SAAb,CAAb;IACA,OAAO;MACLgsC,YAAY,EAAE;IADT,CAAP;EAGD,CATgB;;EAAA,gBAAXT,WAAW;IAAA;EAAA;AAAA,GAAjB;;AAUA,MAAMC,YAAY;EAAA,iKAAG,WAAOr6C,IAAP,EAAa86C,WAAb,EAA6B;IAChD,MAAMxtC,IAAI,GAAGtN,IAAI,CAACgP,QAAL,KAAkBpP,SAAlB,GAA8BI,IAAI,CAACgP,QAAnC,GAA8C8rC,WAA3D;IACA,MAAMC,QAAQ,GAAGztC,IAAI,GACjB,CAAC0tC,SAAS,CAACh7C,IAAI,CAAC4O,UAAN,CAAV,EAA6BosC,SAAS,CAACh7C,IAAI,CAAC6O,SAAN,CAAtC,CADiB,GAEjB,CAACosC,YAAY,CAACj7C,IAAI,CAAC4O,UAAN,CAAb,EAAgCqsC,YAAY,CAACj7C,IAAI,CAAC6O,SAAN,CAA5C,CAFJ;IAGA,MAAMjI,OAAO,CAACm2B,GAAR,CAAYge,QAAZ,CAAN;IACA,MAAMG,eAAe,CAACl7C,IAAI,CAACm7C,WAAN,EAAmBn7C,IAAI,CAAC4O,UAAxB,CAArB;EACD,CAPiB;;EAAA,gBAAZyrC,YAAY;IAAA;EAAA;AAAA,GAAlB;;AAQA,MAAMa,eAAe;EAAA,iKAAG,WAAOC,WAAP,EAAoBvsC,UAApB,EAAmC;IACzD,IAAIusC,WAAJ,EAAiB;MACf,MAAMA,WAAW,CAACvsC,UAAD,CAAjB;IACD;EACF,CAJoB;;EAAA,gBAAfssC,eAAe;IAAA;EAAA;AAAA,GAArB;;AAKA,MAAMR,cAAc,GAAG,CAACJ,KAAD,EAAQt6C,IAAR,KAAiB;EACtC,MAAM26C,gBAAgB,GAAG36C,IAAI,CAAC26C,gBAA9B;EACA,MAAMxrC,OAAO,GAAG,IAAIvI,OAAJ,CAAaC,OAAD,IAAa;IACvCyzC,KAAK,CAAC/vB,QAAN,CAAgB2D,WAAD,IAAiBrnB,OAAO,CAACqnB,WAAW,KAAK,CAAjB,CAAvC;EACD,CAFe,CAAhB,CAFsC,CAKtC;;EACA,IAAIysB,gBAAJ,EAAsB;IACpB;IACA;IACAL,KAAK,CAAChrB,aAAN,CAAoB,IAApB;IACAqrB,gBAAgB,CAACL,KAAD,CAAhB;EACD,CALD,MAMK;IACH;IACA;IACA;IACAA,KAAK,CAACzqB,IAAN;EACD,CAjBqC,CAkBtC;;;EACA,OAAO1gB,OAAP;AACD,CApBD;;AAqBA,MAAMqrC,cAAc,GAAG,CAAC5rC,UAAD,EAAaC,SAAb,KAA2B;EAChDusC,SAAS,CAACvsC,SAAD,EAAYxX,oBAAZ,CAAT;EACA+jD,SAAS,CAACxsC,UAAD,EAAazX,oBAAb,CAAT;AACD,CAHD;;AAIA,MAAMyjD,aAAa,GAAG,CAAChsC,UAAD,EAAaC,SAAb,KAA2B;EAC/CusC,SAAS,CAACxsC,UAAD,EAAaxX,mBAAb,CAAT;EACAgkD,SAAS,CAACvsC,SAAD,EAAYvX,mBAAZ,CAAT;AACD,CAHD;;AAIA,MAAM8jD,SAAS,GAAG,CAACrhD,EAAD,EAAKyF,SAAL,KAAmB;EACnC,IAAIzF,EAAJ,EAAQ;IACN,MAAM0O,EAAE,GAAG,IAAIkrB,WAAJ,CAAgBn0B,SAAhB,EAA2B;MACpCu1B,OAAO,EAAE,KAD2B;MAEpCsV,UAAU,EAAE;IAFwB,CAA3B,CAAX;IAIAtwC,EAAE,CAAC65B,aAAH,CAAiBnrB,EAAjB;EACD;AACF,CARD;;AASA,MAAMwyC,YAAY,GAAIlhD,EAAD,IAAQ;EAC3B,IAAIA,EAAJ,EAAQ;IACN,OAAO,IAAI6M,OAAJ,CAAaC,OAAD,IAAanP,uDAAgB,CAACqC,EAAD,EAAK8M,OAAL,CAAzC,CAAP;EACD;;EACD,OAAOD,OAAO,CAACC,OAAR,EAAP;AACD,CALD;;AAMA,MAAMm0C,SAAS;EAAA,iKAAG,WAAOjhD,EAAP,EAAc;IAC9B,MAAMqC,OAAO,GAAGrC,EAAhB;;IACA,IAAIqC,OAAJ,EAAa;MACX,IAAIA,OAAO,CAAC1E,gBAAR,IAA4B,IAAhC,EAAsC;QACpC;QACA,MAAM2jD,SAAS,SAASj/C,OAAO,CAAC1E,gBAAR,EAAxB;;QACA,IAAI2jD,SAAS,IAAI,IAAjB,EAAuB;UACrB;QACD;QACD;AACN;AACA;;MACK,CATD,MAUK,IAAIj/C,OAAO,CAACk/C,cAAR,IAA0B,IAA9B,EAAoC;QACvC;AACN;AACA;AACA;QACM,MAAMC,oBAAoB,GAAG,IAAI30C,OAAJ,CAAaC,OAAD,IAAazN,uDAAG,CAACyN,OAAD,CAA5B,CAA7B;QACA,MAAM00C,oBAAN;QACA;MACD;;MACD,MAAM30C,OAAO,CAACm2B,GAAR,CAAYhoB,KAAK,CAACwb,IAAN,CAAWn0B,OAAO,CAAC2b,QAAnB,EAA6BxP,GAA7B,CAAiCyyC,SAAjC,CAAZ,CAAN;IACD;EACF,CAxBc;;EAAA,gBAATA,SAAS;IAAA;EAAA;AAAA,GAAf;;AAyBA,MAAMd,aAAa,GAAG,CAACngD,EAAD,EAAK2uC,MAAL,KAAgB;EACpC,IAAIA,MAAJ,EAAY;IACV3uC,EAAE,CAACyV,YAAH,CAAgB,aAAhB,EAA+B,MAA/B;IACAzV,EAAE,CAAC8C,SAAH,CAAaM,GAAb,CAAiB,iBAAjB;EACD,CAHD,MAIK;IACHpD,EAAE,CAAC2uC,MAAH,GAAY,KAAZ;IACA3uC,EAAE,CAACs8B,eAAH,CAAmB,aAAnB;IACAt8B,EAAE,CAAC8C,SAAH,CAAaK,MAAb,CAAoB,iBAApB;EACD;AACF,CAVD;;AAWA,MAAM+8C,SAAS,GAAG,CAACrrC,UAAD,EAAaC,SAAb,EAAwBxF,SAAxB,KAAsC;EACtD,IAAIuF,UAAU,KAAKhP,SAAnB,EAA8B;IAC5BgP,UAAU,CAAC6V,KAAX,CAAiB+2B,MAAjB,GAA0BnyC,SAAS,KAAK,MAAd,GAAuB,IAAvB,GAA8B,KAAxD;EACD;;EACD,IAAIwF,SAAS,KAAKjP,SAAlB,EAA6B;IAC3BiP,SAAS,CAAC4V,KAAV,CAAgB+2B,MAAhB,GAAyB,KAAzB;EACD;AACF,CAPD;;AAQA,MAAMC,iBAAiB,GAAIr/C,OAAD,IAAa;EACrC,IAAIA,OAAO,CAACS,SAAR,CAAkBs6B,QAAlB,CAA2B,UAA3B,CAAJ,EAA4C;IAC1C,OAAO/6B,OAAP;EACD;;EACD,MAAMs/C,OAAO,GAAGt/C,OAAO,CAACsqB,aAAR,CAAsB,yDAAtB,CAAhB;;EACA,IAAIg1B,OAAJ,EAAa;IACX,OAAOA,OAAP;EACD,CAPoC,CAQrC;;;EACA,OAAOt/C,OAAP;AACD,CAVD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM9D,WAAW,GAAI6X,MAAD,IAAY;EAC9B,MAAMS,GAAG,GAAGX,MAAZ;EACA,MAAMC,KAAK,GAAGU,GAAG,CAACV,KAAlB,CAF8B,CAG9B;;EACA,IAAIA,KAAK,IAAIA,KAAK,CAACC,MAAf,IAAyBD,KAAK,CAACC,MAAN,CAAatW,WAAb,CAAyB6b,IAAzB,KAAkC,QAA/D,EAAyE;IACvE;EACD;;EACD9E,GAAG,CAACV,KAAJ,GAAYU,GAAG,CAACV,KAAJ,IAAa,EAAzB;EACAU,GAAG,CAACV,KAAJ,CAAUC,MAAV,GAAmBzR,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB8I,GAAG,CAACV,KAAJ,CAAUC,MAA5B,CAAd,EAAmDA,MAAnD,CAAnB;EACA,OAAOS,GAAG,CAACV,KAAJ,CAAUC,MAAjB;AACD,CAVD;;AAWA,MAAMyxB,OAAO,GAAG,MAAM;EACpB,IAAIvmC,EAAJ;;EACA,MAAMuV,GAAG,GAAGX,MAAZ;EACA,MAAME,MAAM,GAAG,CAAC9U,EAAE,GAAGuV,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,KAAK,CAA7B,GAAiC,KAAK,CAAtC,GAA0CA,GAAG,CAACV,KAApD,MAA+D,IAA/D,IAAuE7U,EAAE,KAAK,KAAK,CAAnF,GAAuF,KAAK,CAA5F,GAAgGA,EAAE,CAAC8U,MAAlH;;EACA,IAAIA,MAAJ,EAAY;IACV,IAAIA,MAAM,CAACoH,IAAX,EAAiB;MACf,OAAOpH,MAAM,CAACoH,IAAd;IACD,CAFD,MAGK;MACH,OAAOpH,MAAM,CAAC/U,GAAP,CAAW,MAAX,CAAP;IACD;EACF;;EACD,OAAO,IAAP;AACD,CAbD;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwgD,kBAAkB,GAAG,CAACC,MAAD,EAASC,sBAAsB,GAAG,IAAlC,KAA2C;EACpE,IAAI,OAAO7rC,MAAP,KAAkB,WAAtB,EAAmC;IACjC;EACD;;EACD,MAAM8rC,QAAQ,GAAGF,MAAM,CAAC9hD,EAAxB;EACA,MAAM2hD,OAAO,GAAGK,QAAQ,CAACn/C,OAAT,CAAiB,WAAjB,CAAhB;;EACA,IAAI,CAAC8+C,OAAL,EAAc;IACZ,IAAII,sBAAJ,EAA4B;MAC1B;AACN;AACA;AACA;AACA;AACA;AACA;AACA;MACM,MAAM51B,QAAQ,GAAG61B,QAAQ,CAAC51B,WAAT,EAAjB;;MACA,IAAID,QAAQ,CAACxmB,OAAT,KAAqB,KAAzB,EAAgC;QAC9B,MAAMs8C,EAAE,GAAG,IAAIC,gBAAJ,CAAsB9hB,CAAD,IAAO;UACrC,MAAM+hB,QAAQ,GAAG/hB,CAAC,CAAC,CAAD,CAAlB;UACA,MAAMgiB,QAAQ,GAAGD,QAAQ,CAAC5X,QAAT,KAAsB,IAAvC;UACA,MAAM8X,UAAU,GAAGl2B,QAAQ,CAACrpB,SAAT,CAAmBs6B,QAAnB,CAA4B,UAA5B,CAAnB;UACA;AACV;AACA;AACA;;UACU,IAAIglB,QAAQ,IAAIC,UAAhB,EAA4B;YAC1BJ,EAAE,CAACK,UAAH;YACA;AACZ;AACA;AACA;;YACYT,kBAAkB,CAACC,MAAD,EAAS,KAAT,CAAlB;UACD;QACF,CAhBU,CAAX;QAiBAG,EAAE,CAACM,OAAH,CAAWp2B,QAAX,EAAqB;UACnBq2B,eAAe,EAAE,CAAC,OAAD,CADE;UAEnBC,iBAAiB,EAAE;QAFA,CAArB;MAID;IACF;;IACD;EACD;EACD;AACF;AACA;AACA;AACA;AACA;;;EACE,MAAMC,cAAc,GAAGV,QAAQ,CAACn/C,OAAT,CAAiB,wBAAjB,CAAvB;;EACA,IAAI6/C,cAAJ,EAAoB;IAClB,MAAMj9C,SAAS,GAAGi9C,cAAc,CAAC/8C,OAAf,KAA2B,WAA3B,GAAyC,qBAAzC,GAAiE,uBAAnF;;IACA,MAAMg9C,eAAe,GAAG,MAAM;MAC5B;AACN;AACA;AACA;MACMtjD,uDAAG,CAAC,MAAM;QACR2iD,QAAQ,CAACF,MAAT,CAAgBxvB,MAAhB;QACAzjB,uDAAmB,CAAC6zC,cAAD,EAAiBj9C,SAAjB,EAA4Bk9C,eAA5B,CAAnB;MACD,CAHE,CAAH;IAID,CATD;;IAUA/zC,uDAAgB,CAAC8zC,cAAD,EAAiBj9C,SAAjB,EAA4Bk9C,eAA5B,CAAhB;EACD,CAbD,MAcK;IACH;AACJ;AACA;AACA;AACA;AACA;IACI,MAAMV,EAAE,GAAG,IAAIC,gBAAJ,CAAsB9hB,CAAD,IAAO;MACrC,IAAI9+B,EAAJ;;MACA,MAAM6gD,QAAQ,GAAG/hB,CAAC,CAAC,CAAD,CAAlB;MACA,MAAMwiB,aAAa,GAAG,CAACthD,EAAE,GAAG6gD,QAAQ,CAAC5X,QAAf,MAA6B,IAA7B,IAAqCjpC,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAACyR,QAAH,CAAY,oBAAZ,CAApF;MACA,MAAM8vC,YAAY,GAAGlB,OAAO,CAAC7+C,SAAR,CAAkBs6B,QAAlB,CAA2B,oBAA3B,CAArB;MACA;AACN;AACA;AACA;;MACM,IAAI,CAACylB,YAAD,IAAiBA,YAAY,KAAKD,aAAtC,EAAqD;QACnDZ,QAAQ,CAACF,MAAT,CAAgBxvB,MAAhB;MACD;IACF,CAZU,CAAX;IAaA2vB,EAAE,CAACM,OAAH,CAAWZ,OAAX,EAAoB;MAClBa,eAAe,EAAE,CAAC,OAAD,CADC;MAElBC,iBAAiB,EAAE;IAFD,CAApB;EAID;EACD;AACF;AACA;AACA;AACA;AACA;;;EACE,MAAMK,SAAS,GAAG,MAAM;IACtBd,QAAQ,CAACF,MAAT,CAAgBxvB,MAAhB;IACAzjB,uDAAmB,CAACqH,MAAD,EAAS,SAAT,EAAoB4sC,SAApB,CAAnB;EACD,CAHD;;EAIAl0C,uDAAgB,CAACsH,MAAD,EAAS,SAAT,EAAoB4sC,SAApB,CAAhB;AACD,CApGD;;AAqGA,MAAMpkD,WAAW,GAAG;EAClBid,IAAI,EAAE,OADY;EAElBonC,EAAE,EAAE;IACFC,SAAS,CAAClB,MAAD,EAAS;MAChBtjC,OAAO,CAACC,IAAR,CAAa,6SAAb;MACAojC,kBAAkB,CAACC,MAAD,CAAlB;IACD;;EAJC;AAFc,CAApB;;AAUA,MAAMrjD,WAAW,GAAIwH,IAAD,IAAU;EAC5B,MAAM;IAAE67C,MAAF;IAAUmB;EAAV,IAA2Bh9C,IAAjC;EACA,MAAMi9C,YAAY,GAAG;IACnB3vB,MAAM,EAAE1tB,SADW;IAEnByJ,SAAS,EAAE,YAFQ;IAGnB6zC,YAAY,EAAE,CAHK;IAInBC,IAAI,EAAE,KAJa;IAKnBC,QAAQ,EAAE,KALS;IAMnBC,aAAa,EAAE,CANI;IAOnBC,YAAY,EAAE,CAPK;IAQnBC,KAAK,EAAE,GARY;IASnBC,eAAe,EAAE,CATE;IAUnBC,mBAAmB,EAAE,QAVF;IAWnBC,cAAc,EAAE,CAXG;IAYnBC,cAAc,EAAE,KAZG;IAanBC,kBAAkB,EAAE,CAbD;IAcnBC,iBAAiB,EAAE,CAdA;IAenBC,iBAAiB,EAAE,WAfA;IAgBnBC,QAAQ,EAAE,KAhBS;IAiBnBC,QAAQ,EAAE,KAjBS;IAkBnBC,gBAAgB,EAAE,IAlBC;IAmBnBC,qBAAqB,EAAE,CAnBJ;IAoBnBC,sBAAsB,EAAE,IApBL;IAqBnBC,2BAA2B,EAAE,CArBV;IAsBnBC,6BAA6B,EAAE,CAtBZ;IAuBnBC,cAAc,EAAE,KAvBG;IAwBnBC,uBAAuB,EAAE,IAxBN;IAyBnBC,UAAU,EAAE,KAzBO;IA0BnBC,cAAc,EAAE,KA1BG;IA2BnBC,IAAI,EAAE;MACJC,QAAQ,EAAE,CADN;MAEJC,QAAQ,EAAE,CAFN;MAGJv/B,MAAM,EAAE;IAHJ,CA3Ba;IAgCnBw/B,UAAU,EAAE,CAhCO;IAiCnBC,UAAU,EAAE,EAjCO;IAkCnBC,aAAa,EAAE,IAlCI;IAmCnBC,wBAAwB,EAAE,KAnCP;IAoCnBC,WAAW,EAAE,IApCM;IAqCnBC,UAAU,EAAE,IArCO;IAsCnBC,eAAe,EAAE,GAtCE;IAuCnBC,YAAY,EAAE,GAvCK;IAwCnBC,YAAY,EAAE,IAxCK;IAyCnBtI,SAAS,EAAE,CAzCQ;IA0CnBuI,wBAAwB,EAAE,IA1CP;IA2CnBC,mBAAmB,EAAE,KA3CF;IA4CnBC,qBAAqB,EAAE,KA5CJ;IA6CnBC,qBAAqB,EAAE,EA7CJ;IA8CnBC,UAAU,EAAE,IA9CO;IA+CnBC,eAAe,EAAE,IA/CE;IAgDnBC,mBAAmB,EAAE,KAhDF;IAiDnBC,qBAAqB,EAAE,KAjDJ;IAkDnBC,aAAa,EAAE,IAlDI;IAmDnBC,wBAAwB,EAAE,IAnDP;IAoDnBC,mBAAmB,EAAE,KApDF;IAqDnBC,oBAAoB,EAAE,CArDH;IAsDnBC,SAAS,EAAE,IAtDQ;IAuDnBC,kBAAkB,EAAE,IAvDD;IAwDnBC,eAAe,EAAE;MACfC,MAAM,EAAE,EADO;MAEfC,OAAO,EAAE,CAFM;MAGfC,KAAK,EAAE,GAHQ;MAIfC,QAAQ,EAAE,CAJK;MAKfC,YAAY,EAAE;IALC,CAxDE;IA+DnBC,UAAU,EAAE;MACVD,YAAY,EAAE,IADJ;MAEVE,aAAa,EAAE;IAFL,CA/DO;IAmEnBC,UAAU,EAAE;MACVH,YAAY,EAAE,IADJ;MAEVI,MAAM,EAAE,IAFE;MAGVC,YAAY,EAAE,EAHJ;MAIVC,WAAW,EAAE;IAJH,CAnEO;IAyEnBC,UAAU,EAAE;MACVC,SAAS,EAAE;IADD,CAzEO;IA4EnBC,IAAI,EAAE;MACJC,gBAAgB,EAAE,gBADd;MAEJC,gBAAgB,EAAE,YAFd;MAGJC,iBAAiB,EAAE,yBAHf;MAIJC,gBAAgB,EAAE;IAJd;EA5Ea,CAArB;;EAmFA,IAAIzF,MAAM,CAAC0F,UAAX,EAAuB;IACrBtE,YAAY,CAACsE,UAAb,GAA0B;MACxBrlD,IAAI,EAAE,SADkB;MAExBslD,SAAS,EAAE,KAFa;MAGxBC,WAAW,EAAE;IAHW,CAA1B;EAKD;;EACD,IAAI5F,MAAM,CAAC6F,SAAX,EAAsB;IACpBzE,YAAY,CAACyE,SAAb,GAAyB;MACvBC,IAAI,EAAE;IADiB,CAAzB;EAGD;;EACD3E,YAAY,CAACC,YAAD,CAAZ;AACD,CAlGD;;;;;;;;;;;;;;;;;;;;;ACpKA;AACA;AACA;AACA;;AAEA,MAAMxtC,MAAN,CAAa;EACX5V,WAAW,GAAG;IACZ,KAAKsgC,CAAL,GAAS,IAAIriB,GAAJ,EAAT;EACD;;EACDshC,KAAK,CAACwI,SAAD,EAAY;IACf,KAAKznB,CAAL,GAAS,IAAIriB,GAAJ,CAAQpZ,MAAM,CAACowC,OAAP,CAAe8S,SAAf,CAAR,CAAT;EACD;;EACDxmD,GAAG,CAACsU,GAAD,EAAMC,QAAN,EAAgB;IACjB,MAAMxV,KAAK,GAAG,KAAKggC,CAAL,CAAO/+B,GAAP,CAAWsU,GAAX,CAAd;IACA,OAAOvV,KAAK,KAAKyF,SAAV,GAAsBzF,KAAtB,GAA8BwV,QAArC;EACD;;EACDE,UAAU,CAACH,GAAD,EAAMC,QAAQ,GAAG,KAAjB,EAAwB;IAChC,MAAM9Q,GAAG,GAAG,KAAKs7B,CAAL,CAAO/+B,GAAP,CAAWsU,GAAX,CAAZ;;IACA,IAAI7Q,GAAG,KAAKe,SAAZ,EAAuB;MACrB,OAAO+P,QAAP;IACD;;IACD,IAAI,OAAO9Q,GAAP,KAAe,QAAnB,EAA6B;MAC3B,OAAOA,GAAG,KAAK,MAAf;IACD;;IACD,OAAO,CAAC,CAACA,GAAT;EACD;;EACDiR,SAAS,CAACJ,GAAD,EAAMC,QAAN,EAAgB;IACvB,MAAM9Q,GAAG,GAAGf,UAAU,CAAC,KAAKq8B,CAAL,CAAO/+B,GAAP,CAAWsU,GAAX,CAAD,CAAtB;IACA,OAAO2+B,KAAK,CAACxvC,GAAD,CAAL,GAAc8Q,QAAQ,KAAK/P,SAAb,GAAyB+P,QAAzB,GAAoCkyC,GAAlD,GAAyDhjD,GAAhE;EACD;;EACDD,GAAG,CAAC8Q,GAAD,EAAMvV,KAAN,EAAa;IACd,KAAKggC,CAAL,CAAOv7B,GAAP,CAAW8Q,GAAX,EAAgBvV,KAAhB;EACD;;AA3BU;;AA6Bb,MAAMgW,MAAM,GAAG,aAAc,IAAIV,MAAJ,EAA7B;;AACA,MAAMqyC,iBAAiB,GAAIlxC,GAAD,IAAS;EACjC,IAAI;IACF,MAAMmxC,SAAS,GAAGnxC,GAAG,CAACoxC,cAAJ,CAAmBC,OAAnB,CAA2BC,iBAA3B,CAAlB;IACA,OAAOH,SAAS,KAAK,IAAd,GAAqBI,IAAI,CAACltC,KAAL,CAAW8sC,SAAX,CAArB,GAA6C,EAApD;EACD,CAHD,CAIA,OAAO7kC,CAAP,EAAU;IACR,OAAO,EAAP;EACD;AACF,CARD;;AASA,MAAMklC,UAAU,GAAG,CAACxxC,GAAD,EAAMvQ,CAAN,KAAY;EAC7B,IAAI;IACFuQ,GAAG,CAACoxC,cAAJ,CAAmBK,OAAnB,CAA2BH,iBAA3B,EAA8CC,IAAI,CAACG,SAAL,CAAejiD,CAAf,CAA9C;EACD,CAFD,CAGA,OAAO6c,CAAP,EAAU;IACR;EACD;AACF,CAPD;;AAQA,MAAMqlC,aAAa,GAAI3xC,GAAD,IAAS;EAC7B,MAAMgxC,SAAS,GAAG,EAAlB;EACAhxC,GAAG,CAAC5K,QAAJ,CAAa5I,MAAb,CACGkP,KADH,CACS,CADT,EAEG1B,KAFH,CAES,GAFT,EAGGrC,GAHH,CAGQi6C,KAAD,IAAWA,KAAK,CAAC53C,KAAN,CAAY,GAAZ,CAHlB,EAIGrC,GAJH,CAIO,CAAC,CAACmH,GAAD,EAAMvV,KAAN,CAAD,KAAkB,CAACkZ,kBAAkB,CAAC3D,GAAD,CAAnB,EAA0B2D,kBAAkB,CAAClZ,KAAD,CAA5C,CAJzB,EAKGvB,MALH,CAKU,CAAC,CAAC8W,GAAD,CAAD,KAAW3S,UAAU,CAAC2S,GAAD,EAAM+yC,YAAN,CAL/B,EAMGl6C,GANH,CAMO,CAAC,CAACmH,GAAD,EAAMvV,KAAN,CAAD,KAAkB,CAACuV,GAAG,CAACpD,KAAJ,CAAUm2C,YAAY,CAACjmD,MAAvB,CAAD,EAAiCrC,KAAjC,CANzB,EAOGuB,OAPH,CAOW,CAAC,CAACgU,GAAD,EAAMvV,KAAN,CAAD,KAAkB;IAC3BynD,SAAS,CAAClyC,GAAD,CAAT,GAAiBvV,KAAjB;EACD,CATD;EAUA,OAAOynD,SAAP;AACD,CAbD;;AAcA,MAAM7kD,UAAU,GAAG,CAACV,KAAD,EAAQe,MAAR,KAAmB;EACpC,OAAOf,KAAK,CAACqmD,MAAN,CAAa,CAAb,EAAgBtlD,MAAM,CAACZ,MAAvB,MAAmCY,MAA1C;AACD,CAFD;;AAGA,MAAMqlD,YAAY,GAAG,QAArB;AACA,MAAMP,iBAAiB,GAAG,sBAA1B;;AAEA,MAAMzqD,YAAY,GAAImZ,GAAD,IAAS+xC,cAAc,CAAC/xC,GAAD,CAA5C;;AACA,MAAMpZ,UAAU,GAAG,CAACorD,aAAD,EAAgBnvC,QAAhB,KAA6B;EAC9C,IAAI,OAAOmvC,aAAP,KAAyB,QAA7B,EAAuC;IACrCnvC,QAAQ,GAAGmvC,aAAX;IACAA,aAAa,GAAGhjD,SAAhB;EACD;;EACD,OAAOnI,YAAY,CAACmrD,aAAD,CAAZ,CAA4B91C,QAA5B,CAAqC2G,QAArC,CAAP;AACD,CAND;;AAOA,MAAMkvC,cAAc,GAAG,CAAC/xC,GAAG,GAAGX,MAAP,KAAkB;EACvC,IAAI,OAAOW,GAAP,KAAe,WAAnB,EAAgC;IAC9B,OAAO,EAAP;EACD;;EACDA,GAAG,CAACV,KAAJ,GAAYU,GAAG,CAACV,KAAJ,IAAa,EAAzB;EACA,IAAIwB,SAAS,GAAGd,GAAG,CAACV,KAAJ,CAAUwB,SAA1B;;EACA,IAAIA,SAAS,IAAI,IAAjB,EAAuB;IACrBA,SAAS,GAAGd,GAAG,CAACV,KAAJ,CAAUwB,SAAV,GAAsBmxC,eAAe,CAACjyC,GAAD,CAAjD;IACAc,SAAS,CAAChW,OAAV,CAAmBy2B,CAAD,IAAOvhB,GAAG,CAACiW,QAAJ,CAAaslB,eAAb,CAA6BtvC,SAA7B,CAAuCM,GAAvC,CAA4C,OAAMg1B,CAAE,EAApD,CAAzB;EACD;;EACD,OAAOzgB,SAAP;AACD,CAXD;;AAYA,MAAMmxC,eAAe,GAAIjyC,GAAD,IAAS;EAC/B,MAAMkyC,qBAAqB,GAAG3yC,MAAM,CAAC/U,GAAP,CAAW,UAAX,CAA9B;EACA,OAAOsD,MAAM,CAACqjB,IAAP,CAAYghC,aAAZ,EAA2BnqD,MAA3B,CAAmCu5B,CAAD,IAAO;IAC9C,MAAM6wB,YAAY,GAAGF,qBAAqB,KAAK,IAA1B,IAAkCA,qBAAqB,KAAK,KAAK,CAAjE,GAAqE,KAAK,CAA1E,GAA8EA,qBAAqB,CAAC3wB,CAAD,CAAxH;IACA,OAAO,OAAO6wB,YAAP,KAAwB,UAAxB,GAAqCA,YAAY,CAACpyC,GAAD,CAAjD,GAAyDmyC,aAAa,CAAC5wB,CAAD,CAAb,CAAiBvhB,GAAjB,CAAhE;EACD,CAHM,CAAP;AAID,CAND;;AAOA,MAAMqyC,WAAW,GAAIryC,GAAD,IAASsyC,QAAQ,CAACtyC,GAAD,CAAR,IAAiB,CAACuyC,QAAQ,CAACvyC,GAAD,CAAvD;;AACA,MAAMwyC,MAAM,GAAIxyC,GAAD,IAAS;EACtB;EACA,IAAI0B,aAAa,CAAC1B,GAAD,EAAM,OAAN,CAAjB,EAAiC;IAC/B,OAAO,IAAP;EACD,CAJqB,CAKtB;;;EACA,IAAI0B,aAAa,CAAC1B,GAAD,EAAM,YAAN,CAAb,IAAoCsyC,QAAQ,CAACtyC,GAAD,CAAhD,EAAuD;IACrD,OAAO,IAAP;EACD;;EACD,OAAO,KAAP;AACD,CAVD;;AAWA,MAAMyyC,QAAQ,GAAIzyC,GAAD,IAAS0B,aAAa,CAAC1B,GAAD,EAAM,SAAN,CAAvC;;AACA,MAAM0yC,KAAK,GAAI1yC,GAAD,IAAS0B,aAAa,CAAC1B,GAAD,EAAM,cAAN,CAAb,IAAsCwyC,MAAM,CAACxyC,GAAD,CAAnE;;AACA,MAAM2yC,SAAS,GAAI3yC,GAAD,IAAS0B,aAAa,CAAC1B,GAAD,EAAM,eAAN,CAAxC;;AACA,MAAM4yC,eAAe,GAAI5yC,GAAD,IAAS;EAC/B,OAAO2yC,SAAS,CAAC3yC,GAAD,CAAT,IAAkB,CAAC0B,aAAa,CAAC1B,GAAD,EAAM,SAAN,CAAvC;AACD,CAFD;;AAGA,MAAM6yC,SAAS,GAAI7yC,GAAD,IAAS;EACzB,MAAM+B,KAAK,GAAG/B,GAAG,CAACgC,UAAlB;EACA,MAAMC,MAAM,GAAGjC,GAAG,CAACkC,WAAnB;EACA,MAAM4wC,QAAQ,GAAG50B,IAAI,CAACC,GAAL,CAASpc,KAAT,EAAgBE,MAAhB,CAAjB;EACA,MAAM8wC,OAAO,GAAG70B,IAAI,CAACE,GAAL,CAASrc,KAAT,EAAgBE,MAAhB,CAAhB;EACA,OAAO6wC,QAAQ,GAAG,GAAX,IAAkBA,QAAQ,GAAG,GAA7B,IAAoCC,OAAO,GAAG,GAA9C,IAAqDA,OAAO,GAAG,GAAtE;AACD,CAND;;AAOA,MAAMC,QAAQ,GAAIhzC,GAAD,IAAS;EACxB,MAAM+B,KAAK,GAAG/B,GAAG,CAACgC,UAAlB;EACA,MAAMC,MAAM,GAAGjC,GAAG,CAACkC,WAAnB;EACA,MAAM4wC,QAAQ,GAAG50B,IAAI,CAACC,GAAL,CAASpc,KAAT,EAAgBE,MAAhB,CAAjB;EACA,MAAM8wC,OAAO,GAAG70B,IAAI,CAACE,GAAL,CAASrc,KAAT,EAAgBE,MAAhB,CAAhB;EACA,OAAOuwC,MAAM,CAACxyC,GAAD,CAAN,IAAe4yC,eAAe,CAAC5yC,GAAD,CAA9B,IAAwC8yC,QAAQ,GAAG,GAAX,IAAkBA,QAAQ,GAAG,GAA7B,IAAoCC,OAAO,GAAG,GAA9C,IAAqDA,OAAO,GAAG,IAA9G;AACD,CAND;;AAOA,MAAMT,QAAQ,GAAItyC,GAAD,IAASuB,UAAU,CAACvB,GAAD,EAAM,sBAAN,CAApC;;AACA,MAAMizC,SAAS,GAAIjzC,GAAD,IAAS,CAACsyC,QAAQ,CAACtyC,GAAD,CAApC;;AACA,MAAMuyC,QAAQ,GAAIvyC,GAAD,IAASkzC,SAAS,CAAClzC,GAAD,CAAT,IAAkBmzC,iBAAiB,CAACnzC,GAAD,CAA7D;;AACA,MAAMkzC,SAAS,GAAIlzC,GAAD,IAAS,CAAC,EAAEA,GAAG,CAAC,SAAD,CAAH,IAAkBA,GAAG,CAAC,UAAD,CAArB,IAAqCA,GAAG,CAAC,UAAD,CAA1C,CAA5B;;AACA,MAAMmzC,iBAAiB,GAAInzC,GAAD,IAAS;EACjC,MAAMozC,SAAS,GAAGpzC,GAAG,CAAC,WAAD,CAArB;EACA,OAAO,CAAC,EAAEozC,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAAK,CAAzC,GAA6C,KAAK,CAAlD,GAAsDA,SAAS,CAACC,QAAlE,CAAR;AACD,CAHD;;AAIA,MAAMC,UAAU,GAAItzC,GAAD,IAAS0B,aAAa,CAAC1B,GAAD,EAAM,WAAN,CAAzC;;AACA,MAAMuzC,KAAK,GAAIvzC,GAAD,IAAS;EAAE,IAAIvV,EAAJ;;EAAQ,OAAO,CAAC,EAAE,CAAC,CAACA,EAAE,GAAGuV,GAAG,CAACuB,UAAV,MAA0B,IAA1B,IAAkC9W,EAAE,KAAK,KAAK,CAA9C,GAAkD,KAAK,CAAvD,GAA2DA,EAAE,CAAC+W,IAAH,CAAQxB,GAAR,EAAa,4BAAb,EAA2CyB,OAAvG,KAAmHzB,GAAG,CAAC6B,SAAJ,CAAc2xC,UAAnI,CAAR;AAAyJ,CAA1L;;AACA,MAAM9xC,aAAa,GAAG,CAAC1B,GAAD,EAAMyzC,IAAN,KAAeA,IAAI,CAACC,IAAL,CAAU1zC,GAAG,CAAC6B,SAAJ,CAAcC,SAAxB,CAArC;;AACA,MAAMP,UAAU,GAAG,CAACvB,GAAD,EAAM2zC,KAAN,KAAgB;EAAE,IAAIlpD,EAAJ;;EAAQ,OAAO,CAACA,EAAE,GAAGuV,GAAG,CAACuB,UAAV,MAA0B,IAA1B,IAAkC9W,EAAE,KAAK,KAAK,CAA9C,GAAkD,KAAK,CAAvD,GAA2DA,EAAE,CAAC+W,IAAH,CAAQxB,GAAR,EAAa2zC,KAAb,EAAoBlyC,OAAtF;AAAgG,CAA7I;;AACA,MAAM0wC,aAAa,GAAG;EACpByB,IAAI,EAAEpB,MADc;EAEpBqB,MAAM,EAAEpB,QAFY;EAGpBqB,GAAG,EAAEpB,KAHe;EAIpBqB,OAAO,EAAEpB,SAJW;EAKpBqB,OAAO,EAAEnB,SALW;EAMpBoB,MAAM,EAAEjB,QANY;EAOpBkB,OAAO,EAAEhB,SAPW;EAQpBE,SAAS,EAAED,iBARS;EASpBgB,QAAQ,EAAEb,UATU;EAUpBc,GAAG,EAAEb,KAVe;EAWpBc,MAAM,EAAE/B,QAXY;EAYpBgC,SAAS,EAAEjC,WAZS;EAapBkC,OAAO,EAAEtB,SAbW;EAcpBuB,MAAM,EAAEjC;AAdY,CAAtB;AAiBA,IAAIkC,WAAJ;;AACA,MAAMhrB,UAAU,GAAIrvB,GAAD,IAAS;EAC1B,OAAQA,GAAG,IAAI42B,qDAAO,CAAC52B,GAAD,CAAf,IAAyBq6C,WAAhC;AACD,CAFD;;AAGA,MAAMv0B,UAAU,GAAG,CAACw0B,UAAU,GAAG,EAAd,KAAqB;EACtC,IAAI,OAAOr1C,MAAP,KAAkB,WAAtB,EAAmC;IACjC;EACD;;EACD,MAAMI,GAAG,GAAGJ,MAAM,CAAC4W,QAAnB;EACA,MAAMjW,GAAG,GAAGX,MAAZ;EACA,MAAMC,KAAK,GAAIU,GAAG,CAACV,KAAJ,GAAYU,GAAG,CAACV,KAAJ,IAAa,EAAxC;EACA,MAAMq1C,eAAe,GAAG,EAAxB;;EACA,IAAID,UAAU,CAAC9uB,IAAf,EAAqB;IACnB+uB,eAAe,CAAC/iC,GAAhB,GAAsB8iC,UAAU,CAAC9uB,IAAjC;EACD;;EACD,IAAI8uB,UAAU,CAAC7uB,IAAf,EAAqB;IACnB8uB,eAAe,CAAC7iC,GAAhB,GAAsB4iC,UAAU,CAAC7uB,IAAjC;EACD;;EACD,IAAI6uB,UAAU,CAACE,GAAf,EAAoB;IAClBD,eAAe,CAACxnB,EAAhB,GAAqBunB,UAAU,CAACE,GAAhC;EACD;;EACDxnB,qDAAkB,CAACunB,eAAD,CAAlB,CAjBsC,CAkBtC;EACA;;EACA,MAAM3D,SAAS,GAAGljD,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkBg6C,iBAAiB,CAAClxC,GAAD,CAAnC,CAAd,EAAyD;IAAE60C,aAAa,EAAE;EAAjB,CAAzD,CAAd,EAAkGv1C,KAAK,CAACC,MAAxG,CAAd,EAA+HoyC,aAAa,CAAC3xC,GAAD,CAA5I,CAAd,EAAkK00C,UAAlK,CAAlB;EACAn1C,MAAM,CAACipC,KAAP,CAAawI,SAAb;;EACA,IAAIzxC,MAAM,CAACN,UAAP,CAAkB,eAAlB,CAAJ,EAAwC;IACtCuyC,UAAU,CAACxxC,GAAD,EAAMgxC,SAAN,CAAV;EACD,CAxBqC,CAyBtC;;;EACAe,cAAc,CAAC/xC,GAAD,CAAd,CA1BsC,CA2BtC;EACA;EACA;;EACAV,KAAK,CAACC,MAAN,GAAeA,MAAf;EACAD,KAAK,CAACqH,IAAN,GAAa8tC,WAAW,GAAGl1C,MAAM,CAAC/U,GAAP,CAAW,MAAX,EAAmBiV,GAAG,CAAC87B,eAAJ,CAAoB/V,YAApB,CAAiC,MAAjC,MAA6C5+B,UAAU,CAACoZ,GAAD,EAAM,KAAN,CAAV,GAAyB,KAAzB,GAAiC,IAA9E,CAAnB,CAA3B;EACAT,MAAM,CAACvR,GAAP,CAAW,MAAX,EAAmBymD,WAAnB;EACAh1C,GAAG,CAAC87B,eAAJ,CAAoB38B,YAApB,CAAiC,MAAjC,EAAyC61C,WAAzC;EACAh1C,GAAG,CAAC87B,eAAJ,CAAoBtvC,SAApB,CAA8BM,GAA9B,CAAkCkoD,WAAlC;;EACA,IAAIl1C,MAAM,CAACN,UAAP,CAAkB,UAAlB,CAAJ,EAAmC;IACjCM,MAAM,CAACvR,GAAP,CAAW,UAAX,EAAuB,KAAvB;EACD;;EACD,MAAM8mD,cAAc,GAAIjjC,GAAD,IAAS;IAAE,IAAIpnB,EAAJ;;IAAQ,OAAO,CAACA,EAAE,GAAGonB,GAAG,CAAC/iB,OAAV,MAAuB,IAAvB,IAA+BrE,EAAE,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,EAAE,CAAC0B,UAAH,CAAc,MAAd,CAA/D;EAAuF,CAAjI;;EACA,MAAM4oD,uBAAuB,GAAIC,OAAD,IAAa,CAAC,KAAD,EAAQ,IAAR,EAAc94C,QAAd,CAAuB84C,OAAvB,CAA7C;;EACAjkB,qDAAO,CAAElf,GAAD,IAAS;IACf,OAAOA,GAAP,EAAY;MACV,MAAMmjC,OAAO,GAAGnjC,GAAG,CAAClL,IAAJ,IAAYkL,GAAG,CAAC2T,YAAJ,CAAiB,MAAjB,CAA5B;;MACA,IAAIwvB,OAAJ,EAAa;QACX,IAAID,uBAAuB,CAACC,OAAD,CAA3B,EAAsC;UACpC,OAAOA,OAAP;QACD,CAFD,MAGK,IAAIF,cAAc,CAACjjC,GAAD,CAAlB,EAAyB;UAC5BlK,OAAO,CAACC,IAAR,CAAa,0BAA0BotC,OAA1B,GAAoC,4BAAjD;QACD;MACF;;MACDnjC,GAAG,GAAGA,GAAG,CAAC3T,aAAV;IACD;;IACD,OAAOu2C,WAAP;EACD,CAdM,CAAP;AAeD,CAvDD;;;;;;;;;;;;;;;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMQ,QAAQ,GAAG,GAAjB;;AACA,MAAMC,gBAAgB,GAAIpmD,OAAD,IAAa;EACpC,OAAOmnB,QAAQ,CAACH,aAAT,CAAwB,GAAEhnB,OAAQ,qBAAlC,CAAP;AACD,CAFD;;AAGA,MAAMmhD,MAAM,GAAI9mD,EAAD,IAAQ;EACrB,OAAOA,EAAE,CAAC48B,UAAH,IAAiB58B,EAAxB;AACD,CAFD;;AAGA,MAAMgsD,aAAa,GAAIC,KAAD,IAAW;EAC/B,MAAMrwC,IAAI,GAAGqwC,KAAK,CAACtmD,OAAN,KAAkB,UAAlB,GAA+BsmD,KAA/B,GAAuCA,KAAK,CAACt/B,aAAN,CAAoB,UAApB,CAApD;EACA,MAAM69B,KAAK,GAAG,sFAAd;;EACA,IAAI5uC,IAAI,IAAI,IAAZ,EAAkB;IAChB,MAAMswC,SAAS,GAAGtwC,IAAI,CAAC+Q,aAAL,CAAmB,2DAAnB,CAAlB;IACA,OAAOu/B,SAAS,IAAI,IAAb,GAAoBA,SAAS,CAACv/B,aAAV,CAAwB69B,KAAxB,CAApB,GAAqD,IAA5D;EACD;;EACD,OAAOyB,KAAK,CAACt/B,aAAN,CAAoB69B,KAApB,CAAP;AACD,CARD;;AASA,MAAM2B,aAAa,GAAG,CAACF,KAAD,EAAQG,aAAR,KAA0B;EAC9C,MAAMxwC,IAAI,GAAGqwC,KAAK,CAACtmD,OAAN,KAAkB,UAAlB,GAA+BsmD,KAA/B,GAAuCA,KAAK,CAACt/B,aAAN,CAAoB,UAApB,CAApD;EACA,IAAI0/B,WAAW,GAAG,EAAlB;;EACA,IAAIzwC,IAAI,IAAI,IAAZ,EAAkB;IAChB,MAAMswC,SAAS,GAAGtwC,IAAI,CAAC+Q,aAAL,CAAmB,2DAAnB,CAAlB;;IACA,IAAIu/B,SAAS,IAAI,IAAjB,EAAuB;MACrBG,WAAW,GAAGH,SAAS,CAACjpB,gBAAV,CAA2B,aAA3B,CAAd;IACD;EACF,CALD,MAMK;IACHopB,WAAW,GAAGJ,KAAK,CAAChpB,gBAAN,CAAuB,aAAvB,CAAd;EACD;;EACD,KAAK,MAAMqpB,OAAX,IAAsBD,WAAtB,EAAmC;IACjC,MAAME,YAAY,GAAGD,OAAO,CAACzpD,OAAR,CAAgB,YAAhB,CAArB;IACA,MAAM2pD,YAAY,GAAGD,YAAY,IAAI,CAACA,YAAY,CAACzpD,SAAb,CAAuBs6B,QAAvB,CAAgC,mCAAhC,CAAtC;IACA,MAAM7mB,UAAU,GAAG+1C,OAAO,CAAC3/B,aAAR,CAAsB,iBAAtB,CAAnB;IACA,MAAM8/B,eAAe,GAAGH,OAAO,CAACxpD,SAAR,CAAkBs6B,QAAlB,CAA2B,kBAA3B,CAAxB;IACA,MAAMsvB,SAAS,GAAGJ,OAAO,CAACK,IAAR,KAAiB,OAAjB,IAA4BL,OAAO,CAACK,IAAR,KAAiB,EAA/D;;IACA,IAAIp2C,UAAU,KAAK,IAAf,IAAuBm2C,SAAvB,KAAsCD,eAAe,IAAID,YAAnB,IAAmCJ,aAApC,IAAsD,CAACK,eAA5F,CAAJ,EAAkH;MAChH,OAAOl2C,UAAP;IACD;EACF;;EACD,OAAO,IAAP;AACD,CAvBD;;AAwBA,MAAMq2C,0BAA0B,GAAG,CAACC,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCv3C,UAApC,EAAgDC,SAAhD,KAA8D;EAC/F,MAAMi4C,kBAAkB,GAAGZ,aAAa,CAACt3C,UAAD,EAAau3C,aAAb,CAAxC;EACA,MAAMY,iBAAiB,GAAGhB,aAAa,CAACl3C,SAAD,CAAvC;EACA,MAAMm4C,kBAAkB,GAAGjB,aAAa,CAACn3C,UAAD,CAAxC;EACA,MAAMq4C,iBAAiB,GAAGf,aAAa,CAACr3C,SAAD,EAAYs3C,aAAZ,CAAvC;EACA,MAAMe,sBAAsB,GAAGJ,kBAAkB,KAAK,IAAvB,IAA+BC,iBAAiB,KAAK,IAArD,IAA6D,CAACZ,aAA7F;EACA,MAAMgB,uBAAuB,GAAGH,kBAAkB,KAAK,IAAvB,IAA+BC,iBAAiB,KAAK,IAArD,IAA6Dd,aAA7F;;EACA,IAAIe,sBAAJ,EAA4B;IAC1B,MAAME,oBAAoB,GAAGL,iBAAiB,CAACM,qBAAlB,EAA7B;IACA,MAAMC,qBAAqB,GAAGR,kBAAkB,CAACO,qBAAnB,EAA9B;IACAE,iBAAiB,CAACX,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCY,iBAApC,EAAuDK,oBAAvD,EAA6EE,qBAA7E,CAAjB;IACAE,iBAAiB,CAACZ,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCW,kBAApC,EAAwDM,oBAAxD,EAA8EE,qBAA9E,CAAjB;EACD,CALD,MAMK,IAAIH,uBAAJ,EAA6B;IAChC,MAAMM,qBAAqB,GAAGT,kBAAkB,CAACK,qBAAnB,EAA9B;IACA,MAAMK,oBAAoB,GAAGT,iBAAiB,CAACI,qBAAlB,EAA7B;IACAE,iBAAiB,CAACX,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCa,kBAApC,EAAwDS,qBAAxD,EAA+EC,oBAA/E,CAAjB;IACAF,iBAAiB,CAACZ,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCc,iBAApC,EAAuDQ,qBAAvD,EAA8EC,oBAA9E,CAAjB;EACD;;EACD,OAAO;IACLC,OAAO,EAAET,sBADJ;IAELU,QAAQ,EAAET;EAFL,CAAP;AAID,CAvBD;;AAwBA,MAAMK,iBAAiB,GAAG,CAACZ,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoC0B,YAApC,EAAkDC,aAAlD,EAAiEC,aAAjE,KAAmF;EAC3G,MAAMC,wBAAwB,GAAGnB,GAAG,GAAI,eAAckB,aAAa,CAACE,KAAd,GAAsB,CAAE,KAA1C,GAAkD,GAAEF,aAAa,CAACG,IAAd,GAAqB,CAAE,IAA/G;EACA,MAAMC,oBAAoB,GAAGtB,GAAG,GAAG,KAAH,GAAW,MAA3C;EACA,MAAMuB,kBAAkB,GAAGvB,GAAG,GAAG,MAAH,GAAY,KAA1C;EACA,MAAMwB,cAAc,GAAGxB,GAAG,GAAG,MAAH,GAAY,KAAtC;EACA,MAAMyB,aAAa,GAAGzB,GAAG,GAAG,OAAH,GAAa,MAAtC;EACA,MAAM0B,aAAa,GAAG1B,GAAG,GAAG,MAAH,GAAY,OAArC;EACA,MAAM2B,sBAAsB,GAAG,CAC7B;IACE9iC,MAAM,EAAE,CADV;IAEEqV,OAAO,EAAE,CAFX;IAGE0tB,SAAS,EAAG,eAAcN,oBAAqB,KAAIL,aAAa,CAACY,GAAd,GAAoB,EAAG;EAH5E,CAD6B,EAM7B;IAAEhjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcL,kBAAmB,KAAIL,aAAa,CAACW,GAAd,GAAoB,EAAG;EAAjG,CAN6B,CAA/B;EAQA,MAAMC,uBAAuB,GAAG,CAC9B;IAAEjjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcL,kBAAmB,KAAIL,aAAa,CAACW,GAAd,GAAoB,EAAG;EAAjG,CAD8B,EAE9B;IAAEhjC,MAAM,EAAE,GAAV;IAAeqV,OAAO,EAAE;EAAxB,CAF8B,EAG9B;IACErV,MAAM,EAAE,CADV;IAEEqV,OAAO,EAAE,CAFX;IAGE0tB,SAAS,EAAG,eAAcN,oBAAqB,KAAIL,aAAa,CAACY,GAAd,GAAoB,EAAG;EAH5E,CAH8B,CAAhC;EASA,MAAME,cAAc,GAAGzC,aAAa,GAAGwC,uBAAH,GAA6BH,sBAAjE;EACA,MAAMK,sBAAsB,GAAG,CAC7B;IAAEnjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcJ,cAAe,KAAIN,aAAa,CAACW,GAAd,GAAoB,EAAG;EAA7F,CAD6B,EAE7B;IAAEhjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcJ,cAAe,KAAIN,aAAa,CAACW,GAAd,GAAoB,EAAG;EAA7F,CAF6B,CAA/B;EAIA,MAAMI,uBAAuB,GAAG,CAC9B;IAAEpjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcJ,cAAe,KAAIN,aAAa,CAACW,GAAd,GAAoB,EAAG;EAA7F,CAD8B,EAE9B;IAAEhjC,MAAM,EAAE,GAAV;IAAeqV,OAAO,EAAE,CAAxB;IAA2B0tB,SAAS,EAAG,eAAcJ,cAAe,KAAIN,aAAa,CAACW,GAAd,GAAoB,EAAG;EAA/F,CAF8B,EAG9B;IAAEhjC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcJ,cAAe,KAAIN,aAAa,CAACW,GAAd,GAAoB,EAAG;EAA7F,CAH8B,CAAhC;EAKA,MAAMK,cAAc,GAAG5C,aAAa,GAAG2C,uBAAH,GAA6BD,sBAAjE;EACA,MAAMG,+BAA+B,GAAG7wD,yDAAe,EAAvD;EACA,MAAM8wD,+BAA+B,GAAG9wD,yDAAe,EAAvD;EACA,MAAM+wD,kBAAkB,GAAGpD,gBAAgB,CAAC,iBAAD,CAA3C;EACA,MAAMqD,gBAAgB,GAAGtI,MAAM,CAACqI,kBAAD,CAAN,CAA2BxiC,aAA3B,CAAyC,cAAzC,CAAzB;EACA,MAAM0iC,gBAAgB,GAAGvI,MAAM,CAACqI,kBAAD,CAAN,CAA2BxiC,aAA3B,CAAyC,UAAzC,CAAzB;EACAwiC,kBAAkB,CAAC3lB,IAAnB,GAA0BskB,YAAY,CAACtkB,IAAvC;EACA2lB,kBAAkB,CAAC3xC,IAAnB,GAA0BswC,YAAY,CAACtwC,IAAvC;EACA2xC,kBAAkB,CAACG,IAAnB,GAA0BxB,YAAY,CAACwB,IAAvC;EACAH,kBAAkB,CAACI,KAAnB,GAA2BzB,YAAY,CAACyB,KAAxC;EACAJ,kBAAkB,CAACpuD,QAAnB,GAA8B+sD,YAAY,CAAC/sD,QAA3C;EACAouD,kBAAkB,CAACzkC,KAAnB,CAAyBO,WAAzB,CAAqC,SAArC,EAAgD,OAAhD;EACAkkC,kBAAkB,CAACzkC,KAAnB,CAAyBO,WAAzB,CAAqC,UAArC,EAAiD,OAAjD;EACAikC,+BAA+B,CAACl8B,UAAhC,CAA2Cq8B,gBAA3C;EACAJ,+BAA+B,CAACj8B,UAAhC,CAA2Co8B,gBAA3C;EACAH,+BAA+B,CAC5Bz9B,YADH,CACgB;IACd,oBAAqB,GAAE+8B,aAAc;EADvB,CADhB,EAIGr9B,cAJH,CAIkB,MAAM;IACtB48B,YAAY,CAACpjC,KAAb,CAAmBO,WAAnB,CAA+B,SAA/B,EAA0C,MAA1C;IACAkkC,kBAAkB,CAACzkC,KAAnB,CAAyBO,WAAzB,CAAqCsjC,aAArC,EAAoDN,wBAApD;EACD,CAPD,EAQG58B,aARH,CAQiB,MAAM;IACrBy8B,YAAY,CAACpjC,KAAb,CAAmBO,WAAnB,CAA+B,SAA/B,EAA0C,EAA1C;IACAkkC,kBAAkB,CAACzkC,KAAnB,CAAyBO,WAAzB,CAAqC,SAArC,EAAgD,MAAhD;IACAkkC,kBAAkB,CAACzkC,KAAnB,CAAyBS,cAAzB,CAAwCojC,aAAxC;EACD,CAZD,EAaGtkC,SAbH,CAaa4kC,cAbb;EAcAK,+BAA+B,CAC5B19B,YADH,CACgB;IACd,oBAAqB,GAAEg9B,aAAc;EADvB,CADhB,EAIGvkC,SAJH,CAIa+kC,cAJb;EAKAnC,aAAa,CAAC35B,YAAd,CAA2B,CAAC+7B,+BAAD,EAAkCC,+BAAlC,CAA3B;AACD,CArED;;AAsEA,MAAM1B,iBAAiB,GAAG,CAACX,aAAD,EAAgBC,GAAhB,EAAqBV,aAArB,EAAoCoD,YAApC,EAAkDzB,aAAlD,EAAiEC,aAAjE,KAAmF;EAC3G,MAAMyB,kBAAkB,GAAG3C,GAAG,GAAI,eAAciB,aAAa,CAACG,KAAM,KAAtC,GAA8C,GAAEH,aAAa,CAACI,IAAK,IAAjG;EACA,MAAMuB,eAAe,GAAG5C,GAAG,GAAG,OAAH,GAAa,MAAxC;EACA,MAAM6C,QAAQ,GAAG7C,GAAG,GAAG,OAAH,GAAa,MAAjC;EACA,MAAM8C,mBAAmB,GAAG,CAC1B;IAAEjkC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcgB,eAAgB,KAAI1B,aAAa,CAACW,GAAd,GAAoB,CAAE;EAA7F,CAD0B,EAE1B;IAAEhjC,MAAM,EAAE,GAAV;IAAeqV,OAAO,EAAE;EAAxB,CAF0B,EAG1B;IAAErV,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,kBAAiBX,aAAa,CAACY,GAAd,GAAoB,CAAE;EAA5E,CAH0B,CAA5B;EAKA,MAAMkB,kBAAkB,GAAG,CACzB;IAAElkC,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,IAAtB;IAA4B0tB,SAAS,EAAG,kBAAiBX,aAAa,CAACY,GAAd,GAAoB,CAAE;EAA/E,CADyB,EAEzB;IAAEhjC,MAAM,EAAE,GAAV;IAAeqV,OAAO,EAAE;EAAxB,CAFyB,EAGzB;IAAErV,MAAM,EAAE,CAAV;IAAaqV,OAAO,EAAE,CAAtB;IAAyB0tB,SAAS,EAAG,eAAcgB,eAAgB,KAAI1B,aAAa,CAACW,GAAd,GAAoB,CAAE;EAA7F,CAHyB,CAA3B;EAKA,MAAMmB,SAAS,GAAG1D,aAAa,GAAGwD,mBAAH,GAAyBC,kBAAxD;EACA,MAAME,aAAa,GAAGhE,gBAAgB,CAAC,WAAD,CAAtC;EACA,MAAMiE,yBAAyB,GAAG5xD,yDAAe,EAAjD;EACA2xD,aAAa,CAACE,SAAd,GAA0BT,YAAY,CAACS,SAAvC;EACAF,aAAa,CAAC91B,IAAd,GAAqBu1B,YAAY,CAACv1B,IAAlC;EACA81B,aAAa,CAACR,KAAd,GAAsBC,YAAY,CAACD,KAAnC;EACAS,yBAAyB,CAACh9B,UAA1B,CAAqC+8B,aAArC;EACAC,yBAAyB,CACtBx+B,YADH,CACgB;IACd,oBAAqB,GAAEm+B,QAAS,SADlB;IAEd72C,MAAM,EAAE,MAFM;IAGdo3C,OAAO,EAAE,EAHK;IAIdC,QAAQ,EAAE,UAJI;IAKd,CAACR,QAAD,GAAYF;EALE,CADhB,EAQGv+B,cARH,CAQkB,MAAM;IACtBs+B,YAAY,CAAC9kC,KAAb,CAAmBO,WAAnB,CAA+B,SAA/B,EAA0C,MAA1C;EACD,CAVD,EAWGoG,aAXH,CAWiB,MAAM;IACrBm+B,YAAY,CAAC9kC,KAAb,CAAmBO,WAAnB,CAA+B,SAA/B,EAA0C,EAA1C;IACA8kC,aAAa,CAACrlC,KAAd,CAAoBO,WAApB,CAAgC,SAAhC,EAA2C,MAA3C;EACD,CAdD,EAeGhB,SAfH,CAea6lC,SAfb;EAgBAjD,aAAa,CAAC35B,YAAd,CAA2B88B,yBAA3B;AACD,CAtCD;;AAuCA,MAAMrxD,sBAAsB,GAAG,CAACyxD,KAAD,EAAQnqD,IAAR,KAAiB;EAC9C,IAAI3E,EAAJ;;EACA,IAAI;IACF,MAAM+uD,MAAM,GAAG,6BAAf;IACA,MAAMC,OAAO,GAAG,SAAhB;IACA,MAAMC,SAAS,GAAG,WAAlB;IACA,MAAMC,MAAM,GAAG,IAAf;IACA,MAAMC,WAAW,GAAG,GAApB;IACA,MAAM54C,KAAK,GAAGu4C,KAAK,CAACvjC,aAAN,CAAoB/U,GAApB,KAA4B,KAA1C;IACA,MAAM44C,SAAS,GAAG74C,KAAK,GAAG,QAAH,GAAc,OAArC;IACA,MAAM84C,QAAQ,GAAG94C,KAAK,GAAG,KAAH,GAAW,MAAjC;IACA,MAAMhD,UAAU,GAAG5O,IAAI,CAAC4O,UAAxB;IACA,MAAMC,SAAS,GAAG7O,IAAI,CAAC6O,SAAvB;IACA,MAAMs3C,aAAa,GAAGnmD,IAAI,CAACqJ,SAAL,KAAmB,MAAzC;IACA,MAAMgyB,SAAS,GAAGzsB,UAAU,CAAC8X,aAAX,CAAyB,sBAAzB,CAAlB;IACA,MAAMikC,SAAS,GAAG/7C,UAAU,CAACouB,gBAAX,CAA4B,mEAA5B,CAAlB;IACA,MAAM4tB,kBAAkB,GAAGh8C,UAAU,CAACouB,gBAAX,CAA4B,mCAA5B,CAA3B;IACA,MAAM4pB,aAAa,GAAGzuD,yDAAe,EAArC;IACA,MAAM0yD,wBAAwB,GAAG1yD,yDAAe,EAAhD;IACAyuD,aAAa,CACV75B,UADH,CACcne,UADd,EAEGK,QAFH,CAEY,CAAC,CAAC5T,EAAE,GAAG2E,IAAI,CAACiP,QAAX,MAAyB,IAAzB,IAAiC5T,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,CAAvD,KAA6DwqD,QAFzE,EAGGn5B,MAHH,CAGU1sB,IAAI,CAAC0sB,MAAL,IAAe09B,MAHzB,EAIG99B,IAJH,CAIQ,MAJR,EAKGhB,iBALH,CAKqB,oBALrB;;IAMA,IAAIzc,SAAS,IAAIs7C,KAAK,KAAK,IAAvB,IAA+BA,KAAK,KAAKvqD,SAA7C,EAAwD;MACtD,MAAMkrD,iBAAiB,GAAG3yD,yDAAe,EAAzC;MACA2yD,iBAAiB,CAAC/9B,UAAlB,CAA6Bo9B,KAA7B;MACAvD,aAAa,CAAC35B,YAAd,CAA2B69B,iBAA3B;IACD;;IACD,IAAI,CAACzvB,SAAD,IAAcuvB,kBAAkB,CAACpuD,MAAnB,KAA8B,CAA5C,IAAiDmuD,SAAS,CAACnuD,MAAV,KAAqB,CAA1E,EAA6E;MAC3EquD,wBAAwB,CAAC99B,UAAzB,CAAoCne,UAAU,CAAC8X,aAAX,CAAyB,yDAAzB,CAApC,EAD2E,CAC+C;IAC3H,CAFD,MAGK;MACHmkC,wBAAwB,CAAC99B,UAAzB,CAAoCsO,SAApC,EADG,CAC6C;;MAChDwvB,wBAAwB,CAAC99B,UAAzB,CAAoC49B,SAApC;IACD;;IACD/D,aAAa,CAAC35B,YAAd,CAA2B49B,wBAA3B;;IACA,IAAI1E,aAAJ,EAAmB;MACjB0E,wBAAwB,CACrBr/B,iBADH,CACqB,CAAC6+B,OAAD,CADrB,EAEG15B,MAFH,CAEU,WAFV,EAEwB,cAAa+5B,QAAS,GAF9C,EAEmD,cAAaH,MAAO,GAFvE,EAGG55B,MAHH,CAGU05B,OAHV,EAGmBG,WAHnB,EAGgC,CAHhC;IAID,CALD,MAMK;MACH;MACAK,wBAAwB,CACrBr/B,iBADH,CACqB,CAAC6+B,OAAD,CADrB,EAEG15B,MAFH,CAEU,WAFV,EAEwB,cAAa85B,SAAU,GAF/C,EAEoD,cAAaF,MAAO,GAFxE;IAGD;;IACD,IAAIlvB,SAAJ,EAAe;MACb,MAAM0vB,0BAA0B,GAAGlK,MAAM,CAACxlB,SAAD,CAAN,CAAkB3U,aAAlB,CAAgC,oBAAhC,CAAnC;;MACA,IAAIqkC,0BAAJ,EAAgC;QAC9B,MAAMC,yBAAyB,GAAGD,0BAA0B,CAACrkC,aAA3B,CAAyC,mBAAzC,CAAlC;QACA,MAAMukC,0BAA0B,GAAGF,0BAA0B,CAACrkC,aAA3B,CAAyC,oBAAzC,CAAnC;QACA,MAAMwkC,wBAAwB,GAAG/yD,yDAAe,EAAhD;QACA,MAAMgzD,uBAAuB,GAAGhzD,yDAAe,EAA/C;QACA,MAAMizD,wBAAwB,GAAGjzD,yDAAe,EAAhD;QACA+yD,wBAAwB,CACrBn+B,UADH,CACcg+B,0BADd,EAEGx/B,YAFH,CAEgB;UAAEwP,OAAO,EAAE,GAAX;UAAgBkvB,OAAO,EAAE;QAAzB,CAFhB,EAGGr+B,WAHH,CAGe;UAAEmP,OAAO,EAAE,EAAX;UAAekvB,OAAO,EAAE;QAAxB,CAHf;QAIAkB,uBAAuB,CACpBp+B,UADH,CACci+B,yBADd,EACyC;QADzC,CAEGx/B,iBAFH,CAEqB,CAAC6+B,OAAD,CAFrB,EAGG15B,MAHH,CAGU05B,OAHV,EAGmB,CAHnB,EAGsB,GAHtB;QAIAe,wBAAwB,CACrBr+B,UADH,CACck+B,0BADd,EAC0C;QAD1C,CAEGz/B,iBAFH,CAEqB,CAAC6+B,OAAD,CAFrB,EAGG15B,MAHH,CAGU05B,OAHV,EAGmB,IAHnB,EAGyB,GAHzB;QAIAa,wBAAwB,CAACj+B,YAAzB,CAAsC,CAACk+B,uBAAD,EAA0BC,wBAA1B,CAAtC;QACAP,wBAAwB,CAAC59B,YAAzB,CAAsC,CAACi+B,wBAAD,CAAtC;MACD;IACF;;IACD,MAAMG,4BAA4B,GAAGz8C,UAAU,CAAC8X,aAAX,CAAyB,qCAAzB,CAArC;IACA,MAAM;MAAEihC,OAAF;MAAWC;IAAX,IAAwBjB,0BAA0B,CAACC,aAAD,EAAgBh1C,KAAhB,EAAuBu0C,aAAvB,EAAsCv3C,UAAtC,EAAkDC,SAAlD,CAAxD;IACA+7C,kBAAkB,CAAClvD,OAAnB,CAA4B4vD,iBAAD,IAAuB;MAChD,MAAMC,eAAe,GAAGpzD,yDAAe,EAAvC;MACAozD,eAAe,CAACx+B,UAAhB,CAA2Bu+B,iBAA3B;MACA1E,aAAa,CAAC35B,YAAd,CAA2Bs+B,eAA3B;MACA,MAAMC,aAAa,GAAGrzD,yDAAe,EAArC;MACAqzD,aAAa,CAACz+B,UAAd,CAAyBu+B,iBAAiB,CAAC5kC,aAAlB,CAAgC,WAAhC,CAAzB,EALgD,CAKwB;;MACxE,MAAM+kC,sBAAsB,GAAGtzD,yDAAe,EAA9C;MACA,MAAMkuD,OAAO,GAAGtxC,KAAK,CAACwb,IAAN,CAAW+6B,iBAAiB,CAACtuB,gBAAlB,CAAmC,0BAAnC,CAAX,CAAhB;MACA,MAAMspB,YAAY,GAAGgF,iBAAiB,CAAC1uD,OAAlB,CAA0B,YAA1B,CAArB;MACA,MAAM8uD,cAAc,GAAGpF,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAACzpD,SAAb,CAAuBs6B,QAAvB,CAAgC,mCAAhC,CAAnF;MACA,IAAIw0B,gBAAJ;;MACA,IAAIxF,aAAJ,EAAmB;QACjBwF,gBAAgB,GAAGtF,OAAO,CAACztD,MAAR,CAAgBgzD,MAAD,IAAY;UAC5C,MAAMC,gBAAgB,GAAGD,MAAM,CAAC/uD,SAAP,CAAiBs6B,QAAjB,CAA0B,kBAA1B,CAAzB;UACA,OAAQ00B,gBAAgB,IAAI,CAACH,cAAtB,IAAyC,CAACG,gBAAjD;QACD,CAHkB,CAAnB;MAID,CALD,MAMK;QACHF,gBAAgB,GAAGtF,OAAO,CAACztD,MAAR,CAAgBgzD,MAAD,IAAY,CAACA,MAAM,CAAC/uD,SAAP,CAAiBs6B,QAAjB,CAA0B,kBAA1B,CAA5B,CAAnB;MACD;;MACDs0B,sBAAsB,CAAC1+B,UAAvB,CAAkC4+B,gBAAlC;MACA,MAAMG,oBAAoB,GAAG3zD,yDAAe,EAA5C;MACA2zD,oBAAoB,CAAC/+B,UAArB,CAAgCu+B,iBAAiB,CAACtuB,gBAAlB,CAAmC,8DAAnC,CAAhC;MACA,MAAM+uB,iBAAiB,GAAG5zD,yDAAe,EAAzC;MACA4zD,iBAAiB,CAACh/B,UAAlB,CAA6B8zB,MAAM,CAACyK,iBAAD,CAAN,CAA0B5kC,aAA1B,CAAwC,qBAAxC,CAA7B,EAxBgD,CAwB8C;;MAC9F,MAAMogC,kBAAkB,GAAG3uD,yDAAe,EAA1C;MACA,MAAM0vD,YAAY,GAAGyD,iBAAiB,CAAC5kC,aAAlB,CAAgC,iBAAhC,CAArB;;MACA,IAAImhC,YAAJ,EAAkB;QAChBf,kBAAkB,CAAC/5B,UAAnB,CAA8B86B,YAA9B;MACD;;MACD0D,eAAe,CAACt+B,YAAhB,CAA6B,CAC3Bu+B,aAD2B,EAE3BC,sBAF2B,EAG3BK,oBAH2B,EAI3BC,iBAJ2B,EAK3BjF,kBAL2B,CAA7B;MAOA2E,sBAAsB,CAAC96B,MAAvB,CAA8B05B,OAA9B,EAAuC,IAAvC,EAA6C,CAA7C;MACAyB,oBAAoB,CAACn7B,MAArB,CAA4B05B,OAA5B,EAAqC,IAArC,EAA2C,CAA3C;;MACA,IAAIlE,aAAJ,EAAmB;QACjB,IAAI,CAACuF,cAAL,EAAqB;UACnBF,aAAa,CACV76B,MADH,CACU,WADV,EACwB,cAAa+5B,QAAS,GAD9C,EACmD,cAAaH,MAAO,GADvE,EAEG55B,MAFH,CAEU05B,OAFV,EAEmB,IAFnB,EAEyB,CAFzB;QAGD;;QACDyB,oBAAoB,CAACn7B,MAArB,CAA4B,WAA5B,EAA0C,cAAa+5B,QAAS,GAAhE,EAAqE,cAAaH,MAAO,GAAzF,EANiB,CAOjB;;QACAzD,kBAAkB,CAACn2B,MAAnB,CAA0B05B,OAA1B,EAAmC,IAAnC,EAAyC,CAAzC;MACD,CATD,MAUK;QACH;QACA,IAAI,CAACgB,4BAAL,EAAmC;UACjCG,aAAa,CACV76B,MADH,CACU,WADV,EACwB,cAAa85B,SAAU,GAD/C,EACoD,cAAaF,MAAO,GADxE,EAEG55B,MAFH,CAEU05B,OAFV,EAEmB,IAFnB,EAEyB,CAFzB;QAGD;;QACDyB,oBAAoB,CAACn7B,MAArB,CAA4B,WAA5B,EAA0C,cAAa85B,SAAU,GAAjE,EAAsE,cAAaF,MAAO,GAA1F;QACAwB,iBAAiB,CAACvgC,iBAAlB,CAAoC,CAAC6+B,OAAD,EAAU,WAAV,CAApC;QACA,MAAM2B,iBAAiB,GAAG1F,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAAC2F,WAAnG;;QACA,IAAI,CAACD,iBAAL,EAAwB;UACtBD,iBAAiB,CAACp7B,MAAlB,CAAyB05B,OAAzB,EAAkC,IAAlC,EAAwC,gBAAxC;QACD,CAFD,MAGK;UACH0B,iBAAiB,CAACp7B,MAAlB,CAAyB,WAAzB,EAAsC/e,KAAK,GAAG,mBAAH,GAAyB,kBAApE,EAAwF,iBAAxF;QACD,CAfE,CAgBH;;;QACA,IAAI,CAAC+1C,OAAL,EAAc;UACZb,kBAAkB,CAACn2B,MAAnB,CAA0B05B,OAA1B,EAAmC,IAAnC,EAAyC,CAAzC;QACD;;QACD,IAAIxC,YAAY,IAAI,CAACF,OAArB,EAA8B;UAC5B,MAAMuE,mBAAmB,GAAG/zD,yDAAe,EAA3C;UACA+zD,mBAAmB,CAChBn/B,UADH,CACc8zB,MAAM,CAACgH,YAAD,CAAN,CAAqBnhC,aAArB,CAAmC,cAAnC,CADd,EACkE;UADlE,CAEGiK,MAFH,CAEW,WAFX,EAEuB/e,KAAK,GAAG,oBAAH,GAA0B,mBAFtD,EAE2E,iBAF3E;UAGA25C,eAAe,CAACt+B,YAAhB,CAA6Bi/B,mBAA7B;QACD;MACF;IACF,CA7ED,EA1EE,CAwJF;;IACA,IAAIr9C,SAAJ,EAAe;MACb,MAAMs9C,cAAc,GAAGh0D,yDAAe,EAAtC;MACA,MAAMi0D,gBAAgB,GAAGv9C,SAAS,CAAC6X,aAAV,CAAwB,sBAAxB,CAAzB;MACA,MAAM2lC,iBAAiB,GAAGx9C,SAAS,CAACmuB,gBAAV,CAA2B,mCAA3B,CAA1B;MACA,MAAMsvB,gBAAgB,GAAGz9C,SAAS,CAACmuB,gBAAV,CAA2B,mEAA3B,CAAzB;;MACA,IAAI,CAACovB,gBAAD,IAAqBC,iBAAiB,CAAC7vD,MAAlB,KAA6B,CAAlD,IAAuD8vD,gBAAgB,CAAC9vD,MAAjB,KAA4B,CAAvF,EAA0F;QACxF2vD,cAAc,CAACp/B,UAAf,CAA0Ble,SAAS,CAAC6X,aAAV,CAAwB,yDAAxB,CAA1B,EADwF,CACuB;MAChH,CAFD,MAGK;QACHylC,cAAc,CAACp/B,UAAf,CAA0Bq/B,gBAA1B,EADG,CAC0C;;QAC7CD,cAAc,CAACp/B,UAAf,CAA0Bu/B,gBAA1B;MACD;;MACD1F,aAAa,CAAC35B,YAAd,CAA2Bk/B,cAA3B;;MACA,IAAIhG,aAAJ,EAAmB;QACjB;QACAgG,cAAc,CACX3gC,iBADH,CACqB,CAAC6+B,OAAD,CADrB,EAEG15B,MAFH,CAEU,WAFV,EAEwB,cAAa45B,MAAO,GAF5C,EAEgD34C,KAAK,GAAG,mBAAH,GAAyB,kBAF9E;QAGA,MAAM26C,WAAW,GAAG9Q,qDAAiB,CAAC5sC,SAAD,CAArC;QACA+3C,aAAa,CAACx7B,aAAd,CAA4B,MAAM;UAChC,IAAIw7B,aAAa,CAAC76B,YAAd,OAAiC,QAArC,EAA+C;YAC7CwgC,WAAW,CAAC9nC,KAAZ,CAAkBO,WAAlB,CAA8B,SAA9B,EAAyC,MAAzC;UACD;QACF,CAJD;MAKD,CAXD,MAYK;QACH;QACAmnC,cAAc,CACXx7B,MADH,CACU,WADV,EACwB,cAAa45B,MAAO,GAD5C,EACiD,cAAaG,QAAS,GADvE,EAEG/5B,MAFH,CAEU05B,OAFV,EAEmB,CAFnB,EAEsBG,WAFtB;MAGD;;MACD,IAAI4B,gBAAJ,EAAsB;QACpB,MAAMI,yBAAyB,GAAG3L,MAAM,CAACuL,gBAAD,CAAN,CAAyB1lC,aAAzB,CAAuC,oBAAvC,CAAlC;;QACA,IAAI8lC,yBAAJ,EAA+B;UAC7B,MAAMC,wBAAwB,GAAGD,yBAAyB,CAAC9lC,aAA1B,CAAwC,mBAAxC,CAAjC;UACA,MAAMgmC,yBAAyB,GAAGF,yBAAyB,CAAC9lC,aAA1B,CAAwC,oBAAxC,CAAlC;UACA,MAAMimC,uBAAuB,GAAGx0D,yDAAe,EAA/C;UACA,MAAMy0D,sBAAsB,GAAGz0D,yDAAe,EAA9C;UACA,MAAM00D,uBAAuB,GAAG10D,yDAAe,EAA/C;UACAw0D,uBAAuB,CACpB5/B,UADH,CACcy/B,yBADd,EAEGjhC,YAFH,CAEgB;YAAEwP,OAAO,EAAE,GAAX;YAAgBkvB,OAAO,EAAE;UAAzB,CAFhB,EAGGr+B,WAHH,CAGe;YAAEmP,OAAO,EAAE,EAAX;YAAekvB,OAAO,EAAE;UAAxB,CAHf;UAIA2C,sBAAsB,CACnB7/B,UADH,CACc0/B,wBADd,EACwC;UADxC,CAEGjhC,iBAFH,CAEqB,CAAC6+B,OAAD,CAFrB,EAGG15B,MAHH,CAGU05B,OAHV,EAGmB,GAHnB,EAGwB,CAHxB;UAIAwC,uBAAuB,CACpB9/B,UADH,CACc2/B,yBADd,EACyC;UADzC,CAEGlhC,iBAFH,CAEqB,CAAC6+B,OAAD,CAFrB,EAGG15B,MAHH,CAGU05B,OAHV,EAGmB,GAHnB,EAGwB,IAHxB;UAIAsC,uBAAuB,CAAC1/B,YAAxB,CAAqC,CAAC2/B,sBAAD,EAAyBC,uBAAzB,CAArC;UACAV,cAAc,CAACl/B,YAAf,CAA4B,CAAC0/B,uBAAD,CAA5B;QACD;MACF;;MACDN,iBAAiB,CAAC3wD,OAAlB,CAA2BoxD,gBAAD,IAAsB;QAC9C,MAAMC,cAAc,GAAG50D,yDAAe,EAAtC;QACA40D,cAAc,CAAChgC,UAAf,CAA0B+/B,gBAA1B;QACA,MAAME,YAAY,GAAG70D,yDAAe,EAApC;QACA60D,YAAY,CAACjgC,UAAb,CAAwB+/B,gBAAgB,CAACpmC,aAAjB,CAA+B,WAA/B,CAAxB,EAJ8C,CAIwB;;QACtE,MAAMumC,qBAAqB,GAAG90D,yDAAe,EAA7C;QACA,MAAMkuD,OAAO,GAAGyG,gBAAgB,CAAC9vB,gBAAjB,CAAkC,0BAAlC,CAAhB;QACA,MAAMspB,YAAY,GAAGwG,gBAAgB,CAAClwD,OAAjB,CAAyB,YAAzB,CAArB;QACA,MAAM8uD,cAAc,GAAGpF,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAACzpD,SAAb,CAAuBs6B,QAAvB,CAAgC,mCAAhC,CAAnF;QACA,MAAMw0B,gBAAgB,GAAG52C,KAAK,CAACwb,IAAN,CAAW81B,OAAX,EAAoBztD,MAApB,CAA4BgzD,MAAD,IAAY;UAC9D,MAAMC,gBAAgB,GAAGD,MAAM,CAAC/uD,SAAP,CAAiBs6B,QAAjB,CAA0B,kBAA1B,CAAzB;UACA,OAAQ00B,gBAAgB,IAAI,CAACH,cAAtB,IAAyC,CAACG,gBAAjD;QACD,CAHwB,CAAzB;QAIAoB,qBAAqB,CAAClgC,UAAtB,CAAiC4+B,gBAAjC;QACA,MAAMuB,mBAAmB,GAAG/0D,yDAAe,EAA3C;QACA,MAAMg1D,qBAAqB,GAAGL,gBAAgB,CAAC9vB,gBAAjB,CAAkC,8DAAlC,CAA9B;;QACA,IAAImwB,qBAAqB,CAAC3wD,MAAtB,GAA+B,CAAnC,EAAsC;UACpC0wD,mBAAmB,CAACngC,UAApB,CAA+BogC,qBAA/B;QACD;;QACD,MAAMC,gBAAgB,GAAGj1D,yDAAe,EAAxC;QACAi1D,gBAAgB,CAACrgC,UAAjB,CAA4B8zB,MAAM,CAACiM,gBAAD,CAAN,CAAyBpmC,aAAzB,CAAuC,qBAAvC,CAA5B,EApB8C,CAoB8C;;QAC5F,MAAMugC,iBAAiB,GAAG9uD,yDAAe,EAAzC;QACA,MAAM0vD,YAAY,GAAGiF,gBAAgB,CAACpmC,aAAjB,CAA+B,iBAA/B,CAArB;;QACA,IAAImhC,YAAJ,EAAkB;UAChBZ,iBAAiB,CAACl6B,UAAlB,CAA6B86B,YAA7B;QACD;;QACDkF,cAAc,CAAC9/B,YAAf,CAA4B,CAC1B+/B,YAD0B,EAE1BC,qBAF0B,EAG1BC,mBAH0B,EAI1BjG,iBAJ0B,EAK1BmG,gBAL0B,CAA5B;QAOAxG,aAAa,CAAC35B,YAAd,CAA2B8/B,cAA3B,EAjC8C,CAkC9C;;QACA9F,iBAAiB,CAACt2B,MAAlB,CAAyB05B,OAAzB,EAAkC,IAAlC,EAAwC,CAAxC;QACA4C,qBAAqB,CAACt8B,MAAtB,CAA6B05B,OAA7B,EAAsC,IAAtC,EAA4C,CAA5C;QACA6C,mBAAmB,CAACv8B,MAApB,CAA2B05B,OAA3B,EAAoC,IAApC,EAA0C,CAA1C;;QACA,IAAIlE,aAAJ,EAAmB;UACjB,IAAI,CAACuF,cAAL,EAAqB;YACnB;YACAsB,YAAY,CACTr8B,MADH,CACU,WADV,EACwB,cAAa45B,MAAO,GAD5C,EACgD34C,KAAK,GAAG,mBAAH,GAAyB,kBAD9E,EAEG+e,MAFH,CAEU05B,OAFV,EAEmB,IAFnB,EAEyB,CAFzB;UAGD;;UACD6C,mBAAmB,CAACv8B,MAApB,CAA2B,WAA3B,EAAyC,cAAa45B,MAAO,GAA7D,EAAiE34C,KAAK,GAAG,mBAAH,GAAyB,kBAA/F;UACAw7C,gBAAgB,CAAC5hC,iBAAjB,CAAmC,CAAC6+B,OAAD,EAAU,WAAV,CAAnC,EARiB,CASjB;UACA;;UACA,MAAM2B,iBAAiB,GAAG1F,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,KAAK,CAA/C,GAAmD,KAAK,CAAxD,GAA4DA,YAAY,CAAC2F,WAAnG;;UACA,IAAI,CAACD,iBAAL,EAAwB;YACtBoB,gBAAgB,CAACz8B,MAAjB,CAAwB05B,OAAxB,EAAiC,gBAAjC,EAAmD,CAAnD;UACD,CAFD,MAGK;YACH+C,gBAAgB,CAACz8B,MAAjB,CAAwB,WAAxB,EAAqC,iBAArC,EAAwD/e,KAAK,GAAG,mBAAH,GAAyB,kBAAtF;UACD;;UACD,IAAIi2C,YAAY,IAAI,CAACD,QAArB,EAA+B;YAC7B,MAAMyF,kBAAkB,GAAGl1D,yDAAe,EAA1C;YACAk1D,kBAAkB,CACftgC,UADH,CACc8zB,MAAM,CAACgH,YAAD,CAAN,CAAqBnhC,aAArB,CAAmC,cAAnC,CADd,EACkE;YADlE,CAEGiK,MAFH,CAEU,WAFV,EAEwB,cAAa45B,MAAO,GAF5C,EAEiD,cAAa,CAAC34C,KAAK,GAAG,CAAC,GAAJ,GAAU,GAAhB,IAAuB,IAAK,GAF1F;YAGAm7C,cAAc,CAAC9/B,YAAf,CAA4BogC,kBAA5B;UACD;QACF,CAzBD,MA0BK;UACH;UACA,IAAI,CAAC3B,cAAL,EAAqB;YACnBsB,YAAY,CACTr8B,MADH,CACU,WADV,EACwB,cAAa45B,MAAO,GAD5C,EACiD,cAAaG,QAAS,GADvE,EAEG/5B,MAFH,CAEU05B,OAFV,EAEmB,IAFnB,EAEyB,CAFzB,EAGGx+B,gBAHH,CAGoB,CAACy+B,SAAD,EAAYD,OAAZ,CAHpB;UAID;;UACD6C,mBAAmB,CAChBv8B,MADH,CACU,WADV,EACwB,cAAa45B,MAAO,GAD5C,EACiD,cAAaG,QAAS,GADvE,EAEG7+B,gBAFH,CAEoB,CAACy+B,SAAD,EAAYD,OAAZ,CAFpB;UAGApD,iBAAiB,CAACp7B,gBAAlB,CAAmC,CAACw+B,OAAD,CAAnC;UACA2C,YAAY,CAACnhC,gBAAb,CAA8B,CAACw+B,OAAD,CAA9B;UACA4C,qBAAqB,CAACphC,gBAAtB,CAAuC,CAACw+B,OAAD,CAAvC;QACD;MACF,CA/ED;IAgFD;;IACD,OAAOzD,aAAP;EACD,CAlSD,CAmSA,OAAOjS,GAAP,EAAY;IACV,MAAMA,GAAN;EACD;AACF,CAxSD;;;;;;;;;;;;;;;;;;;ACtLA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AACA,MAAM2Y,QAAQ,GAAG,MAAM;EACnB,OAAOnvB,qDAAc,EAArB;AACH,CAFD;;AAIA,MAAMhlC,oBAAoB,GAAG,CAACyX,GAAD,EAAMwD,OAAN,KAAkB;EAC7C,IAAI,OAAOnE,MAAP,KAAkB,WAAtB,EAAmC,OAAOrJ,OAAO,CAACC,OAAR,EAAP;EACnC,OAAOymD,QAAQ,GAAGlgD,IAAX,CAAgB,MAAM;IAC7B2jB,2DAAa;IACb,OAAO4f,qDAAa,CAACwR,IAAI,CAACltC,KAAL,CAAW,06oBAAX,CAAD,EAAy7oBb,OAAz7oB,CAApB;EACC,CAHM,CAAP;AAID,CAND;;;;;;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMzb,qBAAqB,GAAG,CAAC62C,CAAD,EAAIxvC,IAAJ,KAAa;EACzC,IAAI3E,EAAJ,EAAQyQ,EAAR,EAAYyhD,EAAZ;;EACA,MAAMC,UAAU,GAAG,MAAnB;EACA,MAAMjD,MAAM,GAAG,KAAf;EACA,MAAMpE,aAAa,GAAGnmD,IAAI,CAACqJ,SAAL,KAAmB,MAAzC;EACA,MAAMuF,UAAU,GAAG5O,IAAI,CAAC4O,UAAxB;EACA,MAAMC,SAAS,GAAG7O,IAAI,CAAC6O,SAAvB;EACA,MAAM4+C,cAAc,GAAGhS,qDAAiB,CAAC7sC,UAAD,CAAxC;EACA,MAAM8+C,kBAAkB,GAAGD,cAAc,CAAC/mC,aAAf,CAA6B,aAA7B,CAA3B;EACA,MAAMinC,cAAc,GAAGx1D,yDAAe,EAAtC;EACAw1D,cAAc,CAAC5gC,UAAf,CAA0B0gC,cAA1B,EAA0CnhC,IAA1C,CAA+C,MAA/C,EAAuDhB,iBAAvD,CAAyE,oBAAzE,EAVyC,CAWzC;;EACA,IAAI66B,aAAJ,EAAmB;IACjBwH,cAAc,CAAC1+C,QAAf,CAAwB,CAAC,CAAC5T,EAAE,GAAG2E,IAAI,CAACiP,QAAX,MAAyB,IAAzB,IAAiC5T,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,CAAvD,KAA6D,GAArF,EAA0FqxB,MAA1F,CAAiG,kCAAjG;EACD,CAFD,MAGK;IACHihC,cAAc,CACX1+C,QADH,CACY,CAAC,CAACnD,EAAE,GAAG9L,IAAI,CAACiP,QAAX,MAAyB,IAAzB,IAAiCnD,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,CAAvD,KAA6D,GADzE,EAEG4gB,MAFH,CAEU,gCAFV,EAGGiE,MAHH,CAGU,WAHV,EAGwB,cAAa68B,UAAW,GAHhD,EAGqD,cAAajD,MAAO,GAHzE,EAIG55B,MAJH,CAIU,SAJV,EAIqB,IAJrB,EAI2B,CAJ3B;EAKD,CArBwC,CAsBzC;;;EACA,IAAI+8B,kBAAJ,EAAwB;IACtB,MAAMnC,eAAe,GAAGpzD,yDAAe,EAAvC;IACAozD,eAAe,CAACx+B,UAAhB,CAA2B2gC,kBAA3B;IACAC,cAAc,CAAC1gC,YAAf,CAA4Bs+B,eAA5B;EACD,CA3BwC,CA4BzC;;;EACA,IAAI18C,SAAS,IAAIs3C,aAAjB,EAAgC;IAC9B;IACAwH,cAAc,CAAC1+C,QAAf,CAAwB,CAAC,CAACs+C,EAAE,GAAGvtD,IAAI,CAACiP,QAAX,MAAyB,IAAzB,IAAiCs+C,EAAE,KAAK,KAAK,CAA7C,GAAiDA,EAAjD,GAAsD,CAAvD,KAA6D,GAArF,EAA0F7gC,MAA1F,CAAiG,kCAAjG;IACA,MAAM6/B,WAAW,GAAGp0D,yDAAe,EAAnC;IACAo0D,WAAW,CACRx/B,UADH,CACc0uB,qDAAiB,CAAC5sC,SAAD,CAD/B,EAEG0b,QAFH,CAEa2D,WAAD,IAAiB;MAC3B,IAAIA,WAAW,KAAK,CAAhB,IAAqBq+B,WAAW,CAACvjC,QAAZ,CAAqBxsB,MAArB,GAA8B,CAAvD,EAA0D;QACxD+vD,WAAW,CAACvjC,QAAZ,CAAqB,CAArB,EAAwBvE,KAAxB,CAA8BO,WAA9B,CAA0C,SAA1C,EAAqD,MAArD;MACD;IACF,CAND,EAOG2L,MAPH,CAOU,WAPV,EAOwB,cAAa45B,MAAO,GAP5C,EAOiD,cAAaiD,UAAW,GAPzE,EAQG78B,MARH,CAQU,SARV,EAQqB,CARrB,EAQwB,CARxB;IASAg9B,cAAc,CAAC1gC,YAAf,CAA4Bs/B,WAA5B;EACD;;EACD,OAAOoB,cAAP;AACD,CA7CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIC,MAAM,GAAG,CAAb;AACA,MAAMC,gBAAgB,GAAG,IAAIxnD,OAAJ,EAAzB;;AACA,MAAMynD,gBAAgB,GAAIpuD,OAAD,IAAa;EACpC,OAAO;IACLoG,MAAM,CAACsO,OAAD,EAAU;MACd,OAAO25C,aAAa,CAACruD,OAAD,EAAU0U,OAAV,CAApB;IACD,CAHI;;IAILuK,OAAO,CAAClZ,IAAD,EAAOmZ,IAAP,EAAajV,EAAb,EAAiB;MACtB,OAAOqkD,cAAc,CAACnnC,QAAD,EAAWphB,IAAX,EAAiBmZ,IAAjB,EAAuBlf,OAAvB,EAAgCiK,EAAhC,CAArB;IACD,CANI;;IAOCkV,MAAN,GAAe;MAAA;QACb,OAAOovC,UAAU,CAACpnC,QAAD,EAAWnnB,OAAX,CAAjB;MADa;IAEd;;EATI,CAAP;AAWD,CAZD;;AAaA,MAAM9H,eAAe,GAAG,aAAck2D,gBAAgB,CAAC,WAAD,CAAtD;AACA,MAAMn2D,qBAAqB,GAAG,aAAcm2D,gBAAgB,CAAC,kBAAD,CAA5D;AACA,MAAMj2D,iBAAiB,GAAG,aAAci2D,gBAAgB,CAAC,aAAD,CAAxD;AACA,MAAM91D,eAAe,GAAG,aAAc81D,gBAAgB,CAAC,WAAD,CAAtD;AACA,MAAM/1D,gBAAgB,GAAG,aAAc+1D,gBAAgB,CAAC,YAAD,CAAvD;AACA,MAAM71D,iBAAiB,GAAG,aAAc61D,gBAAgB,CAAC,aAAD,CAAxD;AACA,MAAM51D,eAAe,GAAG,aAAc41D,gBAAgB,CAAC,WAAD,CAAtD;;AACA,MAAMI,cAAc,GAAIn0D,EAAD,IAAQ;EAC7B,IAAI,OAAO8sB,QAAP,KAAoB,WAAxB,EAAqC;IACnCsnC,gBAAgB,CAACtnC,QAAD,CAAhB;EACD;;EACD,MAAMunC,YAAY,GAAGR,MAAM,EAA3B;EACA7zD,EAAE,CAACq0D,YAAH,GAAkBA,YAAlB;;EACA,IAAI,CAACr0D,EAAE,CAACo8B,YAAH,CAAgB,IAAhB,CAAL,EAA4B;IAC1Bp8B,EAAE,CAAC4P,EAAH,GAAS,eAAcykD,YAAa,EAApC;EACD;AACF,CATD;;AAUA,MAAML,aAAa,GAAG,CAACruD,OAAD,EAAUM,IAAV,KAAmB;EACvC,IAAI,OAAOiQ,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACpQ,cAAd,KAAiC,WAAtE,EAAmF;IACjF,OAAOoQ,MAAM,CAACpQ,cAAP,CAAsBwuD,WAAtB,CAAkC3uD,OAAlC,EAA2C0N,IAA3C,CAAgD,MAAM;MAC3D,MAAMhR,OAAO,GAAGyqB,QAAQ,CAACC,aAAT,CAAuBpnB,OAAvB,CAAhB;MACAtD,OAAO,CAACS,SAAR,CAAkBM,GAAlB,CAAsB,gBAAtB;MACA;AACN;AACA;AACA;;MACMuB,MAAM,CAACoJ,MAAP,CAAc1L,OAAd,EAAuBsC,MAAM,CAACoJ,MAAP,CAAcpJ,MAAM,CAACoJ,MAAP,CAAc,EAAd,EAAkB9H,IAAlB,CAAd,EAAuC;QAAEsuD,aAAa,EAAE;MAAjB,CAAvC,CAAvB,EAP2D,CAQ3D;;MACAC,UAAU,CAAC1nC,QAAD,CAAV,CAAqB5e,WAArB,CAAiC7L,OAAjC;MACA,OAAO,IAAIwK,OAAJ,CAAaC,OAAD,IAAanP,uDAAgB,CAAC0E,OAAD,EAAUyK,OAAV,CAAzC,CAAP;IACD,CAXM,CAAP;EAYD;;EACD,OAAOD,OAAO,CAACC,OAAR,EAAP;AACD,CAhBD;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2nD,oBAAoB,GAAG,ucAA7B;;AACA,MAAMC,oBAAoB,GAAG,CAACzjD,GAAD,EAAM0jD,OAAN,KAAkB;EAC7C,IAAIC,UAAU,GAAG3jD,GAAG,CAAC0b,aAAJ,CAAkB8nC,oBAAlB,CAAjB;EACA,MAAM73B,UAAU,GAAGg4B,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAAK,CAA3C,GAA+C,KAAK,CAApD,GAAwDA,UAAU,CAACh4B,UAAtF;;EACA,IAAIA,UAAJ,EAAgB;IACd;IACAg4B,UAAU,GAAGh4B,UAAU,CAACjQ,aAAX,CAAyB8nC,oBAAzB,KAAkDG,UAA/D;EACD;;EACD,IAAIA,UAAJ,EAAgB;IACd13B,uDAAY,CAAC03B,UAAD,CAAZ;EACD,CAFD,MAGK;IACH;IACAD,OAAO,CAACx3B,KAAR;EACD;AACF,CAdD;;AAeA,MAAM03B,eAAe,GAAIF,OAAD,IAAaA,OAAO,CAAC7xD,SAAR,CAAkBs6B,QAAlB,CAA2B,gBAA3B,CAArC;;AACA,MAAM03B,mBAAmB,GAAG,CAAC7jD,GAAD,EAAM0jD,OAAN,KAAkB;EAC5C,MAAMnwD,MAAM,GAAGwW,KAAK,CAACwb,IAAN,CAAWvlB,GAAG,CAACgyB,gBAAJ,CAAqBwxB,oBAArB,CAAX,CAAf;EACA,IAAIM,SAAS,GAAGvwD,MAAM,CAAC/B,MAAP,GAAgB,CAAhB,GAAoB+B,MAAM,CAACA,MAAM,CAAC/B,MAAP,GAAgB,CAAjB,CAA1B,GAAgD,IAAhE;EACA,MAAMm6B,UAAU,GAAGm4B,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAAK,CAAzC,GAA6C,KAAK,CAAlD,GAAsDA,SAAS,CAACn4B,UAAnF;;EACA,IAAIA,UAAJ,EAAgB;IACd;IACAm4B,SAAS,GAAGn4B,UAAU,CAACjQ,aAAX,CAAyB8nC,oBAAzB,KAAkDM,SAA9D;EACD;;EACD,IAAIA,SAAJ,EAAe;IACbA,SAAS,CAAC53B,KAAV;EACD,CAFD,MAGK;IACH;IACAw3B,OAAO,CAACx3B,KAAR;EACD;AACF,CAfD;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM63B,iBAAiB,GAAG,CAACtmD,EAAD,EAAK4H,GAAL,KAAa;EACrC,MAAM2+C,WAAW,GAAGf,UAAU,CAAC59C,GAAD,EAAM,yEAAN,CAA9B;EACA,MAAMmV,MAAM,GAAG/c,EAAE,CAAC+c,MAAlB;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EACE,IAAI,CAACwpC,WAAD,IAAgB,CAACxpC,MAArB,EAA6B;IAC3B;EACD;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACE,IAAIwpC,WAAW,CAACnyD,SAAZ,CAAsBs6B,QAAtB,CAA+B,wBAA/B,CAAJ,EAA8D;IAC5D;EACD;;EACD,MAAM83B,eAAe,GAAG,MAAM;IAC5B;AACJ;AACA;AACA;AACA;AACA;IACI,IAAID,WAAW,KAAKxpC,MAApB,EAA4B;MAC1BwpC,WAAW,CAACE,SAAZ,GAAwBtvD,SAAxB;MACA;AACN;AACA;AACA;AACA;AACA;AACA;AACA;IACK,CAVD,MAWK;MACH;AACN;AACA;AACA;MACM,MAAMuvD,WAAW,GAAGz4B,uDAAc,CAACs4B,WAAD,CAAlC;;MACA,IAAI,CAACG,WAAW,CAACh4B,QAAZ,CAAqB3R,MAArB,CAAL,EAAmC;QACjC;MACD;;MACD,MAAM4pC,cAAc,GAAGD,WAAW,CAACzoC,aAAZ,CAA0B,sBAA1B,CAAvB;;MACA,IAAI,CAAC0oC,cAAL,EAAqB;QACnB;MACD;MACD;AACN;AACA;AACA;;;MACM,IAAIA,cAAc,CAACj4B,QAAf,CAAwB3R,MAAxB,CAAJ,EAAqC;QACnCwpC,WAAW,CAACE,SAAZ,GAAwB1pC,MAAxB;MACD,CAFD,MAGK;QACH;AACR;AACA;AACA;AACA;;QACQ;AACR;AACA;AACA;AACA;AACA;AACA;QACQ,MAAM0pC,SAAS,GAAGF,WAAW,CAACE,SAA9B,CAbG,CAcH;;QACAT,oBAAoB,CAACW,cAAD,EAAiBJ,WAAjB,CAApB;QACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QACQ,IAAIE,SAAS,KAAK7+C,GAAG,CAAC6oC,aAAtB,EAAqC;UACnC2V,mBAAmB,CAACO,cAAD,EAAiBJ,WAAjB,CAAnB;QACD;;QACDA,WAAW,CAACE,SAAZ,GAAwB7+C,GAAG,CAAC6oC,aAA5B;MACD;IACF;EACF,CArED;;EAsEA,MAAMmW,eAAe,GAAG,MAAM;IAC5B;AACJ;AACA;AACA;IACI,IAAIL,WAAW,CAAC73B,QAAZ,CAAqB3R,MAArB,CAAJ,EAAkC;MAChCwpC,WAAW,CAACE,SAAZ,GAAwB1pC,MAAxB;IACD,CAFD,MAGK;MACH;AACN;AACA;AACA;AACA;AACA;;MACM;AACN;AACA;AACA;AACA;AACA;AACA;MACM,MAAM0pC,SAAS,GAAGF,WAAW,CAACE,SAA9B,CAdG,CAeH;;MACAT,oBAAoB,CAACO,WAAD,EAAcA,WAAd,CAApB;MACA;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MACM,IAAIE,SAAS,KAAK7+C,GAAG,CAAC6oC,aAAtB,EAAqC;QACnC2V,mBAAmB,CAACG,WAAD,EAAcA,WAAd,CAAnB;MACD;;MACDA,WAAW,CAACE,SAAZ,GAAwB7+C,GAAG,CAAC6oC,aAA5B;IACD;EACF,CAvCD;;EAwCA,IAAI8V,WAAW,CAACr4B,UAAhB,EAA4B;IAC1B04B,eAAe;EAChB,CAFD,MAGK;IACHJ,eAAe;EAChB;AACF,CAhJD;;AAiJA,MAAMd,gBAAgB,GAAI99C,GAAD,IAAS;EAChC,IAAIu9C,MAAM,KAAK,CAAf,EAAkB;IAChBA,MAAM,GAAG,CAAT;IACAv9C,GAAG,CAAC1H,gBAAJ,CAAqB,OAArB,EAA+BF,EAAD,IAAQ;MACpCsmD,iBAAiB,CAACtmD,EAAD,EAAK4H,GAAL,CAAjB;IACD,CAFD,EAEG,IAFH,EAFgB,CAKhB;;IACAA,GAAG,CAAC1H,gBAAJ,CAAqB,eAArB,EAAuCF,EAAD,IAAQ;MAC5C,MAAMumD,WAAW,GAAGf,UAAU,CAAC59C,GAAD,CAA9B;;MACA,IAAI2+C,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,WAAW,CAACM,eAA1E,EAA2F;QACzF7mD,EAAE,CAACC,MAAH,CAAUuI,QAAV,CAAmBskB,2FAAnB,EAAiD,MAAM;UACrD,OAAOy5B,WAAW,CAACrwC,OAAZ,CAAoB/e,SAApB,EAA+B2vD,QAA/B,CAAP;QACD,CAFD;MAGD;IACF,CAPD,EANgB,CAchB;;IACAl/C,GAAG,CAAC1H,gBAAJ,CAAqB,OAArB,EAA+BF,EAAD,IAAQ;MACpC,IAAIA,EAAE,CAACiH,GAAH,KAAW,QAAf,EAAyB;QACvB,MAAMs/C,WAAW,GAAGf,UAAU,CAAC59C,GAAD,CAA9B;;QACA,IAAI2+C,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,WAAW,CAACM,eAA1E,EAA2F;UACzFN,WAAW,CAACrwC,OAAZ,CAAoB/e,SAApB,EAA+B2vD,QAA/B;QACD;MACF;IACF,CAPD;EAQD;AACF,CAzBD;;AA0BA,MAAMvB,cAAc,GAAG,CAAC39C,GAAD,EAAM5K,IAAN,EAAYmZ,IAAZ,EAAkB4wC,UAAlB,EAA8B7lD,EAA9B,KAAqC;EAC1D,MAAM+kD,OAAO,GAAGT,UAAU,CAAC59C,GAAD,EAAMm/C,UAAN,EAAkB7lD,EAAlB,CAA1B;;EACA,IAAI,CAAC+kD,OAAL,EAAc;IACZ,OAAO9nD,OAAO,CAACizC,MAAR,CAAe,wBAAf,CAAP;EACD;;EACD,OAAO6U,OAAO,CAAC/vC,OAAR,CAAgBlZ,IAAhB,EAAsBmZ,IAAtB,CAAP;AACD,CAND;;AAOA,MAAM6wC,WAAW,GAAG,CAACp/C,GAAD,EAAM1S,QAAN,KAAmB;EACrC,IAAIA,QAAQ,KAAKiC,SAAjB,EAA4B;IAC1BjC,QAAQ,GAAG,mFAAX;EACD;;EACD,OAAOoX,KAAK,CAACwb,IAAN,CAAWlgB,GAAG,CAAC2sB,gBAAJ,CAAqBr/B,QAArB,CAAX,EAA2C/E,MAA3C,CAAmDyH,CAAD,IAAOA,CAAC,CAAC+tD,YAAF,GAAiB,CAA1E,CAAP;AACD,CALD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMH,UAAU,GAAG,CAAC59C,GAAD,EAAMm/C,UAAN,EAAkB7lD,EAAlB,KAAyB;EAC1C,MAAM+lD,QAAQ,GAAGD,WAAW,CAACp/C,GAAD,EAAMm/C,UAAN,CAAX,CAA6B52D,MAA7B,CAAqC8xB,CAAD,IAAO,CAACkkC,eAAe,CAAClkC,CAAD,CAA3D,CAAjB;EACA,OAAO/gB,EAAE,KAAK/J,SAAP,GAAmB8vD,QAAQ,CAACA,QAAQ,CAAClzD,MAAT,GAAkB,CAAnB,CAA3B,GAAmDkzD,QAAQ,CAAC/jD,IAAT,CAAe+e,CAAD,IAAOA,CAAC,CAAC/gB,EAAF,KAASA,EAA9B,CAA1D;AACD,CAHD;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgmD,iBAAiB,GAAG,CAACjnB,MAAM,GAAG,KAAV,KAAoB;EAC5C,MAAM9W,IAAI,GAAG28B,UAAU,CAAC1nC,QAAD,CAAvB;EACA,MAAMpK,aAAa,GAAGmV,IAAI,CAAClL,aAAL,CAAmB,sDAAnB,CAAtB;;EACA,IAAI,CAACjK,aAAL,EAAoB;IAClB;EACD;;EACD,IAAIisB,MAAJ,EAAY;IACVjsB,aAAa,CAACjN,YAAd,CAA2B,aAA3B,EAA0C,MAA1C;EACD,CAFD,MAGK;IACHiN,aAAa,CAAC4Z,eAAd,CAA8B,aAA9B;EACD;AACF,CAZD;;AAaA,MAAMu5B,OAAO;EAAA,gKAAG,WAAOlB,OAAP,EAAgBh5C,IAAhB,EAAsBm6C,iBAAtB,EAAyCC,gBAAzC,EAA2D9vD,IAA3D,EAAoE;IAClF,IAAI3E,EAAJ,EAAQyQ,EAAR;;IACA,IAAI4iD,OAAO,CAACqB,SAAZ,EAAuB;MACrB;IACD;;IACDJ,iBAAiB,CAAC,IAAD,CAAjB;IACAjB,OAAO,CAACqB,SAAR,GAAoB,IAApB;IACArB,OAAO,CAACsB,WAAR,CAAoB/3C,IAApB;IACA,CAAC5c,EAAE,GAAGqzD,OAAO,CAACuB,oBAAd,MAAwC,IAAxC,IAAgD50D,EAAE,KAAK,KAAK,CAA5D,GAAgE,KAAK,CAArE,GAAyEA,EAAE,CAAC4c,IAAH,EAAzE;IACA,MAAMV,IAAI,GAAG8iB,4DAAU,CAACq0B,OAAD,CAAvB,CATkF,CAUlF;;IACA,MAAMxiD,gBAAgB,GAAGwiD,OAAO,CAACwB,cAAR,GACrBxB,OAAO,CAACwB,cADa,GAErB//C,4DAAA,CAAWuF,IAAX,EAAiB6B,IAAI,KAAK,KAAT,GAAiBs4C,iBAAjB,GAAqCC,gBAAtD,CAFJ;IAGA,MAAMK,SAAS,SAASC,gBAAgB,CAAC1B,OAAD,EAAUxiD,gBAAV,EAA4BwiD,OAAO,CAAC30D,EAApC,EAAwCiG,IAAxC,CAAxC;;IACA,IAAImwD,SAAJ,EAAe;MACbzB,OAAO,CAAC2B,UAAR,CAAmBp4C,IAAnB;MACA,CAACnM,EAAE,GAAG4iD,OAAO,CAAC4B,mBAAd,MAAuC,IAAvC,IAA+CxkD,EAAE,KAAK,KAAK,CAA3D,GAA+D,KAAK,CAApE,GAAwEA,EAAE,CAACmM,IAAH,EAAxE;IACD;IACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;IACE,IAAIy2C,OAAO,CAAC30D,EAAR,CAAW2F,OAAX,KAAuB,WAA3B,EAAwC;MACtC6wD,6BAA6B,CAAC7B,OAAO,CAAC30D,EAAT,CAA7B;IACD;IACD;AACF;AACA;AACA;AACA;AACA;;;IACE,IAAI20D,OAAO,CAAC8B,aAAR,KAA0B3pC,QAAQ,CAACqyB,aAAT,KAA2B,IAA3B,IAAmC,CAACwV,OAAO,CAAC30D,EAAR,CAAWo9B,QAAX,CAAoBtQ,QAAQ,CAACqyB,aAA7B,CAA9D,CAAJ,EAAgH;MAC9GwV,OAAO,CAAC30D,EAAR,CAAWm9B,KAAX;IACD;EACF,CAvCY;;EAAA,gBAAP04B,OAAO;IAAA;EAAA;AAAA,GAAb;AAwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMW,6BAA6B;EAAA,iKAAG,WAAOE,SAAP,EAAqB;IACzD,IAAIC,eAAe,GAAG7pC,QAAQ,CAACqyB,aAA/B;;IACA,IAAI,CAACwX,eAAL,EAAsB;MACpB;IACD;;IACD,MAAM/5B,UAAU,GAAG+5B,eAAe,KAAK,IAApB,IAA4BA,eAAe,KAAK,KAAK,CAArD,GAAyD,KAAK,CAA9D,GAAkEA,eAAe,CAAC/5B,UAArG;;IACA,IAAIA,UAAJ,EAAgB;MACd;MACA+5B,eAAe,GAAG/5B,UAAU,CAACjQ,aAAX,CAAyB8nC,oBAAzB,KAAkDkC,eAApE;IACD;;IACD,MAAMD,SAAS,CAACE,YAAV,EAAN;IACAD,eAAe,CAACx5B,KAAhB;EACD,CAZkC;;EAAA,gBAA7Bq5B,6BAA6B;IAAA;EAAA;AAAA,GAAnC;;AAaA,MAAM5xC,OAAO;EAAA,iKAAG,WAAO+vC,OAAP,EAAgBjpD,IAAhB,EAAsBmZ,IAAtB,EAA4BlJ,IAA5B,EAAkCk7C,iBAAlC,EAAqDC,gBAArD,EAAuE7wD,IAAvE,EAAgF;IAC9F,IAAI3E,EAAJ,EAAQyQ,EAAR;;IACA,IAAI,CAAC4iD,OAAO,CAACqB,SAAb,EAAwB;MACtB,OAAO,KAAP;IACD;;IACDJ,iBAAiB,CAAC,KAAD,CAAjB;IACAjB,OAAO,CAACqB,SAAR,GAAoB,KAApB;;IACA,IAAI;MACF;MACArB,OAAO,CAAC30D,EAAR,CAAW0qB,KAAX,CAAiBO,WAAjB,CAA6B,gBAA7B,EAA+C,MAA/C;MACA0pC,OAAO,CAACoC,WAAR,CAAoB74C,IAApB,CAAyB;QAAExS,IAAF;QAAQmZ;MAAR,CAAzB;MACA,CAACvjB,EAAE,GAAGqzD,OAAO,CAACqC,oBAAd,MAAwC,IAAxC,IAAgD11D,EAAE,KAAK,KAAK,CAA5D,GAAgE,KAAK,CAArE,GAAyEA,EAAE,CAAC4c,IAAH,CAAQ;QAAExS,IAAF;QAAQmZ;MAAR,CAAR,CAAzE;MACA,MAAMrH,IAAI,GAAG8iB,4DAAU,CAACq0B,OAAD,CAAvB;MACA,MAAMxiD,gBAAgB,GAAGwiD,OAAO,CAACsC,cAAR,GACrBtC,OAAO,CAACsC,cADa,GAErB7gD,4DAAA,CAAWuF,IAAX,EAAiB6B,IAAI,KAAK,KAAT,GAAiBq5C,iBAAjB,GAAqCC,gBAAtD,CAFJ,CANE,CASF;;MACA,IAAIjyC,IAAI,KAAK,SAAb,EAAwB;QACtB,MAAMwxC,gBAAgB,CAAC1B,OAAD,EAAUxiD,gBAAV,EAA4BwiD,OAAO,CAAC30D,EAApC,EAAwCiG,IAAxC,CAAtB;MACD;;MACD0uD,OAAO,CAACuC,UAAR,CAAmBh5C,IAAnB,CAAwB;QAAExS,IAAF;QAAQmZ;MAAR,CAAxB;MACA,CAAC9S,EAAE,GAAG4iD,OAAO,CAACwC,mBAAd,MAAuC,IAAvC,IAA+CplD,EAAE,KAAK,KAAK,CAA3D,GAA+D,KAAK,CAApE,GAAwEA,EAAE,CAACmM,IAAH,CAAQ;QAAExS,IAAF;QAAQmZ;MAAR,CAAR,CAAxE;MACAivC,gBAAgB,CAAC1mD,MAAjB,CAAwBunD,OAAxB;MACA;AACJ;AACA;AACA;AACA;;MACIA,OAAO,CAAC30D,EAAR,CAAW8C,SAAX,CAAqBM,GAArB,CAAyB,gBAAzB;MACAuxD,OAAO,CAAC30D,EAAR,CAAW0qB,KAAX,CAAiBS,cAAjB,CAAgC,gBAAhC;IACD,CAvBD,CAwBA,OAAOyvB,GAAP,EAAY;MACVp8B,OAAO,CAACyU,KAAR,CAAc2nB,GAAd;IACD;;IACD+Z,OAAO,CAAC30D,EAAR,CAAWmD,MAAX;IACA,OAAO,IAAP;EACD,CApCY;;EAAA,gBAAPyhB,OAAO;IAAA;EAAA;AAAA,GAAb;;AAqCA,MAAM4vC,UAAU,GAAIl+C,GAAD,IAAS;EAC1B,OAAOA,GAAG,CAACqW,aAAJ,CAAkB,SAAlB,KAAgCrW,GAAG,CAAC+R,IAA3C;AACD,CAFD;;AAGA,MAAMguC,gBAAgB;EAAA,iKAAG,WAAO1B,OAAP,EAAgBxiD,gBAAhB,EAAkCquC,MAAlC,EAA0Cv6C,IAA1C,EAAmD;IAC1E;IACAu6C,MAAM,CAAC19C,SAAP,CAAiBK,MAAjB,CAAwB,gBAAxB;IACA,MAAMi0D,OAAO,GAAGzC,OAAO,CAAC30D,EAAxB;IACA,MAAMkS,SAAS,GAAGC,gBAAgB,CAACilD,OAAD,EAAUnxD,IAAV,CAAlC;;IACA,IAAI,CAAC0uD,OAAO,CAAC96C,QAAT,IAAqB,CAACzD,mEAAA,CAAkB,UAAlB,EAA8B,IAA9B,CAA1B,EAA+D;MAC7DlE,SAAS,CAACgD,QAAV,CAAmB,CAAnB;IACD;;IACD,IAAIy/C,OAAO,CAAC8B,aAAZ,EAA2B;MACzBvkD,SAAS,CAACgf,cAAV,CAAyB,MAAM;QAC7B,MAAMiuB,aAAa,GAAGqB,MAAM,CAAC3zB,aAAP,CAAqBsyB,aAA3C;;QACA,IAAIA,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,aAAa,CAAC7mC,OAAd,CAAsB,+BAAtB,CAAlE,EAA0H;UACxH6mC,aAAa,CAACC,IAAd;QACD;MACF,CALD;IAMD;;IACD,MAAMiY,SAAS,GAAGvD,gBAAgB,CAACzyD,GAAjB,CAAqBszD,OAArB,KAAiC,EAAnD;IACAb,gBAAgB,CAACjvD,GAAjB,CAAqB8vD,OAArB,EAA8B,CAAC,GAAG0C,SAAJ,EAAenlD,SAAf,CAA9B;IACA,MAAMA,SAAS,CAAC4jB,IAAV,EAAN;IACA,OAAO,IAAP;EACD,CApBqB;;EAAA,gBAAhBugC,gBAAgB;IAAA;EAAA;AAAA,GAAtB;;AAqBA,MAAMiB,WAAW,GAAG,CAACj1D,OAAD,EAAUoD,SAAV,KAAwB;EAC1C,IAAIqH,OAAJ;EACA,MAAMsI,OAAO,GAAG,IAAIvI,OAAJ,CAAatG,CAAD,IAAQuG,OAAO,GAAGvG,CAA9B,CAAhB;EACAgxD,SAAS,CAACl1D,OAAD,EAAUoD,SAAV,EAAsBk0B,KAAD,IAAW;IACvC7sB,OAAO,CAAC6sB,KAAK,CAAChrB,MAAP,CAAP;EACD,CAFQ,CAAT;EAGA,OAAOyG,OAAP;AACD,CAPD;;AAQA,MAAMmiD,SAAS,GAAG,CAACl1D,OAAD,EAAUoD,SAAV,EAAqBwR,QAArB,KAAkC;EAClD,MAAMxI,OAAO,GAAIC,EAAD,IAAQ;IACtBG,uDAAmB,CAACxM,OAAD,EAAUoD,SAAV,EAAqBgJ,OAArB,CAAnB;IACAwI,QAAQ,CAACvI,EAAD,CAAR;EACD,CAHD;;EAIAE,uDAAgB,CAACvM,OAAD,EAAUoD,SAAV,EAAqBgJ,OAArB,CAAhB;AACD,CAND;;AAOA,MAAM+oD,QAAQ,GAAI3yC,IAAD,IAAU;EACzB,OAAOA,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK2wC,QAArC;AACD,CAFD;;AAGA,MAAMiC,WAAW,GAAIn4D,CAAD,IAAOA,CAAC,EAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2xC,QAAQ,GAAG,CAACxiC,OAAD,EAAU6jC,GAAV,KAAkB;EACjC,IAAI,OAAO7jC,OAAP,KAAmB,UAAvB,EAAmC;IACjC,MAAM+Z,GAAG,GAAGpS,4DAAA,CAAW,WAAX,EAAwBqhD,WAAxB,CAAZ;IACA,OAAOjvC,GAAG,CAAC,MAAM;MACf,IAAI;QACF,OAAO/Z,OAAO,CAAC6jC,GAAD,CAAd;MACD,CAFD,CAGA,OAAOnvB,CAAP,EAAU;QACR,MAAMA,CAAN;MACD;IACF,CAPS,CAAV;EAQD;;EACD,OAAOtd,SAAP;AACD,CAbD;;AAcA,MAAM2vD,QAAQ,GAAG,UAAjB;;;;;;;;;;;;;;;ACtfO,SAASr2D,cAAT,GAA0B;EAC/B,IAAI6hD,QAAQ,GAAG,EAAf;;EACA,IAAI,OAAO9qC,MAAP,KAAkB,WAAtB,EAAmC;IACjC,IAAIW,GAAG,GAAGX,MAAV;;IAEA,IAAI,CAACW,GAAG,CAAC/Q,cAAL,IACD+Q,GAAG,CAAC+Y,OAAJ,KAAgB,CAAC/Y,GAAG,CAAC+Y,OAAJ,CAAYlrB,SAAZ,CAAsB7B,OAAvB,IAAkC,CAACgU,GAAG,CAAC+Y,OAAJ,CAAYlrB,SAAZ,CAAsB4T,OAAzD,IAAoE,CAACzB,GAAG,CAAC+Y,OAAJ,CAAYlrB,SAAZ,CAAsBvB,MAA3F,IAAqG,CAAC0T,GAAG,CAAC+Y,OAAJ,CAAYlrB,SAAZ,CAAsB0nB,WAA5I,CADH,EAC8J;MAC5J40B,QAAQ,CAAC/9C,IAAT,CAAc,sJAAd;IACD;;IAED,IAAIy0D,qBAAqB,GAAG,YAAW;MACrC,IAAI;QACF,IAAIr3B,CAAC,GAAG,IAAIgX,GAAJ,CAAQ,GAAR,EAAa,UAAb,CAAR;QACAhX,CAAC,CAAC+X,QAAF,GAAa,OAAb;QACA,OAAQ/X,CAAC,CAACpoB,IAAF,KAAW,gBAAZ,IAAiCooB,CAAC,CAACs3B,YAA1C;MACD,CAJD,CAIE,OAAOx0C,CAAP,EAAU;QACV,OAAO,KAAP;MACD;IACF,CARD;;IAUA,IACE,eAAe,OAAOxe,MAAM,CAACoJ,MAA7B,IAAuC,CAACpJ,MAAM,CAACowC,OAA/C,IACA,CAAC/5B,KAAK,CAACtW,SAAN,CAAgBkN,IADjB,IACyB,CAACoJ,KAAK,CAACtW,SAAN,CAAgBqO,QAD1C,IAEA,CAAC61B,MAAM,CAAClkC,SAAP,CAAiB1B,UAFlB,IAEgC,CAAC4lC,MAAM,CAAClkC,SAAP,CAAiBkzD,QAFlD,IAGC/gD,GAAG,CAACghD,QAAJ,IAAgB,CAAChhD,GAAG,CAACghD,QAAJ,CAAanzD,SAAb,CAAuB/C,OAHzC,IAIA,CAACkV,GAAG,CAACihD,KAJL,IAKA,CAACJ,qBAAqB,EALtB,IAMA,OAAOprD,OAAP,IAAkB,WAPpB,EAQE;MACA00C,QAAQ,CAAC/9C,IAAT,CAAc,kKAAd;IACD;EACF;;EACD,OAAO4J,OAAO,CAACm2B,GAAR,CAAYge,QAAZ,CAAP;AACD;;;;;;;;;;;;;;;;;ACjCD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACHA;AACA;AACO,MAAMlkD,eAAN,SAA8BD,6CAA9B,CAAsC;EACzCiD,WAAW,CAACk4D,MAAD,EAAS;IAChB;IACA,KAAKA,MAAL,GAAcA,MAAd;EACH;;EACQ,IAAL53D,KAAK,GAAG;IACR,OAAO,KAAK2zC,QAAL,EAAP;EACH;;EACDkkB,UAAU,CAACC,UAAD,EAAa;IACnB,MAAMC,YAAY,GAAG,MAAMF,UAAN,CAAiBC,UAAjB,CAArB;;IACA,IAAIC,YAAY,IAAI,CAACA,YAAY,CAACC,MAAlC,EAA0C;MACtCF,UAAU,CAAC1+C,IAAX,CAAgB,KAAKw+C,MAArB;IACH;;IACD,OAAOG,YAAP;EACH;;EACDpkB,QAAQ,GAAG;IACP,IAAI,KAAKskB,QAAT,EAAmB;MACf,MAAM,KAAKC,WAAX;IACH,CAFD,MAGK,IAAI,KAAKF,MAAT,EAAiB;MAClB,MAAM,IAAIL,kFAAJ,EAAN;IACH,CAFI,MAGA;MACD,OAAO,KAAKC,MAAZ;IACH;EACJ;;EACDx+C,IAAI,CAACpZ,KAAD,EAAQ;IACR,MAAMoZ,IAAN,CAAW,KAAKw+C,MAAL,GAAc53D,KAAzB;EACH;;AA5BwC;;;;;;;;;;;;;;;ACF7C;AACO,MAAMo4D,eAAN,SAA8BD,mDAA9B,CAAyC;EAC5Cz4D,WAAW,CAAC0N,MAAD,EAASirD,UAAT,EAAqBC,UAArB,EAAiC;IACxC;IACA,KAAKlrD,MAAL,GAAcA,MAAd;IACA,KAAKirD,UAAL,GAAkBA,UAAlB;IACA,KAAKC,UAAL,GAAkBA,UAAlB;IACA,KAAK9qD,KAAL,GAAa,CAAb;EACH;;EACD+qD,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAKoN,MAAL,CAAYorD,UAAZ,CAAuB,KAAKH,UAA5B,EAAwCr4D,KAAxC,EAA+C,KAAKs4D,UAApD,EAAgE,KAAK9qD,KAAL,EAAhE,EAA8E,IAA9E;EACH;;EACDirD,MAAM,CAAC5lC,KAAD,EAAQ;IACV,KAAKzlB,MAAL,CAAYsrD,WAAZ,CAAwB7lC,KAAxB,EAA+B,IAA/B;IACA,KAAK/xB,WAAL;EACH;;EACD63D,SAAS,GAAG;IACR,KAAKvrD,MAAL,CAAYwrD,cAAZ,CAA2B,IAA3B;IACA,KAAK93D,WAAL;EACH;;AAlB2C;;;;;;;;;;;;;;;;;;;ACDhD;AACA;AACA;AACA;AACA;AACO,MAAMo4D,UAAN,CAAiB;EACpBx5D,WAAW,CAACyB,SAAD,EAAY;IACnB,KAAKg4D,SAAL,GAAiB,KAAjB;;IACA,IAAIh4D,SAAJ,EAAe;MACX,KAAK02D,UAAL,GAAkB12D,SAAlB;IACH;EACJ;;EACDi4D,IAAI,CAACC,QAAD,EAAW;IACX,MAAMN,UAAU,GAAG,IAAIG,UAAJ,EAAnB;IACAH,UAAU,CAACO,MAAX,GAAoB,IAApB;IACAP,UAAU,CAACM,QAAX,GAAsBA,QAAtB;IACA,OAAON,UAAP;EACH;;EACD53D,SAAS,CAACo4D,cAAD,EAAiB1mC,KAAjB,EAAwB2mC,QAAxB,EAAkC;IACvC,MAAM;MAAEH;IAAF,IAAe,IAArB;IACA,MAAMI,IAAI,GAAGX,gEAAY,CAACS,cAAD,EAAiB1mC,KAAjB,EAAwB2mC,QAAxB,CAAzB;;IACA,IAAIH,QAAJ,EAAc;MACVI,IAAI,CAACz2D,GAAL,CAASq2D,QAAQ,CAACphD,IAAT,CAAcwhD,IAAd,EAAoB,KAAKH,MAAzB,CAAT;IACH,CAFD,MAGK;MACDG,IAAI,CAACz2D,GAAL,CAAS,KAAKs2D,MAAL,IAAgBtjD,iFAAA,IAAgD,CAACyjD,IAAI,CAACE,kBAAtE,GACL,KAAK9B,UAAL,CAAgB4B,IAAhB,CADK,GAEL,KAAKG,aAAL,CAAmBH,IAAnB,CAFJ;IAGH;;IACD,IAAIzjD,iFAAJ,EAAkD;MAC9C,IAAIyjD,IAAI,CAACE,kBAAT,EAA6B;QACzBF,IAAI,CAACE,kBAAL,GAA0B,KAA1B;;QACA,IAAIF,IAAI,CAACI,eAAT,EAA0B;UACtB,MAAMJ,IAAI,CAACK,cAAX;QACH;MACJ;IACJ;;IACD,OAAOL,IAAP;EACH;;EACDG,aAAa,CAACH,IAAD,EAAO;IAChB,IAAI;MACA,OAAO,KAAK5B,UAAL,CAAgB4B,IAAhB,CAAP;IACH,CAFD,CAGA,OAAOjf,GAAP,EAAY;MACR,IAAIxkC,iFAAJ,EAAkD;QAC9CyjD,IAAI,CAACI,eAAL,GAAuB,IAAvB;QACAJ,IAAI,CAACK,cAAL,GAAsBtf,GAAtB;MACH;;MACD,IAAIqe,oEAAc,CAACY,IAAD,CAAlB,EAA0B;QACtBA,IAAI,CAAC5mC,KAAL,CAAW2nB,GAAX;MACH,CAFD,MAGK;QACDp8B,OAAO,CAACC,IAAR,CAAam8B,GAAb;MACH;IACJ;EACJ;;EACDj5C,OAAO,CAAC6X,IAAD,EAAO2gD,WAAP,EAAoB;IACvBA,WAAW,GAAGC,cAAc,CAACD,WAAD,CAA5B;IACA,OAAO,IAAIA,WAAJ,CAAgB,CAACrtD,OAAD,EAAUgzC,MAAV,KAAqB;MACxC,IAAIqY,YAAJ;MACAA,YAAY,GAAG,KAAK52D,SAAL,CAAgBnB,KAAD,IAAW;QACrC,IAAI;UACAoZ,IAAI,CAACpZ,KAAD,CAAJ;QACH,CAFD,CAGA,OAAOw6C,GAAP,EAAY;UACRkF,MAAM,CAAClF,GAAD,CAAN;;UACA,IAAIud,YAAJ,EAAkB;YACdA,YAAY,CAACj3D,WAAb;UACH;QACJ;MACJ,CAVc,EAUZ4+C,MAVY,EAUJhzC,OAVI,CAAf;IAWH,CAbM,CAAP;EAcH;;EACDmrD,UAAU,CAACC,UAAD,EAAa;IACnB,MAAM;MAAEwB;IAAF,IAAa,IAAnB;IACA,OAAOA,MAAM,IAAIA,MAAM,CAACn4D,SAAP,CAAiB22D,UAAjB,CAAjB;EACH;;EACiB,CAAjBkB,0DAAiB,IAAI;IAClB,OAAO,IAAP;EACH;;EACD75C,IAAI,CAAC,GAAG86C,UAAJ,EAAgB;IAChB,IAAIA,UAAU,CAAC53D,MAAX,KAAsB,CAA1B,EAA6B;MACzB,OAAO,IAAP;IACH;;IACD,OAAO42D,yDAAa,CAACgB,UAAD,CAAb,CAA0B,IAA1B,CAAP;EACH;;EACDC,SAAS,CAACH,WAAD,EAAc;IACnBA,WAAW,GAAGC,cAAc,CAACD,WAAD,CAA5B;IACA,OAAO,IAAIA,WAAJ,CAAgB,CAACrtD,OAAD,EAAUgzC,MAAV,KAAqB;MACxC,IAAI1/C,KAAJ;MACA,KAAKmB,SAAL,CAAgBs9B,CAAD,IAAOz+B,KAAK,GAAGy+B,CAA9B,EAAkC+b,GAAD,IAASkF,MAAM,CAAClF,GAAD,CAAhD,EAAuD,MAAM9tC,OAAO,CAAC1M,KAAD,CAApE;IACH,CAHM,CAAP;EAIH;;AAvFmB;;AAyFxBk5D,UAAU,CAACvtD,MAAX,GAAqBxK,SAAD,IAAe;EAC/B,OAAO,IAAI+3D,UAAJ,CAAe/3D,SAAf,CAAP;AACH,CAFD;;AAGA,SAAS64D,cAAT,CAAwBD,WAAxB,EAAqC;EACjC,IAAI,CAACA,WAAL,EAAkB;IACdA,WAAW,GAAG/jD,mDAAA,IAAkBvJ,OAAhC;EACH;;EACD,IAAI,CAACstD,WAAL,EAAkB;IACd,MAAM,IAAIz8C,KAAJ,CAAU,uBAAV,CAAN;EACH;;EACD,OAAOy8C,WAAP;AACH;;;;;;;;;;;;;;;;ACzGD;AACA;AACO,MAAMK,KAAK,GAAG;EACjBpC,MAAM,EAAE,IADS;;EAEjB5+C,IAAI,CAACpZ,KAAD,EAAQ,CAAG,CAFE;;EAGjB6yB,KAAK,CAAC2nB,GAAD,EAAM;IACP,IAAIxkC,iFAAJ,EAAkD;MAC9C,MAAMwkC,GAAN;IACH,CAFD,MAGK;MACD2f,sEAAe,CAAC3f,GAAD,CAAf;IACH;EACJ,CAVgB;;EAWjBgf,QAAQ,GAAG,CAAG;;AAXG,CAAd;;;;;;;;;;;;;;;ACFP;AACO,MAAMa,eAAN,SAA8BlC,mDAA9B,CAAyC;EAC5CK,UAAU,CAACH,UAAD,EAAaiC,UAAb,EAAyBhC,UAAzB,EAAqCiC,UAArC,EAAiDC,QAAjD,EAA2D;IACjE,KAAKC,WAAL,CAAiBrhD,IAAjB,CAAsBkhD,UAAtB;EACH;;EACD5B,WAAW,CAAC7lC,KAAD,EAAQ2nC,QAAR,EAAkB;IACzB,KAAKC,WAAL,CAAiB5nC,KAAjB,CAAuBA,KAAvB;EACH;;EACD+lC,cAAc,CAAC4B,QAAD,EAAW;IACrB,KAAKC,WAAL,CAAiBjB,QAAjB;EACH;;AAT2C;;;;;;;;;;;;;;;;;;;;;;ACDhD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMsB,iBAAN,SAAgC3C,mDAAhC,CAA2C;EAC9Cz4D,WAAW,CAAC+6D,WAAD,EAAc;IACrB,MAAMA,WAAN;IACA,KAAKA,WAAL,GAAmBA,WAAnB;EACH;;AAJ6C;AAM3C,MAAMh+D,OAAN,SAAsBy8D,mDAAtB,CAAiC;EACpCx5D,WAAW,GAAG;IACV;IACA,KAAKq7D,SAAL,GAAiB,EAAjB;IACA,KAAK/C,MAAL,GAAc,KAAd;IACA,KAAKgD,SAAL,GAAiB,KAAjB;IACA,KAAK/C,QAAL,GAAgB,KAAhB;IACA,KAAKC,WAAL,GAAmB,IAAnB;EACH;;EACkB,CAAlB2C,uEAAkB,IAAI;IACnB,OAAO,IAAIC,iBAAJ,CAAsB,IAAtB,CAAP;EACH;;EACD1B,IAAI,CAACC,QAAD,EAAW;IACX,MAAM4B,OAAO,GAAG,IAAIC,gBAAJ,CAAqB,IAArB,EAA2B,IAA3B,CAAhB;IACAD,OAAO,CAAC5B,QAAR,GAAmBA,QAAnB;IACA,OAAO4B,OAAP;EACH;;EACD7hD,IAAI,CAACpZ,KAAD,EAAQ;IACR,IAAI,KAAKg4D,MAAT,EAAiB;MACb,MAAM,IAAIL,kFAAJ,EAAN;IACH;;IACD,IAAI,CAAC,KAAKqD,SAAV,EAAqB;MACjB,MAAM;QAAED;MAAF,IAAgB,IAAtB;MACA,MAAMI,GAAG,GAAGJ,SAAS,CAAC14D,MAAtB;MACA,MAAM+4D,IAAI,GAAGL,SAAS,CAAC5oD,KAAV,EAAb;;MACA,KAAK,IAAIxP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4D,GAApB,EAAyBx4D,CAAC,EAA1B,EAA8B;QAC1By4D,IAAI,CAACz4D,CAAD,CAAJ,CAAQyW,IAAR,CAAapZ,KAAb;MACH;IACJ;EACJ;;EACD6yB,KAAK,CAAC2nB,GAAD,EAAM;IACP,IAAI,KAAKwd,MAAT,EAAiB;MACb,MAAM,IAAIL,kFAAJ,EAAN;IACH;;IACD,KAAKM,QAAL,GAAgB,IAAhB;IACA,KAAKC,WAAL,GAAmB1d,GAAnB;IACA,KAAKwgB,SAAL,GAAiB,IAAjB;IACA,MAAM;MAAED;IAAF,IAAgB,IAAtB;IACA,MAAMI,GAAG,GAAGJ,SAAS,CAAC14D,MAAtB;IACA,MAAM+4D,IAAI,GAAGL,SAAS,CAAC5oD,KAAV,EAAb;;IACA,KAAK,IAAIxP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4D,GAApB,EAAyBx4D,CAAC,EAA1B,EAA8B;MAC1By4D,IAAI,CAACz4D,CAAD,CAAJ,CAAQkwB,KAAR,CAAc2nB,GAAd;IACH;;IACD,KAAKugB,SAAL,CAAe14D,MAAf,GAAwB,CAAxB;EACH;;EACDm3D,QAAQ,GAAG;IACP,IAAI,KAAKxB,MAAT,EAAiB;MACb,MAAM,IAAIL,kFAAJ,EAAN;IACH;;IACD,KAAKqD,SAAL,GAAiB,IAAjB;IACA,MAAM;MAAED;IAAF,IAAgB,IAAtB;IACA,MAAMI,GAAG,GAAGJ,SAAS,CAAC14D,MAAtB;IACA,MAAM+4D,IAAI,GAAGL,SAAS,CAAC5oD,KAAV,EAAb;;IACA,KAAK,IAAIxP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4D,GAApB,EAAyBx4D,CAAC,EAA1B,EAA8B;MAC1By4D,IAAI,CAACz4D,CAAD,CAAJ,CAAQ62D,QAAR;IACH;;IACD,KAAKuB,SAAL,CAAe14D,MAAf,GAAwB,CAAxB;EACH;;EACDvB,WAAW,GAAG;IACV,KAAKk6D,SAAL,GAAiB,IAAjB;IACA,KAAKhD,MAAL,GAAc,IAAd;IACA,KAAK+C,SAAL,GAAiB,IAAjB;EACH;;EACDnB,aAAa,CAAC9B,UAAD,EAAa;IACtB,IAAI,KAAKE,MAAT,EAAiB;MACb,MAAM,IAAIL,kFAAJ,EAAN;IACH,CAFD,MAGK;MACD,OAAO,MAAMiC,aAAN,CAAoB9B,UAApB,CAAP;IACH;EACJ;;EACDD,UAAU,CAACC,UAAD,EAAa;IACnB,IAAI,KAAKE,MAAT,EAAiB;MACb,MAAM,IAAIL,kFAAJ,EAAN;IACH,CAFD,MAGK,IAAI,KAAKM,QAAT,EAAmB;MACpBH,UAAU,CAACjlC,KAAX,CAAiB,KAAKqlC,WAAtB;MACA,OAAOwC,6DAAP;IACH,CAHI,MAIA,IAAI,KAAKM,SAAT,EAAoB;MACrBlD,UAAU,CAAC0B,QAAX;MACA,OAAOkB,6DAAP;IACH,CAHI,MAIA;MACD,KAAKK,SAAL,CAAel4D,IAAf,CAAoBi1D,UAApB;MACA,OAAO,IAAI6C,qEAAJ,CAAwB,IAAxB,EAA8B7C,UAA9B,CAAP;IACH;EACJ;;EACDwD,YAAY,GAAG;IACX,MAAMvC,UAAU,GAAG,IAAIG,mDAAJ,EAAnB;IACAH,UAAU,CAACO,MAAX,GAAoB,IAApB;IACA,OAAOP,UAAP;EACH;;AA5FmC;;AA8FxCt8D,OAAO,CAACkP,MAAR,GAAiB,CAAC8uD,WAAD,EAAcnB,MAAd,KAAyB;EACtC,OAAO,IAAI4B,gBAAJ,CAAqBT,WAArB,EAAkCnB,MAAlC,CAAP;AACH,CAFD;;AAGO,MAAM4B,gBAAN,SAA+Bz+D,OAA/B,CAAuC;EAC1CiD,WAAW,CAAC+6D,WAAD,EAAcnB,MAAd,EAAsB;IAC7B;IACA,KAAKmB,WAAL,GAAmBA,WAAnB;IACA,KAAKnB,MAAL,GAAcA,MAAd;EACH;;EACDlgD,IAAI,CAACpZ,KAAD,EAAQ;IACR,MAAM;MAAEy6D;IAAF,IAAkB,IAAxB;;IACA,IAAIA,WAAW,IAAIA,WAAW,CAACrhD,IAA/B,EAAqC;MACjCqhD,WAAW,CAACrhD,IAAZ,CAAiBpZ,KAAjB;IACH;EACJ;;EACD6yB,KAAK,CAAC2nB,GAAD,EAAM;IACP,MAAM;MAAEigB;IAAF,IAAkB,IAAxB;;IACA,IAAIA,WAAW,IAAIA,WAAW,CAAC5nC,KAA/B,EAAsC;MAClC,KAAK4nC,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;IACH;EACJ;;EACDgf,QAAQ,GAAG;IACP,MAAM;MAAEiB;IAAF,IAAkB,IAAxB;;IACA,IAAIA,WAAW,IAAIA,WAAW,CAACjB,QAA/B,EAAyC;MACrC,KAAKiB,WAAL,CAAiBjB,QAAjB;IACH;EACJ;;EACD3B,UAAU,CAACC,UAAD,EAAa;IACnB,MAAM;MAAEwB;IAAF,IAAa,IAAnB;;IACA,IAAIA,MAAJ,EAAY;MACR,OAAO,KAAKA,MAAL,CAAYn4D,SAAZ,CAAsB22D,UAAtB,CAAP;IACH,CAFD,MAGK;MACD,OAAO4C,6DAAP;IACH;EACJ;;AAhCyC;;;;;;;;;;;;;;;AC7G9C;AACO,MAAMC,mBAAN,SAAkCD,uDAAlC,CAA+C;EAClDh7D,WAAW,CAACu7D,OAAD,EAAUnD,UAAV,EAAsB;IAC7B;IACA,KAAKmD,OAAL,GAAeA,OAAf;IACA,KAAKnD,UAAL,GAAkBA,UAAlB;IACA,KAAKE,MAAL,GAAc,KAAd;EACH;;EACDl3D,WAAW,GAAG;IACV,IAAI,KAAKk3D,MAAT,EAAiB;MACb;IACH;;IACD,KAAKA,MAAL,GAAc,IAAd;IACA,MAAMiD,OAAO,GAAG,KAAKA,OAArB;IACA,MAAMF,SAAS,GAAGE,OAAO,CAACF,SAA1B;IACA,KAAKE,OAAL,GAAe,IAAf;;IACA,IAAI,CAACF,SAAD,IAAcA,SAAS,CAAC14D,MAAV,KAAqB,CAAnC,IAAwC44D,OAAO,CAACD,SAAhD,IAA6DC,OAAO,CAACjD,MAAzE,EAAiF;MAC7E;IACH;;IACD,MAAMuD,eAAe,GAAGR,SAAS,CAACttD,OAAV,CAAkB,KAAKqqD,UAAvB,CAAxB;;IACA,IAAIyD,eAAe,KAAK,CAAC,CAAzB,EAA4B;MACxBR,SAAS,CAACtoD,MAAV,CAAiB8oD,eAAjB,EAAkC,CAAlC;IACH;EACJ;;AAtBiD;;;;;;;;;;;;;;;;;;;;;ACDtD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMpD,UAAN,SAAyBuC,uDAAzB,CAAsC;EACzCh7D,WAAW,CAACg8D,iBAAD,EAAoB7oC,KAApB,EAA2B2mC,QAA3B,EAAqC;IAC5C;IACA,KAAKM,cAAL,GAAsB,IAAtB;IACA,KAAKD,eAAL,GAAuB,KAAvB;IACA,KAAKF,kBAAL,GAA0B,KAA1B;IACA,KAAKqB,SAAL,GAAiB,KAAjB;;IACA,QAAQh2D,SAAS,CAAC3C,MAAlB;MACI,KAAK,CAAL;QACI,KAAKo4D,WAAL,GAAmBgB,4CAAnB;QACA;;MACJ,KAAK,CAAL;QACI,IAAI,CAACC,iBAAL,EAAwB;UACpB,KAAKjB,WAAL,GAAmBgB,4CAAnB;UACA;QACH;;QACD,IAAI,OAAOC,iBAAP,KAA6B,QAAjC,EAA2C;UACvC,IAAIA,iBAAiB,YAAYvD,UAAjC,EAA6C;YACzC,KAAKwB,kBAAL,GAA0B+B,iBAAiB,CAAC/B,kBAA5C;YACA,KAAKc,WAAL,GAAmBiB,iBAAnB;YACAA,iBAAiB,CAAC14D,GAAlB,CAAsB,IAAtB;UACH,CAJD,MAKK;YACD,KAAK22D,kBAAL,GAA0B,IAA1B;YACA,KAAKc,WAAL,GAAmB,IAAIkB,cAAJ,CAAmB,IAAnB,EAAyBD,iBAAzB,CAAnB;UACH;;UACD;QACH;;MACL;QACI,KAAK/B,kBAAL,GAA0B,IAA1B;QACA,KAAKc,WAAL,GAAmB,IAAIkB,cAAJ,CAAmB,IAAnB,EAAyBD,iBAAzB,EAA4C7oC,KAA5C,EAAmD2mC,QAAnD,CAAnB;QACA;IAxBR;EA0BH;;EACkB,CAAlBqB,uEAAkB,IAAI;IAAE,OAAO,IAAP;EAAc;;EAC1B,OAANlvD,MAAM,CAACyN,IAAD,EAAOyZ,KAAP,EAAc2mC,QAAd,EAAwB;IACjC,MAAM1B,UAAU,GAAG,IAAIK,UAAJ,CAAe/+C,IAAf,EAAqByZ,KAArB,EAA4B2mC,QAA5B,CAAnB;IACA1B,UAAU,CAAC6B,kBAAX,GAAgC,KAAhC;IACA,OAAO7B,UAAP;EACH;;EACD1+C,IAAI,CAACpZ,KAAD,EAAQ;IACR,IAAI,CAAC,KAAKg7D,SAAV,EAAqB;MACjB,KAAKzC,KAAL,CAAWv4D,KAAX;IACH;EACJ;;EACD6yB,KAAK,CAAC2nB,GAAD,EAAM;IACP,IAAI,CAAC,KAAKwgB,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,IAAjB;;MACA,KAAKvC,MAAL,CAAYje,GAAZ;IACH;EACJ;;EACDgf,QAAQ,GAAG;IACP,IAAI,CAAC,KAAKwB,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,IAAjB;;MACA,KAAKrC,SAAL;IACH;EACJ;;EACD73D,WAAW,GAAG;IACV,IAAI,KAAKk3D,MAAT,EAAiB;MACb;IACH;;IACD,KAAKgD,SAAL,GAAiB,IAAjB;IACA,MAAMl6D,WAAN;EACH;;EACDy3D,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAKy6D,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;EACH;;EACDy4D,MAAM,CAACje,GAAD,EAAM;IACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;IACA,KAAK15C,WAAL;EACH;;EACD63D,SAAS,GAAG;IACR,KAAK8B,WAAL,CAAiBjB,QAAjB;IACA,KAAK14D,WAAL;EACH;;EACD86D,sBAAsB,GAAG;IACrB,MAAM;MAAEC;IAAF,IAAuB,IAA7B;IACA,KAAKA,gBAAL,GAAwB,IAAxB;IACA,KAAK/6D,WAAL;IACA,KAAKk3D,MAAL,GAAc,KAAd;IACA,KAAKgD,SAAL,GAAiB,KAAjB;IACA,KAAKa,gBAAL,GAAwBA,gBAAxB;IACA,OAAO,IAAP;EACH;;AAnFwC;AAqFtC,MAAMF,cAAN,SAA6BxD,UAA7B,CAAwC;EAC3Cz4D,WAAW,CAACo8D,iBAAD,EAAoBvC,cAApB,EAAoC1mC,KAApC,EAA2C2mC,QAA3C,EAAqD;IAC5D;IACA,KAAKsC,iBAAL,GAAyBA,iBAAzB;IACA,IAAI1iD,IAAJ;IACA,IAAI6D,OAAO,GAAG,IAAd;;IACA,IAAIu+C,4DAAU,CAACjC,cAAD,CAAd,EAAgC;MAC5BngD,IAAI,GAAGmgD,cAAP;IACH,CAFD,MAGK,IAAIA,cAAJ,EAAoB;MACrBngD,IAAI,GAAGmgD,cAAc,CAACngD,IAAtB;MACAyZ,KAAK,GAAG0mC,cAAc,CAAC1mC,KAAvB;MACA2mC,QAAQ,GAAGD,cAAc,CAACC,QAA1B;;MACA,IAAID,cAAc,KAAKkC,4CAAvB,EAAsC;QAClCx+C,OAAO,GAAG1Y,MAAM,CAACoH,MAAP,CAAc4tD,cAAd,CAAV;;QACA,IAAIiC,4DAAU,CAACv+C,OAAO,CAACnc,WAAT,CAAd,EAAqC;UACjC,KAAKkC,GAAL,CAASia,OAAO,CAACnc,WAAR,CAAoBY,IAApB,CAAyBub,OAAzB,CAAT;QACH;;QACDA,OAAO,CAACnc,WAAR,GAAsB,KAAKA,WAAL,CAAiBY,IAAjB,CAAsB,IAAtB,CAAtB;MACH;IACJ;;IACD,KAAKq6D,QAAL,GAAgB9+C,OAAhB;IACA,KAAKs7C,KAAL,GAAan/C,IAAb;IACA,KAAKq/C,MAAL,GAAc5lC,KAAd;IACA,KAAK8lC,SAAL,GAAiBa,QAAjB;EACH;;EACDpgD,IAAI,CAACpZ,KAAD,EAAQ;IACR,IAAI,CAAC,KAAKg7D,SAAN,IAAmB,KAAKzC,KAA5B,EAAmC;MAC/B,MAAM;QAAEuD;MAAF,IAAwB,IAA9B;;MACA,IAAI,CAAC9lD,iFAAD,IAAiD,CAAC8lD,iBAAiB,CAACnC,kBAAxE,EAA4F;QACxF,KAAKqC,YAAL,CAAkB,KAAKzD,KAAvB,EAA8Bv4D,KAA9B;MACH,CAFD,MAGK,IAAI,KAAKi8D,eAAL,CAAqBH,iBAArB,EAAwC,KAAKvD,KAA7C,EAAoDv4D,KAApD,CAAJ,EAAgE;QACjE,KAAKc,WAAL;MACH;IACJ;EACJ;;EACD+xB,KAAK,CAAC2nB,GAAD,EAAM;IACP,IAAI,CAAC,KAAKwgB,SAAV,EAAqB;MACjB,MAAM;QAAEc;MAAF,IAAwB,IAA9B;MACA,MAAM;QAAEpC;MAAF,IAA4C1jD,2CAAlD;;MACA,IAAI,KAAKyiD,MAAT,EAAiB;QACb,IAAI,CAACiB,qCAAD,IAA0C,CAACoC,iBAAiB,CAACnC,kBAAjE,EAAqF;UACjF,KAAKqC,YAAL,CAAkB,KAAKvD,MAAvB,EAA+Bje,GAA/B;;UACA,KAAK15C,WAAL;QACH,CAHD,MAIK;UACD,KAAKm7D,eAAL,CAAqBH,iBAArB,EAAwC,KAAKrD,MAA7C,EAAqDje,GAArD;;UACA,KAAK15C,WAAL;QACH;MACJ,CATD,MAUK,IAAI,CAACg7D,iBAAiB,CAACnC,kBAAvB,EAA2C;QAC5C,KAAK74D,WAAL;;QACA,IAAI44D,qCAAJ,EAA2C;UACvC,MAAMlf,GAAN;QACH;;QACD2f,sEAAe,CAAC3f,GAAD,CAAf;MACH,CANI,MAOA;QACD,IAAIkf,qCAAJ,EAA2C;UACvCoC,iBAAiB,CAAChC,cAAlB,GAAmCtf,GAAnC;UACAshB,iBAAiB,CAACjC,eAAlB,GAAoC,IAApC;QACH,CAHD,MAIK;UACDM,sEAAe,CAAC3f,GAAD,CAAf;QACH;;QACD,KAAK15C,WAAL;MACH;IACJ;EACJ;;EACD04D,QAAQ,GAAG;IACP,IAAI,CAAC,KAAKwB,SAAV,EAAqB;MACjB,MAAM;QAAEc;MAAF,IAAwB,IAA9B;;MACA,IAAI,KAAKnD,SAAT,EAAoB;QAChB,MAAMuD,eAAe,GAAG,MAAM,KAAKvD,SAAL,CAAe1gD,IAAf,CAAoB,KAAK8jD,QAAzB,CAA9B;;QACA,IAAI,CAAC/lD,iFAAD,IAAiD,CAAC8lD,iBAAiB,CAACnC,kBAAxE,EAA4F;UACxF,KAAKqC,YAAL,CAAkBE,eAAlB;;UACA,KAAKp7D,WAAL;QACH,CAHD,MAIK;UACD,KAAKm7D,eAAL,CAAqBH,iBAArB,EAAwCI,eAAxC;;UACA,KAAKp7D,WAAL;QACH;MACJ,CAVD,MAWK;QACD,KAAKA,WAAL;MACH;IACJ;EACJ;;EACDk7D,YAAY,CAACz7D,EAAD,EAAKP,KAAL,EAAY;IACpB,IAAI;MACAO,EAAE,CAAC0X,IAAH,CAAQ,KAAK8jD,QAAb,EAAuB/7D,KAAvB;IACH,CAFD,CAGA,OAAOw6C,GAAP,EAAY;MACR,KAAK15C,WAAL;;MACA,IAAIkV,iFAAJ,EAAkD;QAC9C,MAAMwkC,GAAN;MACH,CAFD,MAGK;QACD2f,sEAAe,CAAC3f,GAAD,CAAf;MACH;IACJ;EACJ;;EACDyhB,eAAe,CAAC7uD,MAAD,EAAS7M,EAAT,EAAaP,KAAb,EAAoB;IAC/B,IAAI,CAACgW,iFAAL,EAAmD;MAC/C,MAAM,IAAIsH,KAAJ,CAAU,UAAV,CAAN;IACH;;IACD,IAAI;MACA/c,EAAE,CAAC0X,IAAH,CAAQ,KAAK8jD,QAAb,EAAuB/7D,KAAvB;IACH,CAFD,CAGA,OAAOw6C,GAAP,EAAY;MACR,IAAIxkC,iFAAJ,EAAkD;QAC9C5I,MAAM,CAAC0sD,cAAP,GAAwBtf,GAAxB;QACAptC,MAAM,CAACysD,eAAP,GAAyB,IAAzB;QACA,OAAO,IAAP;MACH,CAJD,MAKK;QACDM,sEAAe,CAAC3f,GAAD,CAAf;QACA,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;EACD2hB,YAAY,GAAG;IACX,MAAM;MAAEL;IAAF,IAAwB,IAA9B;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKD,iBAAL,GAAyB,IAAzB;;IACAA,iBAAiB,CAACh7D,WAAlB;EACH;;AAhI0C;;;;;;;;;;;;;;;;;;AC3F/C;AACA;AACA;AACA;AACO,MAAM45D,YAAN,CAAmB;EACtBh7D,WAAW,CAACoB,WAAD,EAAc;IACrB,KAAKk3D,MAAL,GAAc,KAAd;IACA,KAAK6D,gBAAL,GAAwB,IAAxB;IACA,KAAKS,cAAL,GAAsB,IAAtB;;IACA,IAAIx7D,WAAJ,EAAiB;MACb,KAAKy7D,gBAAL,GAAwB,IAAxB;MACA,KAAKJ,YAAL,GAAoBr7D,WAApB;IACH;EACJ;;EACDA,WAAW,GAAG;IACV,IAAI07D,MAAJ;;IACA,IAAI,KAAKxE,MAAT,EAAiB;MACb;IACH;;IACD,IAAI;MAAE6D,gBAAF;MAAoBU,gBAApB;MAAsCJ,YAAtC;MAAoDG;IAApD,IAAuE,IAA3E;IACA,KAAKtE,MAAL,GAAc,IAAd;IACA,KAAK6D,gBAAL,GAAwB,IAAxB;IACA,KAAKS,cAAL,GAAsB,IAAtB;;IACA,IAAIT,gBAAgB,YAAYnB,YAAhC,EAA8C;MAC1CmB,gBAAgB,CAAC94D,MAAjB,CAAwB,IAAxB;IACH,CAFD,MAGK,IAAI84D,gBAAgB,KAAK,IAAzB,EAA+B;MAChC,KAAK,IAAIruD,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGquD,gBAAgB,CAACx5D,MAA7C,EAAqD,EAAEmL,KAAvD,EAA8D;QAC1D,MAAMJ,MAAM,GAAGyuD,gBAAgB,CAACruD,KAAD,CAA/B;QACAJ,MAAM,CAACrK,MAAP,CAAc,IAAd;MACH;IACJ;;IACD,IAAIy4D,4DAAU,CAACW,YAAD,CAAd,EAA8B;MAC1B,IAAII,gBAAJ,EAAsB;QAClB,KAAKJ,YAAL,GAAoB12D,SAApB;MACH;;MACD,IAAI;QACA02D,YAAY,CAAClkD,IAAb,CAAkB,IAAlB;MACH,CAFD,CAGA,OAAO8K,CAAP,EAAU;QACNy5C,MAAM,GAAGz5C,CAAC,YAAYs5C,0EAAb,GAAmCI,2BAA2B,CAAC15C,CAAC,CAACy5C,MAAH,CAA9D,GAA2E,CAACz5C,CAAD,CAApF;MACH;IACJ;;IACD,IAAIlI,sDAAO,CAACyhD,cAAD,CAAX,EAA6B;MACzB,IAAI9uD,KAAK,GAAG,CAAC,CAAb;MACA,IAAI2tD,GAAG,GAAGmB,cAAc,CAACj6D,MAAzB;;MACA,OAAO,EAAEmL,KAAF,GAAU2tD,GAAjB,EAAsB;QAClB,MAAMuB,GAAG,GAAGJ,cAAc,CAAC9uD,KAAD,CAA1B;;QACA,IAAI4uD,wDAAQ,CAACM,GAAD,CAAZ,EAAmB;UACf,IAAI;YACAA,GAAG,CAAC57D,WAAJ;UACH,CAFD,CAGA,OAAOiiB,CAAP,EAAU;YACNy5C,MAAM,GAAGA,MAAM,IAAI,EAAnB;;YACA,IAAIz5C,CAAC,YAAYs5C,0EAAjB,EAAsC;cAClCG,MAAM,GAAGA,MAAM,CAACG,MAAP,CAAcF,2BAA2B,CAAC15C,CAAC,CAACy5C,MAAH,CAAzC,CAAT;YACH,CAFD,MAGK;cACDA,MAAM,CAAC35D,IAAP,CAAYkgB,CAAZ;YACH;UACJ;QACJ;MACJ;IACJ;;IACD,IAAIy5C,MAAJ,EAAY;MACR,MAAM,IAAIH,0EAAJ,CAAwBG,MAAxB,CAAN;IACH;EACJ;;EACDx5D,GAAG,CAAC45D,QAAD,EAAW;IACV,IAAI7E,YAAY,GAAG6E,QAAnB;;IACA,IAAI,CAACA,QAAL,EAAe;MACX,OAAOlC,YAAY,CAACW,KAApB;IACH;;IACD,QAAQ,OAAOuB,QAAf;MACI,KAAK,UAAL;QACI7E,YAAY,GAAG,IAAI2C,YAAJ,CAAiBkC,QAAjB,CAAf;;MACJ,KAAK,QAAL;QACI,IAAI7E,YAAY,KAAK,IAAjB,IAAyBA,YAAY,CAACC,MAAtC,IAAgD,OAAOD,YAAY,CAACj3D,WAApB,KAAoC,UAAxF,EAAoG;UAChG,OAAOi3D,YAAP;QACH,CAFD,MAGK,IAAI,KAAKC,MAAT,EAAiB;UAClBD,YAAY,CAACj3D,WAAb;UACA,OAAOi3D,YAAP;QACH,CAHI,MAIA,IAAI,EAAEA,YAAY,YAAY2C,YAA1B,CAAJ,EAA6C;UAC9C,MAAMmC,GAAG,GAAG9E,YAAZ;UACAA,YAAY,GAAG,IAAI2C,YAAJ,EAAf;UACA3C,YAAY,CAACuE,cAAb,GAA8B,CAACO,GAAD,CAA9B;QACH;;QACD;;MACJ;QAAS;UACL,MAAM,IAAIv/C,KAAJ,CAAU,2BAA2Bs/C,QAA3B,GAAsC,yBAAhD,CAAN;QACH;IAnBL;;IAqBA,IAAI;MAAEf;IAAF,IAAuB9D,YAA3B;;IACA,IAAI8D,gBAAgB,KAAK,IAAzB,EAA+B;MAC3B9D,YAAY,CAAC8D,gBAAb,GAAgC,IAAhC;IACH,CAFD,MAGK,IAAIA,gBAAgB,YAAYnB,YAAhC,EAA8C;MAC/C,IAAImB,gBAAgB,KAAK,IAAzB,EAA+B;QAC3B,OAAO9D,YAAP;MACH;;MACDA,YAAY,CAAC8D,gBAAb,GAAgC,CAACA,gBAAD,EAAmB,IAAnB,CAAhC;IACH,CALI,MAMA,IAAIA,gBAAgB,CAACpuD,OAAjB,CAAyB,IAAzB,MAAmC,CAAC,CAAxC,EAA2C;MAC5CouD,gBAAgB,CAACh5D,IAAjB,CAAsB,IAAtB;IACH,CAFI,MAGA;MACD,OAAOk1D,YAAP;IACH;;IACD,MAAM+E,aAAa,GAAG,KAAKR,cAA3B;;IACA,IAAIQ,aAAa,KAAK,IAAtB,EAA4B;MACxB,KAAKR,cAAL,GAAsB,CAACvE,YAAD,CAAtB;IACH,CAFD,MAGK;MACD+E,aAAa,CAACj6D,IAAd,CAAmBk1D,YAAnB;IACH;;IACD,OAAOA,YAAP;EACH;;EACDh1D,MAAM,CAACg1D,YAAD,EAAe;IACjB,MAAM+E,aAAa,GAAG,KAAKR,cAA3B;;IACA,IAAIQ,aAAJ,EAAmB;MACf,MAAMC,iBAAiB,GAAGD,aAAa,CAACrvD,OAAd,CAAsBsqD,YAAtB,CAA1B;;MACA,IAAIgF,iBAAiB,KAAK,CAAC,CAA3B,EAA8B;QAC1BD,aAAa,CAACrqD,MAAd,CAAqBsqD,iBAArB,EAAwC,CAAxC;MACH;IACJ;EACJ;;AA3HqB;;AA6H1BrC,YAAY,CAACW,KAAb,GAAsB,UAAUjB,KAAV,EAAiB;EACnCA,KAAK,CAACpC,MAAN,GAAe,IAAf;EACA,OAAOoC,KAAP;AACH,CAHqB,CAGpB,IAAIM,YAAJ,EAHoB,CAAtB;;AAIA,SAAS+B,2BAAT,CAAqCD,MAArC,EAA6C;EACzC,OAAOA,MAAM,CAACQ,MAAP,CAAc,CAACC,IAAD,EAAOziB,GAAP,KAAeyiB,IAAI,CAACN,MAAL,CAAaniB,GAAG,YAAY6hB,0EAAhB,GAAuC7hB,GAAG,CAACgiB,MAA3C,GAAoDhiB,GAAhE,CAA7B,EAAmG,EAAnG,CAAP;AACH;;;;;;;;;;;;;;ACvID,IAAI0iB,mDAAmD,GAAG,KAA1D;AACO,MAAMlnD,MAAM,GAAG;EAClBvJ,OAAO,EAAEhH,SADS;;EAElB,IAAIi0D,qCAAJ,CAA0C15D,KAA1C,EAAiD;IAC7C,IAAIA,KAAJ,EAAW;MACP,MAAM6yB,KAAK,GAAG,IAAIvV,KAAJ,EAAd;MACAc,OAAO,CAACC,IAAR,CAAa,kGAAkGwU,KAAK,CAACsqC,KAArH;IACH,CAHD,MAIK,IAAID,mDAAJ,EAAyD;MAC1D9+C,OAAO,CAACg/C,GAAR,CAAY,sDAAZ;IACH;;IACDF,mDAAmD,GAAGl9D,KAAtD;EACH,CAXiB;;EAYlB,IAAI05D,qCAAJ,GAA4C;IACxC,OAAOwD,mDAAP;EACH;;AAdiB,CAAf;;;;;;;;;;;;;;;;;;;;;ACDP;AACA;AACA;AACO,MAAMI,qBAAN,SAAoCnF,mDAApC,CAA+C;EAClDz4D,WAAW,CAAC0N,MAAD,EAAS;IAChB;IACA,KAAKA,MAAL,GAAcA,MAAd;EACH;;EACDmrD,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAKoN,MAAL,CAAYorD,UAAZ,CAAuBx4D,KAAvB;EACH;;EACDy4D,MAAM,CAAC5lC,KAAD,EAAQ;IACV,KAAKzlB,MAAL,CAAYsrD,WAAZ,CAAwB7lC,KAAxB;IACA,KAAK/xB,WAAL;EACH;;EACD63D,SAAS,GAAG;IACR,KAAKvrD,MAAL,CAAYwrD,cAAZ;IACA,KAAK93D,WAAL;EACH;;AAfiD;AAiB/C,MAAMy8D,sBAAN,SAAqCpF,mDAArC,CAAgD;EACnDz4D,WAAW,CAAC0N,MAAD,EAASirD,UAAT,EAAqBC,UAArB,EAAiC;IACxC;IACA,KAAKlrD,MAAL,GAAcA,MAAd;IACA,KAAKirD,UAAL,GAAkBA,UAAlB;IACA,KAAKC,UAAL,GAAkBA,UAAlB;EACH;;EACDC,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAKoN,MAAL,CAAYorD,UAAZ,CAAuB,KAAKH,UAA5B,EAAwCr4D,KAAxC,EAA+C,KAAKs4D,UAApD,EAAgE,IAAhE;EACH;;EACDG,MAAM,CAAC5lC,KAAD,EAAQ;IACV,KAAKzlB,MAAL,CAAYsrD,WAAZ,CAAwB7lC,KAAxB;IACA,KAAK/xB,WAAL;EACH;;EACD63D,SAAS,GAAG;IACR,KAAKvrD,MAAL,CAAYwrD,cAAZ,CAA2B,IAA3B;IACA,KAAK93D,WAAL;EACH;;AAjBkD;AAmBhD,MAAM08D,qBAAN,SAAoCrF,mDAApC,CAA+C;EAClDK,UAAU,CAAC8B,UAAD,EAAa;IACnB,KAAKG,WAAL,CAAiBrhD,IAAjB,CAAsBkhD,UAAtB;EACH;;EACD5B,WAAW,CAACle,GAAD,EAAM;IACb,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;EACH;;EACDoe,cAAc,GAAG;IACb,KAAK6B,WAAL,CAAiBjB,QAAjB;EACH;;AATiD;AAW/C,MAAMiE,sBAAN,SAAqCtF,mDAArC,CAAgD;EACnDK,UAAU,CAACkF,WAAD,EAAcpD,UAAd,EAA0BqD,WAA1B,EAAuCC,SAAvC,EAAkD;IACxD,KAAKnD,WAAL,CAAiBrhD,IAAjB,CAAsBkhD,UAAtB;EACH;;EACD5B,WAAW,CAAC7lC,KAAD,EAAQ;IACf,KAAK4nC,WAAL,CAAiB5nC,KAAjB,CAAuBA,KAAvB;EACH;;EACD+lC,cAAc,CAACgF,SAAD,EAAY;IACtB,KAAKnD,WAAL,CAAiBjB,QAAjB;EACH;;AATkD;AAWhD,SAASqE,cAAT,CAAwB9iC,MAAxB,EAAgC+iC,eAAhC,EAAiD;EACpD,IAAIA,eAAe,CAAC9F,MAApB,EAA4B;IACxB,OAAOvyD,SAAP;EACH;;EACD,IAAIs1B,MAAM,YAAYm+B,mDAAtB,EAAkC;IAC9B,OAAOn+B,MAAM,CAAC55B,SAAP,CAAiB28D,eAAjB,CAAP;EACH;;EACD,IAAI/F,YAAJ;;EACA,IAAI;IACAA,YAAY,GAAGsF,8DAAW,CAACtiC,MAAD,CAAX,CAAoB+iC,eAApB,CAAf;EACH,CAFD,CAGA,OAAOjrC,KAAP,EAAc;IACVirC,eAAe,CAACjrC,KAAhB,CAAsBA,KAAtB;EACH;;EACD,OAAOklC,YAAP;AACH;;;;;;;;;;;;;;;;;;;;AC5ED;AACA;AACA;AACA;AACA;AACO,MAAMkG,qBAAN,SAAoC/E,mDAApC,CAA+C;EAClDx5D,WAAW,CAAC45D,MAAD,EAAS4E,cAAT,EAAyB;IAChC;IACA,KAAK5E,MAAL,GAAcA,MAAd;IACA,KAAK4E,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GAAiB,CAAjB;IACA,KAAKC,WAAL,GAAmB,KAAnB;EACH;;EACDvG,UAAU,CAACC,UAAD,EAAa;IACnB,OAAO,KAAKuG,UAAL,GAAkBl9D,SAAlB,CAA4B22D,UAA5B,CAAP;EACH;;EACDuG,UAAU,GAAG;IACT,MAAMpD,OAAO,GAAG,KAAKqD,QAArB;;IACA,IAAI,CAACrD,OAAD,IAAYA,OAAO,CAACD,SAAxB,EAAmC;MAC/B,KAAKsD,QAAL,GAAgB,KAAKJ,cAAL,EAAhB;IACH;;IACD,OAAO,KAAKI,QAAZ;EACH;;EACDC,OAAO,GAAG;IACN,IAAIC,UAAU,GAAG,KAAKC,WAAtB;;IACA,IAAI,CAACD,UAAL,EAAiB;MACb,KAAKJ,WAAL,GAAmB,KAAnB;MACAI,UAAU,GAAG,KAAKC,WAAL,GAAmB,IAAI/D,uDAAJ,EAAhC;MACA8D,UAAU,CAACx7D,GAAX,CAAe,KAAKs2D,MAAL,CACVn4D,SADU,CACA,IAAIu9D,qBAAJ,CAA0B,KAAKL,UAAL,EAA1B,EAA6C,IAA7C,CADA,CAAf;;MAEA,IAAIG,UAAU,CAACxG,MAAf,EAAuB;QACnB,KAAKyG,WAAL,GAAmB,IAAnB;QACAD,UAAU,GAAG9D,6DAAb;MACH;IACJ;;IACD,OAAO8D,UAAP;EACH;;EACDT,QAAQ,GAAG;IACP,OAAOC,6DAAmB,GAAG,IAAH,CAA1B;EACH;;AAlCiD;AAoC/C,MAAMW,+BAA+B,GAAG,CAAC,MAAM;EAClD,MAAMC,gBAAgB,GAAGX,qBAAqB,CAAC35D,SAA/C;EACA,OAAO;IACH+0D,QAAQ,EAAE;MAAEr5D,KAAK,EAAE;IAAT,CADP;IAEHm+D,SAAS,EAAE;MAAEn+D,KAAK,EAAE,CAAT;MAAY6+D,QAAQ,EAAE;IAAtB,CAFR;IAGHP,QAAQ,EAAE;MAAEt+D,KAAK,EAAE,IAAT;MAAe6+D,QAAQ,EAAE;IAAzB,CAHP;IAIHJ,WAAW,EAAE;MAAEz+D,KAAK,EAAE,IAAT;MAAe6+D,QAAQ,EAAE;IAAzB,CAJV;IAKHhH,UAAU,EAAE;MAAE73D,KAAK,EAAE4+D,gBAAgB,CAAC/G;IAA1B,CALT;IAMHuG,WAAW,EAAE;MAAEp+D,KAAK,EAAE4+D,gBAAgB,CAACR,WAA1B;MAAuCS,QAAQ,EAAE;IAAjD,CANV;IAOHR,UAAU,EAAE;MAAEr+D,KAAK,EAAE4+D,gBAAgB,CAACP;IAA1B,CAPT;IAQHE,OAAO,EAAE;MAAEv+D,KAAK,EAAE4+D,gBAAgB,CAACL;IAA1B,CARN;IASHR,QAAQ,EAAE;MAAE/9D,KAAK,EAAE4+D,gBAAgB,CAACb;IAA1B;EATP,CAAP;AAWH,CAb8C,GAAxC;;AAcP,MAAMW,qBAAN,SAAoC5D,uDAApC,CAAsD;EAClDp7D,WAAW,CAAC+6D,WAAD,EAAcqE,WAAd,EAA2B;IAClC,MAAMrE,WAAN;IACA,KAAKqE,WAAL,GAAmBA,WAAnB;EACH;;EACDrG,MAAM,CAACje,GAAD,EAAM;IACR,KAAK2hB,YAAL;;IACA,MAAM1D,MAAN,CAAaje,GAAb;EACH;;EACDme,SAAS,GAAG;IACR,KAAKmG,WAAL,CAAiBV,WAAjB,GAA+B,IAA/B;;IACA,KAAKjC,YAAL;;IACA,MAAMxD,SAAN;EACH;;EACDwD,YAAY,GAAG;IACX,MAAM2C,WAAW,GAAG,KAAKA,WAAzB;;IACA,IAAIA,WAAJ,EAAiB;MACb,KAAKA,WAAL,GAAmB,IAAnB;MACA,MAAMN,UAAU,GAAGM,WAAW,CAACL,WAA/B;MACAK,WAAW,CAACX,SAAZ,GAAwB,CAAxB;MACAW,WAAW,CAACR,QAAZ,GAAuB,IAAvB;MACAQ,WAAW,CAACL,WAAZ,GAA0B,IAA1B;;MACA,IAAID,UAAJ,EAAgB;QACZA,UAAU,CAAC19D,WAAX;MACH;IACJ;EACJ;;AA1BiD;;AA4BtD,MAAMi+D,gBAAN,CAAuB;EACnBr/D,WAAW,CAACo/D,WAAD,EAAc;IACrB,KAAKA,WAAL,GAAmBA,WAAnB;EACH;;EACD7mD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,MAAM;MAAEwF;IAAF,IAAkB,IAAxB;IACAA,WAAW,CAACX,SAAZ;IACA,MAAMa,UAAU,GAAG,IAAIC,kBAAJ,CAAuBnH,UAAvB,EAAmCgH,WAAnC,CAAnB;IACA,MAAM/G,YAAY,GAAGuB,MAAM,CAACn4D,SAAP,CAAiB69D,UAAjB,CAArB;;IACA,IAAI,CAACA,UAAU,CAAChH,MAAhB,EAAwB;MACpBgH,UAAU,CAACR,UAAX,GAAwBM,WAAW,CAACP,OAAZ,EAAxB;IACH;;IACD,OAAOxG,YAAP;EACH;;AAbkB;;AAevB,MAAMkH,kBAAN,SAAiC9G,mDAAjC,CAA4C;EACxCz4D,WAAW,CAAC+6D,WAAD,EAAcqE,WAAd,EAA2B;IAClC,MAAMrE,WAAN;IACA,KAAKqE,WAAL,GAAmBA,WAAnB;EACH;;EACD3C,YAAY,GAAG;IACX,MAAM;MAAE2C;IAAF,IAAkB,IAAxB;;IACA,IAAI,CAACA,WAAL,EAAkB;MACd,KAAKN,UAAL,GAAkB,IAAlB;MACA;IACH;;IACD,KAAKM,WAAL,GAAmB,IAAnB;IACA,MAAMf,QAAQ,GAAGe,WAAW,CAACX,SAA7B;;IACA,IAAIJ,QAAQ,IAAI,CAAhB,EAAmB;MACf,KAAKS,UAAL,GAAkB,IAAlB;MACA;IACH;;IACDM,WAAW,CAACX,SAAZ,GAAwBJ,QAAQ,GAAG,CAAnC;;IACA,IAAIA,QAAQ,GAAG,CAAf,EAAkB;MACd,KAAKS,UAAL,GAAkB,IAAlB;MACA;IACH;;IACD,MAAM;MAAEA;IAAF,IAAiB,IAAvB;IACA,MAAMU,gBAAgB,GAAGJ,WAAW,CAACL,WAArC;IACA,KAAKD,UAAL,GAAkB,IAAlB;;IACA,IAAIU,gBAAgB,KAAK,CAACV,UAAD,IAAeU,gBAAgB,KAAKV,UAAzC,CAApB,EAA0E;MACtEU,gBAAgB,CAACp+D,WAAjB;IACH;EACJ;;AA5BuC;;;;;;;;;;;;;;;;;;;;;AClG5C;AACA;AACA;AACA;AACA;AACA,MAAMw+D,IAAI,GAAG,EAAb;AACO,SAASC,aAAT,CAAuB,GAAGC,WAA1B,EAAuC;EAC1C,IAAIC,cAAc,GAAGh6D,SAArB;EACA,IAAIi6D,SAAS,GAAGj6D,SAAhB;;EACA,IAAI05D,8DAAW,CAACK,WAAW,CAACA,WAAW,CAACn9D,MAAZ,GAAqB,CAAtB,CAAZ,CAAf,EAAsD;IAClDq9D,SAAS,GAAGF,WAAW,CAAClsD,GAAZ,EAAZ;EACH;;EACD,IAAI,OAAOksD,WAAW,CAACA,WAAW,CAACn9D,MAAZ,GAAqB,CAAtB,CAAlB,KAA+C,UAAnD,EAA+D;IAC3Do9D,cAAc,GAAGD,WAAW,CAAClsD,GAAZ,EAAjB;EACH;;EACD,IAAIksD,WAAW,CAACn9D,MAAZ,KAAuB,CAAvB,IAA4BwY,sDAAO,CAAC2kD,WAAW,CAAC,CAAD,CAAZ,CAAvC,EAAyD;IACrDA,WAAW,GAAGA,WAAW,CAAC,CAAD,CAAzB;EACH;;EACD,OAAOH,qDAAS,CAACG,WAAD,EAAcE,SAAd,CAAT,CAAkCtG,IAAlC,CAAuC,IAAIuG,qBAAJ,CAA0BF,cAA1B,CAAvC,CAAP;AACH;AACM,MAAME,qBAAN,CAA4B;EAC/BjgE,WAAW,CAAC+/D,cAAD,EAAiB;IACxB,KAAKA,cAAL,GAAsBA,cAAtB;EACH;;EACDxnD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIy+D,uBAAJ,CAA4B9H,UAA5B,EAAwC,KAAK2H,cAA7C,CAAjB,CAAP;EACH;;AAN8B;AAQ5B,MAAMG,uBAAN,SAAsCvF,6DAAtC,CAAsD;EACzD36D,WAAW,CAAC+6D,WAAD,EAAcgF,cAAd,EAA8B;IACrC,MAAMhF,WAAN;IACA,KAAKgF,cAAL,GAAsBA,cAAtB;IACA,KAAK7gD,MAAL,GAAc,CAAd;IACA,KAAKihD,MAAL,GAAc,EAAd;IACA,KAAKL,WAAL,GAAmB,EAAnB;EACH;;EACDjH,KAAK,CAACQ,UAAD,EAAa;IACd,KAAK8G,MAAL,CAAYh9D,IAAZ,CAAiBy8D,IAAjB;IACA,KAAKE,WAAL,CAAiB38D,IAAjB,CAAsBk2D,UAAtB;EACH;;EACDJ,SAAS,GAAG;IACR,MAAM6G,WAAW,GAAG,KAAKA,WAAzB;IACA,MAAMrE,GAAG,GAAGqE,WAAW,CAACn9D,MAAxB;;IACA,IAAI84D,GAAG,KAAK,CAAZ,EAAe;MACX,KAAKV,WAAL,CAAiBjB,QAAjB;IACH,CAFD,MAGK;MACD,KAAK56C,MAAL,GAAcu8C,GAAd;MACA,KAAK2E,SAAL,GAAiB3E,GAAjB;;MACA,KAAK,IAAIx4D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4D,GAApB,EAAyBx4D,CAAC,EAA1B,EAA8B;QAC1B,MAAMo2D,UAAU,GAAGyG,WAAW,CAAC78D,CAAD,CAA9B;QACA,KAAKK,GAAL,CAASo8D,0EAAiB,CAAC,IAAD,EAAOrG,UAAP,EAAmBtzD,SAAnB,EAA8B9C,CAA9B,CAA1B;MACH;IACJ;EACJ;;EACDi2D,cAAc,CAACmH,MAAD,EAAS;IACnB,IAAI,CAAC,KAAKnhD,MAAL,IAAe,CAAhB,MAAuB,CAA3B,EAA8B;MAC1B,KAAK67C,WAAL,CAAiBjB,QAAjB;IACH;EACJ;;EACDhB,UAAU,CAACkF,WAAD,EAAcpD,UAAd,EAA0BhC,UAA1B,EAAsC;IAC5C,MAAMuH,MAAM,GAAG,KAAKA,MAApB;IACA,MAAM9rB,MAAM,GAAG8rB,MAAM,CAACvH,UAAD,CAArB;IACA,MAAMwH,SAAS,GAAG,CAAC,KAAKA,SAAN,GACZ,CADY,GAEZ/rB,MAAM,KAAKurB,IAAX,GAAkB,EAAE,KAAKQ,SAAzB,GAAqC,KAAKA,SAFhD;IAGAD,MAAM,CAACvH,UAAD,CAAN,GAAqBgC,UAArB;;IACA,IAAIwF,SAAS,KAAK,CAAlB,EAAqB;MACjB,IAAI,KAAKL,cAAT,EAAyB;QACrB,KAAKO,kBAAL,CAAwBH,MAAxB;MACH,CAFD,MAGK;QACD,KAAKpF,WAAL,CAAiBrhD,IAAjB,CAAsBymD,MAAM,CAAC1tD,KAAP,EAAtB;MACH;IACJ;EACJ;;EACD6tD,kBAAkB,CAACH,MAAD,EAAS;IACvB,IAAI9kC,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,KAAK0kC,cAAL,CAAoBx6D,KAApB,CAA0B,IAA1B,EAAgC46D,MAAhC,CAAT;IACH,CAFD,CAGA,OAAOrlB,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,KAAKigB,WAAL,CAAiBrhD,IAAjB,CAAsB2hB,MAAtB;EACH;;AA1DwD;;;;;;;;;;;;;;;;AC5B7D;AACA;AACO,SAAS4hC,MAAT,CAAgB,GAAG6C,WAAnB,EAAgC;EACnC,OAAOU,+DAAS,GAAGD,uCAAE,CAAC,GAAGT,WAAJ,CAAL,CAAhB;AACH;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACO,SAASW,KAAT,CAAeC,iBAAf,EAAkC;EACrC,OAAO,IAAIlH,mDAAJ,CAAepB,UAAU,IAAI;IAChC,IAAI51D,KAAJ;;IACA,IAAI;MACAA,KAAK,GAAGk+D,iBAAiB,EAAzB;IACH,CAFD,CAGA,OAAO5lB,GAAP,EAAY;MACRsd,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB;MACA,OAAO/0C,SAAP;IACH;;IACD,MAAM6zD,MAAM,GAAGp3D,KAAK,GAAGk0B,2CAAI,CAACl0B,KAAD,CAAP,GAAiBk4D,6CAAK,EAA1C;IACA,OAAOd,MAAM,CAACn4D,SAAP,CAAiB22D,UAAjB,CAAP;EACH,CAXM,CAAP;AAYH;;;;;;;;;;;;;;;;AChBD;AACO,MAAMuD,KAAK,GAAG,IAAInC,mDAAJ,CAAepB,UAAU,IAAIA,UAAU,CAAC0B,QAAX,EAA7B,CAAd;AACA,SAASY,KAAT,CAAesF,SAAf,EAA0B;EAC7B,OAAOA,SAAS,GAAGW,cAAc,CAACX,SAAD,CAAjB,GAA+BrE,KAA/C;AACH;;AACD,SAASgF,cAAT,CAAwBX,SAAxB,EAAmC;EAC/B,OAAO,IAAIxG,mDAAJ,CAAepB,UAAU,IAAI4H,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAAC0B,QAAX,EAAzB,CAA7B,CAAP;AACH;;;;;;;;;;;;;;;;;;;ACPD;AACA;AACA;AACA;AACA;AACO,SAAS8G,QAAT,CAAkB,GAAGC,OAArB,EAA8B;EACjC,IAAIA,OAAO,CAACl+D,MAAR,KAAmB,CAAvB,EAA0B;IACtB,MAAMm+D,KAAK,GAAGD,OAAO,CAAC,CAAD,CAArB;;IACA,IAAI1lD,sDAAO,CAAC2lD,KAAD,CAAX,EAAoB;MAChB,OAAOC,gBAAgB,CAACD,KAAD,EAAQ,IAAR,CAAvB;IACH;;IACD,IAAIpE,wDAAQ,CAACoE,KAAD,CAAR,IAAmBj8D,MAAM,CAACm8D,cAAP,CAAsBF,KAAtB,MAAiCj8D,MAAM,CAACD,SAA/D,EAA0E;MACtE,MAAMsjB,IAAI,GAAGrjB,MAAM,CAACqjB,IAAP,CAAY44C,KAAZ,CAAb;MACA,OAAOC,gBAAgB,CAAC74C,IAAI,CAACxZ,GAAL,CAASmH,GAAG,IAAIirD,KAAK,CAACjrD,GAAD,CAArB,CAAD,EAA8BqS,IAA9B,CAAvB;IACH;EACJ;;EACD,IAAI,OAAO24C,OAAO,CAACA,OAAO,CAACl+D,MAAR,GAAiB,CAAlB,CAAd,KAAuC,UAA3C,EAAuD;IACnD,MAAMo9D,cAAc,GAAGc,OAAO,CAACjtD,GAAR,EAAvB;IACAitD,OAAO,GAAIA,OAAO,CAACl+D,MAAR,KAAmB,CAAnB,IAAwBwY,sDAAO,CAAC0lD,OAAO,CAAC,CAAD,CAAR,CAAhC,GAAgDA,OAAO,CAAC,CAAD,CAAvD,GAA6DA,OAAvE;IACA,OAAOE,gBAAgB,CAACF,OAAD,EAAU,IAAV,CAAhB,CAAgCphD,IAAhC,CAAqC/Q,mDAAG,CAAEpM,IAAD,IAAUy9D,cAAc,CAAC,GAAGz9D,IAAJ,CAAzB,CAAxC,CAAP;EACH;;EACD,OAAOy+D,gBAAgB,CAACF,OAAD,EAAU,IAAV,CAAvB;AACH;;AACD,SAASE,gBAAT,CAA0BF,OAA1B,EAAmC34C,IAAnC,EAAyC;EACrC,OAAO,IAAIsxC,mDAAJ,CAAepB,UAAU,IAAI;IAChC,MAAMqD,GAAG,GAAGoF,OAAO,CAACl+D,MAApB;;IACA,IAAI84D,GAAG,KAAK,CAAZ,EAAe;MACXrD,UAAU,CAAC0B,QAAX;MACA;IACH;;IACD,MAAMqG,MAAM,GAAG,IAAIjlD,KAAJ,CAAUugD,GAAV,CAAf;IACA,IAAInF,SAAS,GAAG,CAAhB;IACA,IAAI2K,OAAO,GAAG,CAAd;;IACA,KAAK,IAAIh+D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4D,GAApB,EAAyBx4D,CAAC,EAA1B,EAA8B;MAC1B,MAAM22D,MAAM,GAAGljC,2CAAI,CAACmqC,OAAO,CAAC59D,CAAD,CAAR,CAAnB;MACA,IAAIR,QAAQ,GAAG,KAAf;MACA21D,UAAU,CAAC90D,GAAX,CAAes2D,MAAM,CAACn4D,SAAP,CAAiB;QAC5BiY,IAAI,EAAEpZ,KAAK,IAAI;UACX,IAAI,CAACmC,QAAL,EAAe;YACXA,QAAQ,GAAG,IAAX;YACAw+D,OAAO;UACV;;UACDd,MAAM,CAACl9D,CAAD,CAAN,GAAY3C,KAAZ;QACH,CAP2B;QAQ5B6yB,KAAK,EAAE2nB,GAAG,IAAIsd,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB,CARc;QAS5Bgf,QAAQ,EAAE,MAAM;UACZxD,SAAS;;UACT,IAAIA,SAAS,KAAKmF,GAAd,IAAqB,CAACh5D,QAA1B,EAAoC;YAChC,IAAIw+D,OAAO,KAAKxF,GAAhB,EAAqB;cACjBrD,UAAU,CAAC1+C,IAAX,CAAgBwO,IAAI,GAChBA,IAAI,CAACo1C,MAAL,CAAY,CAACjiC,MAAD,EAASxlB,GAAT,EAAc5S,CAAd,MAAqBo4B,MAAM,CAACxlB,GAAD,CAAN,GAAcsqD,MAAM,CAACl9D,CAAD,CAApB,EAAyBo4B,MAA9C,CAAZ,EAAmE,EAAnE,CADgB,GAEhB8kC,MAFJ;YAGH;;YACD/H,UAAU,CAAC0B,QAAX;UACH;QACJ;MAnB2B,CAAjB,CAAf;IAqBH;EACJ,CAlCM,CAAP;AAmCH;;;;;;;;;;;;;;;;;AC3DD;AACA;AACA;AACO,SAASpjC,IAAT,CAAcl0B,KAAd,EAAqBw9D,SAArB,EAAgC;EACnC,IAAI,CAACA,SAAL,EAAgB;IACZ,IAAIx9D,KAAK,YAAYg3D,mDAArB,EAAiC;MAC7B,OAAOh3D,KAAP;IACH;;IACD,OAAO,IAAIg3D,mDAAJ,CAAemE,8DAAW,CAACn7D,KAAD,CAA1B,CAAP;EACH,CALD,MAMK;IACD,OAAO0+D,+DAAS,CAAC1+D,KAAD,EAAQw9D,SAAR,CAAhB;EACH;AACJ;;;;;;;;;;;;;;;;;ACbD;AACA;AACA;AACO,SAASL,SAAT,CAAmBn9D,KAAnB,EAA0Bw9D,SAA1B,EAAqC;EACxC,IAAI,CAACA,SAAL,EAAgB;IACZ,OAAO,IAAIxG,mDAAJ,CAAe2H,wEAAgB,CAAC3+D,KAAD,CAA/B,CAAP;EACH,CAFD,MAGK;IACD,OAAO4+D,uEAAa,CAAC5+D,KAAD,EAAQw9D,SAAR,CAApB;EACH;AACJ;;;;;;;;;;;;;;;;;;ACVD;AACA;AACA;AACA;;AACA,MAAMt9D,QAAQ,GAAG,CAAC,MAAMmC,MAAM,CAACD,SAAP,CAAiBlC,QAAxB,GAAjB;;AACO,SAAS5F,SAAT,CAAmB6uB,MAAnB,EAA2BhmB,SAA3B,EAAsC4U,OAAtC,EAA+CwlD,cAA/C,EAA+D;EAClE,IAAIjE,4DAAU,CAACvhD,OAAD,CAAd,EAAyB;IACrBwlD,cAAc,GAAGxlD,OAAjB;IACAA,OAAO,GAAGxU,SAAV;EACH;;EACD,IAAIg6D,cAAJ,EAAoB;IAChB,OAAOjjE,SAAS,CAAC6uB,MAAD,EAAShmB,SAAT,EAAoB4U,OAApB,CAAT,CAAsCkF,IAAtC,CAA2C/Q,mDAAG,CAACpM,IAAI,IAAI6Y,sDAAO,CAAC7Y,IAAD,CAAP,GAAgBy9D,cAAc,CAAC,GAAGz9D,IAAJ,CAA9B,GAA0Cy9D,cAAc,CAACz9D,IAAD,CAAjE,CAA9C,CAAP;EACH;;EACD,OAAO,IAAIk3D,mDAAJ,CAAepB,UAAU,IAAI;IAChC,SAASzpD,OAAT,CAAiB0U,CAAjB,EAAoB;MAChB,IAAI/d,SAAS,CAAC3C,MAAV,GAAmB,CAAvB,EAA0B;QACtBy1D,UAAU,CAAC1+C,IAAX,CAAgBwB,KAAK,CAACtW,SAAN,CAAgB6N,KAAhB,CAAsB8F,IAAtB,CAA2BjT,SAA3B,CAAhB;MACH,CAFD,MAGK;QACD8yD,UAAU,CAAC1+C,IAAX,CAAgB2J,CAAhB;MACH;IACJ;;IACDg+C,iBAAiB,CAAC11C,MAAD,EAAShmB,SAAT,EAAoBgJ,OAApB,EAA6BypD,UAA7B,EAAyC79C,OAAzC,CAAjB;EACH,CAVM,CAAP;AAWH;;AACD,SAAS8mD,iBAAT,CAA2BC,SAA3B,EAAsC37D,SAAtC,EAAiDgJ,OAAjD,EAA0DypD,UAA1D,EAAsE79C,OAAtE,EAA+E;EAC3E,IAAInZ,WAAJ;;EACA,IAAImgE,aAAa,CAACD,SAAD,CAAjB,EAA8B;IAC1B,MAAM1H,MAAM,GAAG0H,SAAf;IACAA,SAAS,CAACxyD,gBAAV,CAA2BnJ,SAA3B,EAAsCgJ,OAAtC,EAA+C4L,OAA/C;;IACAnZ,WAAW,GAAG,MAAMw4D,MAAM,CAAC7qD,mBAAP,CAA2BpJ,SAA3B,EAAsCgJ,OAAtC,EAA+C4L,OAA/C,CAApB;EACH,CAJD,MAKK,IAAIinD,yBAAyB,CAACF,SAAD,CAA7B,EAA0C;IAC3C,MAAM1H,MAAM,GAAG0H,SAAf;IACAA,SAAS,CAACre,EAAV,CAAat9C,SAAb,EAAwBgJ,OAAxB;;IACAvN,WAAW,GAAG,MAAMw4D,MAAM,CAAC6H,GAAP,CAAW97D,SAAX,EAAsBgJ,OAAtB,CAApB;EACH,CAJI,MAKA,IAAI+yD,uBAAuB,CAACJ,SAAD,CAA3B,EAAwC;IACzC,MAAM1H,MAAM,GAAG0H,SAAf;IACAA,SAAS,CAACK,WAAV,CAAsBh8D,SAAtB,EAAiCgJ,OAAjC;;IACAvN,WAAW,GAAG,MAAMw4D,MAAM,CAACgI,cAAP,CAAsBj8D,SAAtB,EAAiCgJ,OAAjC,CAApB;EACH,CAJI,MAKA,IAAI2yD,SAAS,IAAIA,SAAS,CAAC3+D,MAA3B,EAAmC;IACpC,KAAK,IAAIM,CAAC,GAAG,CAAR,EAAWw4D,GAAG,GAAG6F,SAAS,CAAC3+D,MAAhC,EAAwCM,CAAC,GAAGw4D,GAA5C,EAAiDx4D,CAAC,EAAlD,EAAsD;MAClDo+D,iBAAiB,CAACC,SAAS,CAACr+D,CAAD,CAAV,EAAe0C,SAAf,EAA0BgJ,OAA1B,EAAmCypD,UAAnC,EAA+C79C,OAA/C,CAAjB;IACH;EACJ,CAJI,MAKA;IACD,MAAM,IAAIsnD,SAAJ,CAAc,sBAAd,CAAN;EACH;;EACDzJ,UAAU,CAAC90D,GAAX,CAAelC,WAAf;AACH;;AACD,SAASsgE,uBAAT,CAAiCJ,SAAjC,EAA4C;EACxC,OAAOA,SAAS,IAAI,OAAOA,SAAS,CAACK,WAAjB,KAAiC,UAA9C,IAA4D,OAAOL,SAAS,CAACM,cAAjB,KAAoC,UAAvG;AACH;;AACD,SAASJ,yBAAT,CAAmCF,SAAnC,EAA8C;EAC1C,OAAOA,SAAS,IAAI,OAAOA,SAAS,CAACre,EAAjB,KAAwB,UAArC,IAAmD,OAAOqe,SAAS,CAACG,GAAjB,KAAyB,UAAnF;AACH;;AACD,SAASF,aAAT,CAAuBD,SAAvB,EAAkC;EAC9B,OAAOA,SAAS,IAAI,OAAOA,SAAS,CAACxyD,gBAAjB,KAAsC,UAAnD,IAAiE,OAAOwyD,SAAS,CAACvyD,mBAAjB,KAAyC,UAAjH;AACH;;;;;;;;;;;;;;;;;;AC5DD;AACA;AACA;AACA;AACO,SAASgzD,KAAT,CAAe,GAAGjC,WAAlB,EAA+B;EAClC,IAAIkC,UAAU,GAAGxmC,MAAM,CAACymC,iBAAxB;EACA,IAAIjC,SAAS,GAAG,IAAhB;EACA,IAAIkC,IAAI,GAAGpC,WAAW,CAACA,WAAW,CAACn9D,MAAZ,GAAqB,CAAtB,CAAtB;;EACA,IAAI88D,8DAAW,CAACyC,IAAD,CAAf,EAAuB;IACnBlC,SAAS,GAAGF,WAAW,CAAClsD,GAAZ,EAAZ;;IACA,IAAIksD,WAAW,CAACn9D,MAAZ,GAAqB,CAArB,IAA0B,OAAOm9D,WAAW,CAACA,WAAW,CAACn9D,MAAZ,GAAqB,CAAtB,CAAlB,KAA+C,QAA7E,EAAuF;MACnFq/D,UAAU,GAAGlC,WAAW,CAAClsD,GAAZ,EAAb;IACH;EACJ,CALD,MAMK,IAAI,OAAOsuD,IAAP,KAAgB,QAApB,EAA8B;IAC/BF,UAAU,GAAGlC,WAAW,CAAClsD,GAAZ,EAAb;EACH;;EACD,IAAIosD,SAAS,KAAK,IAAd,IAAsBF,WAAW,CAACn9D,MAAZ,KAAuB,CAA7C,IAAkDm9D,WAAW,CAAC,CAAD,CAAX,YAA0BtG,mDAAhF,EAA4F;IACxF,OAAOsG,WAAW,CAAC,CAAD,CAAlB;EACH;;EACD,OAAOgC,6DAAQ,CAACE,UAAD,CAAR,CAAqBrC,qDAAS,CAACG,WAAD,EAAcE,SAAd,CAA9B,CAAP;AACH;;;;;;;;;;;;;;;;;ACrBD;AACA;AACA;AACO,SAASO,EAAT,CAAY,GAAGj+D,IAAf,EAAqB;EACxB,IAAI09D,SAAS,GAAG19D,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAApB;;EACA,IAAI88D,8DAAW,CAACO,SAAD,CAAf,EAA4B;IACxB19D,IAAI,CAACsR,GAAL;IACA,OAAOwtD,uEAAa,CAAC9+D,IAAD,EAAO09D,SAAP,CAApB;EACH,CAHD,MAIK;IACD,OAAOL,qDAAS,CAACr9D,IAAD,CAAhB;EACH;AACJ;;;;;;;;;;;;;;;ACZD;AACO,SAAS6/D,UAAT,CAAoBhvC,KAApB,EAA2B6sC,SAA3B,EAAsC;EACzC,IAAI,CAACA,SAAL,EAAgB;IACZ,OAAO,IAAIxG,mDAAJ,CAAepB,UAAU,IAAIA,UAAU,CAACjlC,KAAX,CAAiBA,KAAjB,CAA7B,CAAP;EACH,CAFD,MAGK;IACD,OAAO,IAAIqmC,mDAAJ,CAAepB,UAAU,IAAI4H,SAAS,CAAC5pB,QAAV,CAAmBrF,QAAnB,EAA6B,CAA7B,EAAgC;MAAE5d,KAAF;MAASilC;IAAT,CAAhC,CAA7B,CAAP;EACH;AACJ;;AACD,SAASrnB,QAAT,CAAkB;EAAE5d,KAAF;EAASilC;AAAT,CAAlB,EAAyC;EACrCA,UAAU,CAACjlC,KAAX,CAAiBA,KAAjB;AACH;;;;;;;;;;;;;;;ACXD;AACO,SAASivC,UAAT,CAAoBt+D,QAApB,EAA8B;EACjC,OAAO,SAASu+D,0BAAT,CAAoCzI,MAApC,EAA4C;IAC/C,MAAMD,QAAQ,GAAG,IAAI2I,aAAJ,CAAkBx+D,QAAlB,CAAjB;IACA,MAAMy+D,MAAM,GAAG3I,MAAM,CAACF,IAAP,CAAYC,QAAZ,CAAf;IACA,OAAQA,QAAQ,CAAC4I,MAAT,GAAkBA,MAA1B;EACH,CAJD;AAKH;;AACD,MAAMD,aAAN,CAAoB;EAChBtiE,WAAW,CAAC8D,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;EACDyU,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI+gE,eAAJ,CAAoBpK,UAApB,EAAgC,KAAKt0D,QAArC,EAA+C,KAAKy+D,MAApD,CAAjB,CAAP;EACH;;AANe;;AAQpB,MAAMC,eAAN,SAA8B1E,kEAA9B,CAAoD;EAChD99D,WAAW,CAAC+6D,WAAD,EAAcj3D,QAAd,EAAwBy+D,MAAxB,EAAgC;IACvC,MAAMxH,WAAN;IACA,KAAKj3D,QAAL,GAAgBA,QAAhB;IACA,KAAKy+D,MAAL,GAAcA,MAAd;EACH;;EACDpvC,KAAK,CAAC2nB,GAAD,EAAM;IACP,IAAI,CAAC,KAAKwgB,SAAV,EAAqB;MACjB,IAAIjgC,MAAJ;;MACA,IAAI;QACAA,MAAM,GAAG,KAAKv3B,QAAL,CAAcg3C,GAAd,EAAmB,KAAKynB,MAAxB,CAAT;MACH,CAFD,CAGA,OAAOE,IAAP,EAAa;QACT,MAAMtvC,KAAN,CAAYsvC,IAAZ;QACA;MACH;;MACD,KAAKvG,sBAAL;;MACA,MAAMkC,eAAe,GAAG,IAAIR,kEAAJ,CAA0B,IAA1B,CAAxB;MACA,KAAKt6D,GAAL,CAAS86D,eAAT;MACA,MAAMsE,iBAAiB,GAAGvE,+DAAc,CAAC9iC,MAAD,EAAS+iC,eAAT,CAAxC;;MACA,IAAIsE,iBAAiB,KAAKtE,eAA1B,EAA2C;QACvC,KAAK96D,GAAL,CAASo/D,iBAAT;MACH;IACJ;EACJ;;AAxB+C;;;;;;;;;;;;;;;AChBpD;AACO,SAASlC,SAAT,GAAqB;EACxB,OAAOsB,mDAAQ,CAAC,CAAD,CAAf;AACH;;;;;;;;;;;;;;;ACHD;AACO,SAASc,SAAT,CAAmBC,OAAnB,EAA4B9C,cAA5B,EAA4C;EAC/C,OAAO4C,mDAAQ,CAACE,OAAD,EAAU9C,cAAV,EAA0B,CAA1B,CAAf;AACH;;;;;;;;;;;;;;;ACHD;AACO,SAAS+C,cAAT,CAAwBC,YAAY,GAAG,IAAvC,EAA6C;EAChD,OAAQnJ,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAIsJ,sBAAJ,CAA2BD,YAA3B,CAAZ,CAAnB;AACH;;AACD,MAAMC,sBAAN,CAA6B;EACzBhjE,WAAW,CAAC+iE,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;EACH;;EACDxqD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIwhE,wBAAJ,CAA6B7K,UAA7B,EAAyC,KAAK2K,YAA9C,CAAjB,CAAP;EACH;;AANwB;;AAQ7B,MAAME,wBAAN,SAAuCxK,mDAAvC,CAAkD;EAC9Cz4D,WAAW,CAAC+6D,WAAD,EAAcgI,YAAd,EAA4B;IACnC,MAAMhI,WAAN;IACA,KAAKgI,YAAL,GAAoBA,YAApB;IACA,KAAKG,OAAL,GAAe,IAAf;EACH;;EACDrK,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAK4iE,OAAL,GAAe,KAAf;IACA,KAAKnI,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;EACH;;EACD24D,SAAS,GAAG;IACR,IAAI,KAAKiK,OAAT,EAAkB;MACd,KAAKnI,WAAL,CAAiBrhD,IAAjB,CAAsB,KAAKqpD,YAA3B;IACH;;IACD,KAAKhI,WAAL,CAAiBjB,QAAjB;EACH;;AAf6C;;;;;;;;;;;;;;;ACZlD;AACO,SAAS76D,oBAAT,CAA8BkkE,OAA9B,EAAuCC,WAAvC,EAAoD;EACvD,OAAQxJ,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAI2J,4BAAJ,CAAiCF,OAAjC,EAA0CC,WAA1C,CAAZ,CAAnB;AACH;;AACD,MAAMC,4BAAN,CAAmC;EAC/BrjE,WAAW,CAACmjE,OAAD,EAAUC,WAAV,EAAuB;IAC9B,KAAKD,OAAL,GAAeA,OAAf;IACA,KAAKC,WAAL,GAAmBA,WAAnB;EACH;;EACD7qD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI6hE,8BAAJ,CAAmClL,UAAnC,EAA+C,KAAK+K,OAApD,EAA6D,KAAKC,WAAlE,CAAjB,CAAP;EACH;;AAP8B;;AASnC,MAAME,8BAAN,SAA6C7K,mDAA7C,CAAwD;EACpDz4D,WAAW,CAAC+6D,WAAD,EAAcoI,OAAd,EAAuBC,WAAvB,EAAoC;IAC3C,MAAMrI,WAAN;IACA,KAAKqI,WAAL,GAAmBA,WAAnB;IACA,KAAKG,MAAL,GAAc,KAAd;;IACA,IAAI,OAAOJ,OAAP,KAAmB,UAAvB,EAAmC;MAC/B,KAAKA,OAAL,GAAeA,OAAf;IACH;EACJ;;EACDA,OAAO,CAACpkC,CAAD,EAAIE,CAAJ,EAAO;IACV,OAAOF,CAAC,KAAKE,CAAb;EACH;;EACD45B,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAIuV,GAAJ;;IACA,IAAI;MACA,MAAM;QAAEutD;MAAF,IAAkB,IAAxB;MACAvtD,GAAG,GAAGutD,WAAW,GAAGA,WAAW,CAAC9iE,KAAD,CAAd,GAAwBA,KAAzC;IACH,CAHD,CAIA,OAAOw6C,GAAP,EAAY;MACR,OAAO,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB,CAAP;IACH;;IACD,IAAIzf,MAAM,GAAG,KAAb;;IACA,IAAI,KAAKkoC,MAAT,EAAiB;MACb,IAAI;QACA,MAAM;UAAEJ;QAAF,IAAc,IAApB;QACA9nC,MAAM,GAAG8nC,OAAO,CAAC,KAAKttD,GAAN,EAAWA,GAAX,CAAhB;MACH,CAHD,CAIA,OAAOilC,GAAP,EAAY;QACR,OAAO,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB,CAAP;MACH;IACJ,CARD,MASK;MACD,KAAKyoB,MAAL,GAAc,IAAd;IACH;;IACD,IAAI,CAACloC,MAAL,EAAa;MACT,KAAKxlB,GAAL,GAAWA,GAAX;MACA,KAAKklD,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;IACH;EACJ;;AAtCmD;;;;;;;;;;;;;;;ACbxD;AACO,SAASvB,MAAT,CAAgBkkC,SAAhB,EAA2BugC,OAA3B,EAAoC;EACvC,OAAO,SAASC,sBAAT,CAAgC7J,MAAhC,EAAwC;IAC3C,OAAOA,MAAM,CAACF,IAAP,CAAY,IAAIgK,cAAJ,CAAmBzgC,SAAnB,EAA8BugC,OAA9B,CAAZ,CAAP;EACH,CAFD;AAGH;;AACD,MAAME,cAAN,CAAqB;EACjB1jE,WAAW,CAACijC,SAAD,EAAYugC,OAAZ,EAAqB;IAC5B,KAAKvgC,SAAL,GAAiBA,SAAjB;IACA,KAAKugC,OAAL,GAAeA,OAAf;EACH;;EACDjrD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIkiE,gBAAJ,CAAqBvL,UAArB,EAAiC,KAAKn1B,SAAtC,EAAiD,KAAKugC,OAAtD,CAAjB,CAAP;EACH;;AAPgB;;AASrB,MAAMG,gBAAN,SAA+BlL,mDAA/B,CAA0C;EACtCz4D,WAAW,CAAC+6D,WAAD,EAAc93B,SAAd,EAAyBugC,OAAzB,EAAkC;IACzC,MAAMzI,WAAN;IACA,KAAK93B,SAAL,GAAiBA,SAAjB;IACA,KAAKugC,OAAL,GAAeA,OAAf;IACA,KAAKI,KAAL,GAAa,CAAb;EACH;;EACD/K,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI+6B,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,KAAK4H,SAAL,CAAe1qB,IAAf,CAAoB,KAAKirD,OAAzB,EAAkCljE,KAAlC,EAAyC,KAAKsjE,KAAL,EAAzC,CAAT;IACH,CAFD,CAGA,OAAO9oB,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,IAAIzf,MAAJ,EAAY;MACR,KAAK0/B,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;IACH;EACJ;;AAnBqC;;;;;;;;;;;;;;;;ACf1C;AACA;AACO,SAASujE,QAAT,CAAkB1sD,QAAlB,EAA4B;EAC/B,OAAQyiD,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAIoK,eAAJ,CAAoB3sD,QAApB,CAAZ,CAAnB;AACH;;AACD,MAAM2sD,eAAN,CAAsB;EAClB9jE,WAAW,CAACmX,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;EACDoB,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIsiE,iBAAJ,CAAsB3L,UAAtB,EAAkC,KAAKjhD,QAAvC,CAAjB,CAAP;EACH;;AANiB;;AAQtB,MAAM4sD,iBAAN,SAAgCtL,mDAAhC,CAA2C;EACvCz4D,WAAW,CAAC+6D,WAAD,EAAc5jD,QAAd,EAAwB;IAC/B,MAAM4jD,WAAN;IACA,KAAKz3D,GAAL,CAAS,IAAI03D,uDAAJ,CAAiB7jD,QAAjB,CAAT;EACH;;AAJsC;;;;;;;;;;;;;;;;;;;;ACb3C;AACA;AACA;AACA;AACA;AACA;AACO,SAAS2pD,KAAT,CAAe79B,SAAf,EAA0B8/B,YAA1B,EAAwC;EAC3C,MAAMqB,eAAe,GAAG9+D,SAAS,CAAC3C,MAAV,IAAoB,CAA5C;EACA,OAAQi3D,MAAD,IAAYA,MAAM,CAACn6C,IAAP,CAAYwjB,SAAS,GAAGlkC,+CAAM,CAAC,CAAC6Q,CAAD,EAAI3M,CAAJ,KAAUggC,SAAS,CAACrzB,CAAD,EAAI3M,CAAJ,EAAO22D,MAAP,CAApB,CAAT,GAA+CuK,oDAApE,EAA8EF,2CAAI,CAAC,CAAD,CAAlF,EAAuFG,eAAe,GAAGtB,+DAAc,CAACC,YAAD,CAAjB,GAAkCmB,2DAAY,CAAC,MAAM,IAAIF,wDAAJ,EAAP,CAApJ,CAAnB;AACH;;;;;;;;;;;;;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS9B,IAAT,CAAcj/B,SAAd,EAAyB8/B,YAAzB,EAAuC;EAC1C,MAAMqB,eAAe,GAAG9+D,SAAS,CAAC3C,MAAV,IAAoB,CAA5C;EACA,OAAQi3D,MAAD,IAAYA,MAAM,CAACn6C,IAAP,CAAYwjB,SAAS,GAAGlkC,+CAAM,CAAC,CAAC6Q,CAAD,EAAI3M,CAAJ,KAAUggC,SAAS,CAACrzB,CAAD,EAAI3M,CAAJ,EAAO22D,MAAP,CAApB,CAAT,GAA+CuK,oDAApE,EAA8EE,mDAAQ,CAAC,CAAD,CAAtF,EAA2FD,eAAe,GAAGtB,+DAAc,CAACC,YAAD,CAAjB,GAAkCmB,2DAAY,CAAC,MAAM,IAAIF,wDAAJ,EAAP,CAAxJ,CAAnB;AACH;;;;;;;;;;;;;;;;ACTD;AACO,SAASt1D,GAAT,CAAam0D,OAAb,EAAsBW,OAAtB,EAA+B;EAClC,OAAO,SAASc,YAAT,CAAsB1K,MAAtB,EAA8B;IACjC,IAAI,OAAOiJ,OAAP,KAAmB,UAAvB,EAAmC;MAC/B,MAAM,IAAIhB,SAAJ,CAAc,4DAAd,CAAN;IACH;;IACD,OAAOjI,MAAM,CAACF,IAAP,CAAY,IAAI6K,WAAJ,CAAgB1B,OAAhB,EAAyBW,OAAzB,CAAZ,CAAP;EACH,CALD;AAMH;AACM,MAAMe,WAAN,CAAkB;EACrBvkE,WAAW,CAAC6iE,OAAD,EAAUW,OAAV,EAAmB;IAC1B,KAAKX,OAAL,GAAeA,OAAf;IACA,KAAKW,OAAL,GAAeA,OAAf;EACH;;EACDjrD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI+iE,aAAJ,CAAkBpM,UAAlB,EAA8B,KAAKyK,OAAnC,EAA4C,KAAKW,OAAjD,CAAjB,CAAP;EACH;;AAPoB;;AASzB,MAAMgB,aAAN,SAA4B/L,mDAA5B,CAAuC;EACnCz4D,WAAW,CAAC+6D,WAAD,EAAc8H,OAAd,EAAuBW,OAAvB,EAAgC;IACvC,MAAMzI,WAAN;IACA,KAAK8H,OAAL,GAAeA,OAAf;IACA,KAAKe,KAAL,GAAa,CAAb;IACA,KAAKJ,OAAL,GAAeA,OAAO,IAAI,IAA1B;EACH;;EACD3K,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI+6B,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,KAAKwnC,OAAL,CAAatqD,IAAb,CAAkB,KAAKirD,OAAvB,EAAgCljE,KAAhC,EAAuC,KAAKsjE,KAAL,EAAvC,CAAT;IACH,CAFD,CAGA,OAAO9oB,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,KAAKigB,WAAL,CAAiBrhD,IAAjB,CAAsB2hB,MAAtB;EACH;;AAjBkC;;;;;;;;;;;;;;;AClBvC;AACO,SAASopC,KAAT,CAAenkE,KAAf,EAAsB;EACzB,OAAQs5D,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAIgL,aAAJ,CAAkBpkE,KAAlB,CAAZ,CAAnB;AACH;;AACD,MAAMokE,aAAN,CAAoB;EAChB1kE,WAAW,CAACM,KAAD,EAAQ;IACf,KAAKA,KAAL,GAAaA,KAAb;EACH;;EACDiY,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIkjE,eAAJ,CAAoBvM,UAApB,EAAgC,KAAK93D,KAArC,CAAjB,CAAP;EACH;;AANe;;AAQpB,MAAMqkE,eAAN,SAA8BlM,mDAA9B,CAAyC;EACrCz4D,WAAW,CAAC+6D,WAAD,EAAcz6D,KAAd,EAAqB;IAC5B,MAAMy6D,WAAN;IACA,KAAKz6D,KAAL,GAAaA,KAAb;EACH;;EACDu4D,KAAK,CAAC95B,CAAD,EAAI;IACL,KAAKg8B,WAAL,CAAiBrhD,IAAjB,CAAsB,KAAKpZ,KAA3B;EACH;;AAPoC;;;;;;;;;;;;;;;;ACZzC;AACA;AACO,SAASwhE,QAAT,CAAkBE,UAAU,GAAGxmC,MAAM,CAACymC,iBAAtC,EAAyD;EAC5D,OAAOU,mDAAQ,CAACwB,oDAAD,EAAWnC,UAAX,CAAf;AACH;;;;;;;;;;;;;;;;;;;;ACJD;AACA;AACA;AACO,SAASW,QAAT,CAAkBE,OAAlB,EAA2B9C,cAA3B,EAA2CiC,UAAU,GAAGxmC,MAAM,CAACymC,iBAA/D,EAAkF;EACrF,IAAI,OAAOlC,cAAP,KAA0B,UAA9B,EAA0C;IACtC,OAAQnG,MAAD,IAAYA,MAAM,CAACn6C,IAAP,CAAYkjD,QAAQ,CAAC,CAAC1qC,CAAD,EAAIh1B,CAAJ,KAAUyzB,sDAAI,CAACmsC,OAAO,CAAC5qC,CAAD,EAAIh1B,CAAJ,CAAR,CAAJ,CAAoBwc,IAApB,CAAyB/Q,yCAAG,CAAC,CAACwpB,CAAD,EAAI0sC,EAAJ,KAAW7E,cAAc,CAAC9nC,CAAD,EAAIC,CAAJ,EAAOj1B,CAAP,EAAU2hE,EAAV,CAA1B,CAA5B,CAAX,EAAkF5C,UAAlF,CAApB,CAAnB;EACH,CAFD,MAGK,IAAI,OAAOjC,cAAP,KAA0B,QAA9B,EAAwC;IACzCiC,UAAU,GAAGjC,cAAb;EACH;;EACD,OAAQnG,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAImL,gBAAJ,CAAqBhC,OAArB,EAA8Bb,UAA9B,CAAZ,CAAnB;AACH;AACM,MAAM6C,gBAAN,CAAuB;EAC1B7kE,WAAW,CAAC6iE,OAAD,EAAUb,UAAU,GAAGxmC,MAAM,CAACymC,iBAA9B,EAAiD;IACxD,KAAKY,OAAL,GAAeA,OAAf;IACA,KAAKb,UAAL,GAAkBA,UAAlB;EACH;;EACDzpD,IAAI,CAACusD,QAAD,EAAWlL,MAAX,EAAmB;IACnB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIsjE,kBAAJ,CAAuBD,QAAvB,EAAiC,KAAKjC,OAAtC,EAA+C,KAAKb,UAApD,CAAjB,CAAP;EACH;;AAPyB;AASvB,MAAM+C,kBAAN,SAAiCjH,kEAAjC,CAAuD;EAC1D99D,WAAW,CAAC+6D,WAAD,EAAc8H,OAAd,EAAuBb,UAAU,GAAGxmC,MAAM,CAACymC,iBAA3C,EAA8D;IACrE,MAAMlH,WAAN;IACA,KAAK8H,OAAL,GAAeA,OAAf;IACA,KAAKb,UAAL,GAAkBA,UAAlB;IACA,KAAKhhB,YAAL,GAAoB,KAApB;IACA,KAAKgkB,MAAL,GAAc,EAAd;IACA,KAAK9lD,MAAL,GAAc,CAAd;IACA,KAAKpR,KAAL,GAAa,CAAb;EACH;;EACD+qD,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI,KAAK4e,MAAL,GAAc,KAAK8iD,UAAvB,EAAmC;MAC/B,KAAKiD,QAAL,CAAc3kE,KAAd;IACH,CAFD,MAGK;MACD,KAAK0kE,MAAL,CAAY7hE,IAAZ,CAAiB7C,KAAjB;IACH;EACJ;;EACD2kE,QAAQ,CAAC3kE,KAAD,EAAQ;IACZ,IAAI+6B,MAAJ;IACA,MAAMvtB,KAAK,GAAG,KAAKA,KAAL,EAAd;;IACA,IAAI;MACAutB,MAAM,GAAG,KAAKwnC,OAAL,CAAaviE,KAAb,EAAoBwN,KAApB,CAAT;IACH,CAFD,CAGA,OAAOgtC,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,KAAK57B,MAAL;;IACA,KAAKg/C,SAAL,CAAe7iC,MAAf;EACH;;EACD6iC,SAAS,CAACgH,GAAD,EAAM;IACX,MAAM9G,eAAe,GAAG,IAAIR,kEAAJ,CAA0B,IAA1B,CAAxB;IACA,MAAM7C,WAAW,GAAG,KAAKA,WAAzB;IACAA,WAAW,CAACz3D,GAAZ,CAAgB86D,eAAhB;IACA,MAAMsE,iBAAiB,GAAGvE,+DAAc,CAAC+G,GAAD,EAAM9G,eAAN,CAAxC;;IACA,IAAIsE,iBAAiB,KAAKtE,eAA1B,EAA2C;MACvCrD,WAAW,CAACz3D,GAAZ,CAAgBo/D,iBAAhB;IACH;EACJ;;EACDzJ,SAAS,GAAG;IACR,KAAKjY,YAAL,GAAoB,IAApB;;IACA,IAAI,KAAK9hC,MAAL,KAAgB,CAAhB,IAAqB,KAAK8lD,MAAL,CAAYriE,MAAZ,KAAuB,CAAhD,EAAmD;MAC/C,KAAKo4D,WAAL,CAAiBjB,QAAjB;IACH;;IACD,KAAK14D,WAAL;EACH;;EACD03D,UAAU,CAAC8B,UAAD,EAAa;IACnB,KAAKG,WAAL,CAAiBrhD,IAAjB,CAAsBkhD,UAAtB;EACH;;EACD1B,cAAc,GAAG;IACb,MAAM8L,MAAM,GAAG,KAAKA,MAApB;IACA,KAAK9lD,MAAL;;IACA,IAAI8lD,MAAM,CAACriE,MAAP,GAAgB,CAApB,EAAuB;MACnB,KAAKk2D,KAAL,CAAWmM,MAAM,CAACG,KAAP,EAAX;IACH,CAFD,MAGK,IAAI,KAAKjmD,MAAL,KAAgB,CAAhB,IAAqB,KAAK8hC,YAA9B,EAA4C;MAC7C,KAAK+Z,WAAL,CAAiBjB,QAAjB;IACH;EACJ;;AA3DyD;AA6DvD,MAAMsL,OAAO,GAAGzC,QAAhB;;;;;;;;;;;;;;;;AClFP;AACO,SAAS0C,SAAT,CAAmBC,uBAAnB,EAA4CxhE,QAA5C,EAAsD;EACzD,OAAO,SAASyhE,yBAAT,CAAmC3L,MAAnC,EAA2C;IAC9C,IAAI4E,cAAJ;;IACA,IAAI,OAAO8G,uBAAP,KAAmC,UAAvC,EAAmD;MAC/C9G,cAAc,GAAG8G,uBAAjB;IACH,CAFD,MAGK;MACD9G,cAAc,GAAG,SAASA,cAAT,GAA0B;QACvC,OAAO8G,uBAAP;MACH,CAFD;IAGH;;IACD,IAAI,OAAOxhE,QAAP,KAAoB,UAAxB,EAAoC;MAChC,OAAO81D,MAAM,CAACF,IAAP,CAAY,IAAI8L,iBAAJ,CAAsBhH,cAAtB,EAAsC16D,QAAtC,CAAZ,CAAP;IACH;;IACD,MAAMs7D,WAAW,GAAGv6D,MAAM,CAACoH,MAAP,CAAc2tD,MAAd,EAAsBqF,8FAAtB,CAApB;IACAG,WAAW,CAACxF,MAAZ,GAAqBA,MAArB;IACAwF,WAAW,CAACZ,cAAZ,GAA6BA,cAA7B;IACA,OAAOY,WAAP;EACH,CAjBD;AAkBH;AACM,MAAMoG,iBAAN,CAAwB;EAC3BxlE,WAAW,CAACw+D,cAAD,EAAiB16D,QAAjB,EAA2B;IAClC,KAAK06D,cAAL,GAAsBA,cAAtB;IACA,KAAK16D,QAAL,GAAgBA,QAAhB;EACH;;EACDyU,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,MAAM;MAAE91D;IAAF,IAAe,IAArB;IACA,MAAMy3D,OAAO,GAAG,KAAKiD,cAAL,EAAhB;IACA,MAAMnG,YAAY,GAAGv0D,QAAQ,CAACy3D,OAAD,CAAR,CAAkB95D,SAAlB,CAA4B22D,UAA5B,CAArB;IACAC,YAAY,CAAC/0D,GAAb,CAAiBs2D,MAAM,CAACn4D,SAAP,CAAiB85D,OAAjB,CAAjB;IACA,OAAOlD,YAAP;EACH;;AAX0B;;;;;;;;;;;;;;;ACrB/B;AACO,SAASgG,QAAT,GAAoB;EACvB,OAAO,SAASoH,wBAAT,CAAkC7L,MAAlC,EAA0C;IAC7C,OAAOA,MAAM,CAACF,IAAP,CAAY,IAAI2F,gBAAJ,CAAqBzF,MAArB,CAAZ,CAAP;EACH,CAFD;AAGH;;AACD,MAAMyF,gBAAN,CAAuB;EACnBr/D,WAAW,CAACo/D,WAAD,EAAc;IACrB,KAAKA,WAAL,GAAmBA,WAAnB;EACH;;EACD7mD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,MAAM;MAAEwF;IAAF,IAAkB,IAAxB;IACAA,WAAW,CAACX,SAAZ;IACA,MAAMa,UAAU,GAAG,IAAIC,kBAAJ,CAAuBnH,UAAvB,EAAmCgH,WAAnC,CAAnB;IACA,MAAM/G,YAAY,GAAGuB,MAAM,CAACn4D,SAAP,CAAiB69D,UAAjB,CAArB;;IACA,IAAI,CAACA,UAAU,CAAChH,MAAhB,EAAwB;MACpBgH,UAAU,CAACR,UAAX,GAAwBM,WAAW,CAACP,OAAZ,EAAxB;IACH;;IACD,OAAOxG,YAAP;EACH;;AAbkB;;AAevB,MAAMkH,kBAAN,SAAiC9G,mDAAjC,CAA4C;EACxCz4D,WAAW,CAAC+6D,WAAD,EAAcqE,WAAd,EAA2B;IAClC,MAAMrE,WAAN;IACA,KAAKqE,WAAL,GAAmBA,WAAnB;EACH;;EACD3C,YAAY,GAAG;IACX,MAAM;MAAE2C;IAAF,IAAkB,IAAxB;;IACA,IAAI,CAACA,WAAL,EAAkB;MACd,KAAKN,UAAL,GAAkB,IAAlB;MACA;IACH;;IACD,KAAKM,WAAL,GAAmB,IAAnB;IACA,MAAMf,QAAQ,GAAGe,WAAW,CAACX,SAA7B;;IACA,IAAIJ,QAAQ,IAAI,CAAhB,EAAmB;MACf,KAAKS,UAAL,GAAkB,IAAlB;MACA;IACH;;IACDM,WAAW,CAACX,SAAZ,GAAwBJ,QAAQ,GAAG,CAAnC;;IACA,IAAIA,QAAQ,GAAG,CAAf,EAAkB;MACd,KAAKS,UAAL,GAAkB,IAAlB;MACA;IACH;;IACD,MAAM;MAAEA;IAAF,IAAiB,IAAvB;IACA,MAAMU,gBAAgB,GAAGJ,WAAW,CAACL,WAArC;IACA,KAAKD,UAAL,GAAkB,IAAlB;;IACA,IAAIU,gBAAgB,KAAK,CAACV,UAAD,IAAeU,gBAAgB,KAAKV,UAAzC,CAApB,EAA0E;MACtEU,gBAAgB,CAACp+D,WAAjB;IACH;EACJ;;AA5BuC;;;;;;;;;;;;;;;ACrB5C;AACO,SAASskE,IAAT,CAAcC,WAAd,EAA2BC,IAA3B,EAAiC;EACpC,IAAIC,OAAO,GAAG,KAAd;;EACA,IAAIvgE,SAAS,CAAC3C,MAAV,IAAoB,CAAxB,EAA2B;IACvBkjE,OAAO,GAAG,IAAV;EACH;;EACD,OAAO,SAASC,oBAAT,CAA8BlM,MAA9B,EAAsC;IACzC,OAAOA,MAAM,CAACF,IAAP,CAAY,IAAIqM,YAAJ,CAAiBJ,WAAjB,EAA8BC,IAA9B,EAAoCC,OAApC,CAAZ,CAAP;EACH,CAFD;AAGH;;AACD,MAAME,YAAN,CAAmB;EACf/lE,WAAW,CAAC2lE,WAAD,EAAcC,IAAd,EAAoBC,OAAO,GAAG,KAA9B,EAAqC;IAC5C,KAAKF,WAAL,GAAmBA,WAAnB;IACA,KAAKC,IAAL,GAAYA,IAAZ;IACA,KAAKC,OAAL,GAAeA,OAAf;EACH;;EACDttD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIukE,cAAJ,CAAmB5N,UAAnB,EAA+B,KAAKuN,WAApC,EAAiD,KAAKC,IAAtD,EAA4D,KAAKC,OAAjE,CAAjB,CAAP;EACH;;AARc;;AAUnB,MAAMG,cAAN,SAA6BvN,mDAA7B,CAAwC;EACpCz4D,WAAW,CAAC+6D,WAAD,EAAc4K,WAAd,EAA2BM,KAA3B,EAAkCJ,OAAlC,EAA2C;IAClD,MAAM9K,WAAN;IACA,KAAK4K,WAAL,GAAmBA,WAAnB;IACA,KAAKM,KAAL,GAAaA,KAAb;IACA,KAAKJ,OAAL,GAAeA,OAAf;IACA,KAAK/3D,KAAL,GAAa,CAAb;EACH;;EACO,IAAJ83D,IAAI,GAAG;IACP,OAAO,KAAKK,KAAZ;EACH;;EACO,IAAJL,IAAI,CAACtlE,KAAD,EAAQ;IACZ,KAAKulE,OAAL,GAAe,IAAf;IACA,KAAKI,KAAL,GAAa3lE,KAAb;EACH;;EACDu4D,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI,CAAC,KAAKulE,OAAV,EAAmB;MACf,KAAKD,IAAL,GAAYtlE,KAAZ;MACA,KAAKy6D,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;IACH,CAHD,MAIK;MACD,OAAO,KAAK2kE,QAAL,CAAc3kE,KAAd,CAAP;IACH;EACJ;;EACD2kE,QAAQ,CAAC3kE,KAAD,EAAQ;IACZ,MAAMwN,KAAK,GAAG,KAAKA,KAAL,EAAd;IACA,IAAIutB,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,KAAKsqC,WAAL,CAAiB,KAAKC,IAAtB,EAA4BtlE,KAA5B,EAAmCwN,KAAnC,CAAT;IACH,CAFD,CAGA,OAAOgtC,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;IACH;;IACD,KAAK8qB,IAAL,GAAYvqC,MAAZ;IACA,KAAK0/B,WAAL,CAAiBrhD,IAAjB,CAAsB2hB,MAAtB;EACH;;AAnCmC;;;;;;;;;;;;;;;;;ACpBxC;AACA;AACA;;AACA,SAAS6qC,mBAAT,GAA+B;EAC3B,OAAO,IAAInpE,6CAAJ,EAAP;AACH;;AACM,SAASopE,KAAT,GAAiB;EACpB,OAAQvM,MAAD,IAAYyE,mDAAQ,GAAGgH,qDAAS,CAACa,mBAAD,CAAT,CAA+BtM,MAA/B,CAAH,CAA3B;AACH;;;;;;;;;;;;;;;;ACRD;AACA;AACO,SAASwM,SAAT,CAAmB,GAAGC,KAAtB,EAA6B;EAChC,MAAMrG,SAAS,GAAGqG,KAAK,CAACA,KAAK,CAAC1jE,MAAN,GAAe,CAAhB,CAAvB;;EACA,IAAI88D,8DAAW,CAACO,SAAD,CAAf,EAA4B;IACxBqG,KAAK,CAACzyD,GAAN;IACA,OAAQgmD,MAAD,IAAYqD,0DAAM,CAACoJ,KAAD,EAAQzM,MAAR,EAAgBoG,SAAhB,CAAzB;EACH,CAHD,MAIK;IACD,OAAQpG,MAAD,IAAYqD,0DAAM,CAACoJ,KAAD,EAAQzM,MAAR,CAAzB;EACH;AACJ;;;;;;;;;;;;;;;;;ACXD;AACA;AACA;AACO,SAAS56D,SAAT,CAAmB6jE,OAAnB,EAA4B9C,cAA5B,EAA4C;EAC/C,IAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;IACtC,OAAQnG,MAAD,IAAYA,MAAM,CAACn6C,IAAP,CAAYzgB,SAAS,CAAC,CAACi5B,CAAD,EAAIh1B,CAAJ,KAAUyzB,sDAAI,CAACmsC,OAAO,CAAC5qC,CAAD,EAAIh1B,CAAJ,CAAR,CAAJ,CAAoBwc,IAApB,CAAyB/Q,yCAAG,CAAC,CAACwpB,CAAD,EAAI0sC,EAAJ,KAAW7E,cAAc,CAAC9nC,CAAD,EAAIC,CAAJ,EAAOj1B,CAAP,EAAU2hE,EAAV,CAA1B,CAA5B,CAAX,CAArB,CAAnB;EACH;;EACD,OAAQhL,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAI4M,iBAAJ,CAAsBzD,OAAtB,CAAZ,CAAnB;AACH;;AACD,MAAMyD,iBAAN,CAAwB;EACpBtmE,WAAW,CAAC6iE,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;;EACDtqD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI8kE,mBAAJ,CAAwBnO,UAAxB,EAAoC,KAAKyK,OAAzC,CAAjB,CAAP;EACH;;AANmB;;AAQxB,MAAM0D,mBAAN,SAAkCzI,kEAAlC,CAAwD;EACpD99D,WAAW,CAAC+6D,WAAD,EAAc8H,OAAd,EAAuB;IAC9B,MAAM9H,WAAN;IACA,KAAK8H,OAAL,GAAeA,OAAf;IACA,KAAK/0D,KAAL,GAAa,CAAb;EACH;;EACD+qD,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI+6B,MAAJ;IACA,MAAMvtB,KAAK,GAAG,KAAKA,KAAL,EAAd;;IACA,IAAI;MACAutB,MAAM,GAAG,KAAKwnC,OAAL,CAAaviE,KAAb,EAAoBwN,KAApB,CAAT;IACH,CAFD,CAGA,OAAOqlB,KAAP,EAAc;MACV,KAAK4nC,WAAL,CAAiB5nC,KAAjB,CAAuBA,KAAvB;MACA;IACH;;IACD,KAAK+qC,SAAL,CAAe7iC,MAAf;EACH;;EACD6iC,SAAS,CAAC7iC,MAAD,EAAS;IACd,MAAMqnC,iBAAiB,GAAG,KAAKA,iBAA/B;;IACA,IAAIA,iBAAJ,EAAuB;MACnBA,iBAAiB,CAACthE,WAAlB;IACH;;IACD,MAAMg9D,eAAe,GAAG,IAAIR,kEAAJ,CAA0B,IAA1B,CAAxB;IACA,MAAM7C,WAAW,GAAG,KAAKA,WAAzB;IACAA,WAAW,CAACz3D,GAAZ,CAAgB86D,eAAhB;IACA,KAAKsE,iBAAL,GAAyBvE,+DAAc,CAAC9iC,MAAD,EAAS+iC,eAAT,CAAvC;;IACA,IAAI,KAAKsE,iBAAL,KAA2BtE,eAA/B,EAAgD;MAC5CrD,WAAW,CAACz3D,GAAZ,CAAgB,KAAKo/D,iBAArB;IACH;EACJ;;EACDzJ,SAAS,GAAG;IACR,MAAM;MAAEyJ;IAAF,IAAwB,IAA9B;;IACA,IAAI,CAACA,iBAAD,IAAsBA,iBAAiB,CAACpK,MAA5C,EAAoD;MAChD,MAAMW,SAAN;IACH;;IACD,KAAK73D,WAAL;EACH;;EACDq7D,YAAY,GAAG;IACX,KAAKiG,iBAAL,GAAyB38D,SAAzB;EACH;;EACDmzD,cAAc,GAAG;IACb,KAAKwJ,iBAAL,GAAyB38D,SAAzB;;IACA,IAAI,KAAKu1D,SAAT,EAAoB;MAChB,MAAMrC,SAAN;IACH;EACJ;;EACDH,UAAU,CAAC8B,UAAD,EAAa;IACnB,KAAKG,WAAL,CAAiBrhD,IAAjB,CAAsBkhD,UAAtB;EACH;;AAjDmD;;;;;;;;;;;;;;;;;ACjBxD;AACA;AACA;AACO,SAASqJ,IAAT,CAAcL,KAAd,EAAqB;EACxB,OAAQhK,MAAD,IAAY;IACf,IAAIgK,KAAK,KAAK,CAAd,EAAiB;MACb,OAAOlJ,wDAAK,EAAZ;IACH,CAFD,MAGK;MACD,OAAOd,MAAM,CAACF,IAAP,CAAY,IAAI+M,YAAJ,CAAiB7C,KAAjB,CAAZ,CAAP;IACH;EACJ,CAPD;AAQH;;AACD,MAAM6C,YAAN,CAAmB;EACfzmE,WAAW,CAAC0mE,KAAD,EAAQ;IACf,KAAKA,KAAL,GAAaA,KAAb;;IACA,IAAI,KAAKA,KAAL,GAAa,CAAjB,EAAoB;MAChB,MAAM,IAAIF,kFAAJ,EAAN;IACH;EACJ;;EACDjuD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIklE,cAAJ,CAAmBvO,UAAnB,EAA+B,KAAKsO,KAApC,CAAjB,CAAP;EACH;;AATc;;AAWnB,MAAMC,cAAN,SAA6BlO,mDAA7B,CAAwC;EACpCz4D,WAAW,CAAC+6D,WAAD,EAAc2L,KAAd,EAAqB;IAC5B,MAAM3L,WAAN;IACA,KAAK2L,KAAL,GAAaA,KAAb;IACA,KAAK9C,KAAL,GAAa,CAAb;EACH;;EACD/K,KAAK,CAACv4D,KAAD,EAAQ;IACT,MAAMomE,KAAK,GAAG,KAAKA,KAAnB;IACA,MAAM9C,KAAK,GAAG,EAAE,KAAKA,KAArB;;IACA,IAAIA,KAAK,IAAI8C,KAAb,EAAoB;MAChB,KAAK3L,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;;MACA,IAAIsjE,KAAK,KAAK8C,KAAd,EAAqB;QACjB,KAAK3L,WAAL,CAAiBjB,QAAjB;QACA,KAAK14D,WAAL;MACH;IACJ;EACJ;;AAhBmC;;;;;;;;;;;;;;;;;ACxBxC;AACA;AACA;AACO,SAASijE,QAAT,CAAkBT,KAAlB,EAAyB;EAC5B,OAAO,SAASgD,wBAAT,CAAkChN,MAAlC,EAA0C;IAC7C,IAAIgK,KAAK,KAAK,CAAd,EAAiB;MACb,OAAOlJ,wDAAK,EAAZ;IACH,CAFD,MAGK;MACD,OAAOd,MAAM,CAACF,IAAP,CAAY,IAAImN,gBAAJ,CAAqBjD,KAArB,CAAZ,CAAP;IACH;EACJ,CAPD;AAQH;;AACD,MAAMiD,gBAAN,CAAuB;EACnB7mE,WAAW,CAAC0mE,KAAD,EAAQ;IACf,KAAKA,KAAL,GAAaA,KAAb;;IACA,IAAI,KAAKA,KAAL,GAAa,CAAjB,EAAoB;MAChB,MAAM,IAAIF,kFAAJ,EAAN;IACH;EACJ;;EACDjuD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIqlE,kBAAJ,CAAuB1O,UAAvB,EAAmC,KAAKsO,KAAxC,CAAjB,CAAP;EACH;;AATkB;;AAWvB,MAAMI,kBAAN,SAAiCrO,mDAAjC,CAA4C;EACxCz4D,WAAW,CAAC+6D,WAAD,EAAc2L,KAAd,EAAqB;IAC5B,MAAM3L,WAAN;IACA,KAAK2L,KAAL,GAAaA,KAAb;IACA,KAAKK,IAAL,GAAY,IAAI7rD,KAAJ,EAAZ;IACA,KAAK0oD,KAAL,GAAa,CAAb;EACH;;EACD/K,KAAK,CAACv4D,KAAD,EAAQ;IACT,MAAMymE,IAAI,GAAG,KAAKA,IAAlB;IACA,MAAML,KAAK,GAAG,KAAKA,KAAnB;IACA,MAAM9C,KAAK,GAAG,KAAKA,KAAL,EAAd;;IACA,IAAImD,IAAI,CAACpkE,MAAL,GAAc+jE,KAAlB,EAAyB;MACrBK,IAAI,CAAC5jE,IAAL,CAAU7C,KAAV;IACH,CAFD,MAGK;MACD,MAAMwN,KAAK,GAAG81D,KAAK,GAAG8C,KAAtB;MACAK,IAAI,CAACj5D,KAAD,CAAJ,GAAcxN,KAAd;IACH;EACJ;;EACD24D,SAAS,GAAG;IACR,MAAM8B,WAAW,GAAG,KAAKA,WAAzB;IACA,IAAI6I,KAAK,GAAG,KAAKA,KAAjB;;IACA,IAAIA,KAAK,GAAG,CAAZ,EAAe;MACX,MAAM8C,KAAK,GAAG,KAAK9C,KAAL,IAAc,KAAK8C,KAAnB,GAA2B,KAAKA,KAAhC,GAAwC,KAAK9C,KAA3D;MACA,MAAMmD,IAAI,GAAG,KAAKA,IAAlB;;MACA,KAAK,IAAI9jE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyjE,KAApB,EAA2BzjE,CAAC,EAA5B,EAAgC;QAC5B,MAAM+jE,GAAG,GAAIpD,KAAK,EAAN,GAAY8C,KAAxB;QACA3L,WAAW,CAACrhD,IAAZ,CAAiBqtD,IAAI,CAACC,GAAD,CAArB;MACH;IACJ;;IACDjM,WAAW,CAACjB,QAAZ;EACH;;AA/BuC;;;;;;;;;;;;;;;ACxB5C;AACO,SAASmN,SAAT,CAAmBhkC,SAAnB,EAA8BikC,SAAS,GAAG,KAA1C,EAAiD;EACpD,OAAQtN,MAAD,IAAYA,MAAM,CAACF,IAAP,CAAY,IAAIyN,iBAAJ,CAAsBlkC,SAAtB,EAAiCikC,SAAjC,CAAZ,CAAnB;AACH;;AACD,MAAMC,iBAAN,CAAwB;EACpBnnE,WAAW,CAACijC,SAAD,EAAYikC,SAAZ,EAAuB;IAC9B,KAAKjkC,SAAL,GAAiBA,SAAjB;IACA,KAAKikC,SAAL,GAAiBA,SAAjB;EACH;;EACD3uD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI2lE,mBAAJ,CAAwBhP,UAAxB,EAAoC,KAAKn1B,SAAzC,EAAoD,KAAKikC,SAAzD,CAAjB,CAAP;EACH;;AAPmB;;AASxB,MAAME,mBAAN,SAAkC3O,mDAAlC,CAA6C;EACzCz4D,WAAW,CAAC+6D,WAAD,EAAc93B,SAAd,EAAyBikC,SAAzB,EAAoC;IAC3C,MAAMnM,WAAN;IACA,KAAK93B,SAAL,GAAiBA,SAAjB;IACA,KAAKikC,SAAL,GAAiBA,SAAjB;IACA,KAAKp5D,KAAL,GAAa,CAAb;EACH;;EACD+qD,KAAK,CAACv4D,KAAD,EAAQ;IACT,MAAMy6D,WAAW,GAAG,KAAKA,WAAzB;IACA,IAAI1/B,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,KAAK4H,SAAL,CAAe3iC,KAAf,EAAsB,KAAKwN,KAAL,EAAtB,CAAT;IACH,CAFD,CAGA,OAAOgtC,GAAP,EAAY;MACRigB,WAAW,CAAC5nC,KAAZ,CAAkB2nB,GAAlB;MACA;IACH;;IACD,KAAKusB,cAAL,CAAoB/mE,KAApB,EAA2B+6B,MAA3B;EACH;;EACDgsC,cAAc,CAAC/mE,KAAD,EAAQgnE,eAAR,EAAyB;IACnC,MAAMvM,WAAW,GAAG,KAAKA,WAAzB;;IACA,IAAIwM,OAAO,CAACD,eAAD,CAAX,EAA8B;MAC1BvM,WAAW,CAACrhD,IAAZ,CAAiBpZ,KAAjB;IACH,CAFD,MAGK;MACD,IAAI,KAAK4mE,SAAT,EAAoB;QAChBnM,WAAW,CAACrhD,IAAZ,CAAiBpZ,KAAjB;MACH;;MACDy6D,WAAW,CAACjB,QAAZ;IACH;EACJ;;AA9BwC;;;;;;;;;;;;;;;;;ACb7C;AACA;AACA;AACO,SAAS2N,GAAT,CAAaC,cAAb,EAA6Bv0C,KAA7B,EAAoC2mC,QAApC,EAA8C;EACjD,OAAO,SAAS6N,mBAAT,CAA6B/N,MAA7B,EAAqC;IACxC,OAAOA,MAAM,CAACF,IAAP,CAAY,IAAIkO,UAAJ,CAAeF,cAAf,EAA+Bv0C,KAA/B,EAAsC2mC,QAAtC,CAAZ,CAAP;EACH,CAFD;AAGH;;AACD,MAAM8N,UAAN,CAAiB;EACb5nE,WAAW,CAAC0nE,cAAD,EAAiBv0C,KAAjB,EAAwB2mC,QAAxB,EAAkC;IACzC,KAAK4N,cAAL,GAAsBA,cAAtB;IACA,KAAKv0C,KAAL,GAAaA,KAAb;IACA,KAAK2mC,QAAL,GAAgBA,QAAhB;EACH;;EACDvhD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAIomE,aAAJ,CAAkBzP,UAAlB,EAA8B,KAAKsP,cAAnC,EAAmD,KAAKv0C,KAAxD,EAA+D,KAAK2mC,QAApE,CAAjB,CAAP;EACH;;AARY;;AAUjB,MAAM+N,aAAN,SAA4BpP,mDAA5B,CAAuC;EACnCz4D,WAAW,CAAC+6D,WAAD,EAAclB,cAAd,EAA8B1mC,KAA9B,EAAqC2mC,QAArC,EAA+C;IACtD,MAAMiB,WAAN;IACA,KAAK+M,QAAL,GAAgBN,4CAAhB;IACA,KAAKO,SAAL,GAAiBP,4CAAjB;IACA,KAAKQ,YAAL,GAAoBR,4CAApB;IACA,KAAKO,SAAL,GAAiB50C,KAAK,IAAIq0C,4CAA1B;IACA,KAAKQ,YAAL,GAAoBlO,QAAQ,IAAI0N,4CAAhC;;IACA,IAAI1L,4DAAU,CAACjC,cAAD,CAAd,EAAgC;MAC5B,KAAKwC,QAAL,GAAgB,IAAhB;MACA,KAAKyL,QAAL,GAAgBjO,cAAhB;IACH,CAHD,MAIK,IAAIA,cAAJ,EAAoB;MACrB,KAAKwC,QAAL,GAAgBxC,cAAhB;MACA,KAAKiO,QAAL,GAAgBjO,cAAc,CAACngD,IAAf,IAAuB8tD,4CAAvC;MACA,KAAKO,SAAL,GAAiBlO,cAAc,CAAC1mC,KAAf,IAAwBq0C,4CAAzC;MACA,KAAKQ,YAAL,GAAoBnO,cAAc,CAACC,QAAf,IAA2B0N,4CAA/C;IACH;EACJ;;EACD3O,KAAK,CAACv4D,KAAD,EAAQ;IACT,IAAI;MACA,KAAKwnE,QAAL,CAAcvvD,IAAd,CAAmB,KAAK8jD,QAAxB,EAAkC/7D,KAAlC;IACH,CAFD,CAGA,OAAOw6C,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,KAAKigB,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;EACH;;EACDy4D,MAAM,CAACje,GAAD,EAAM;IACR,IAAI;MACA,KAAKitB,SAAL,CAAexvD,IAAf,CAAoB,KAAK8jD,QAAzB,EAAmCvhB,GAAnC;IACH,CAFD,CAGA,OAAOA,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;EACH;;EACDme,SAAS,GAAG;IACR,IAAI;MACA,KAAK+O,YAAL,CAAkBzvD,IAAlB,CAAuB,KAAK8jD,QAA5B;IACH,CAFD,CAGA,OAAOvhB,GAAP,EAAY;MACR,KAAKigB,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;MACA;IACH;;IACD,OAAO,KAAKigB,WAAL,CAAiBjB,QAAjB,EAAP;EACH;;AAhDkC;;;;;;;;;;;;;;;;AClBvC;AACA;AACO,SAASoK,YAAT,CAAsB+D,YAAY,GAAGC,mBAArC,EAA0D;EAC7D,OAAQtO,MAAD,IAAY;IACf,OAAOA,MAAM,CAACF,IAAP,CAAY,IAAIyO,oBAAJ,CAAyBF,YAAzB,CAAZ,CAAP;EACH,CAFD;AAGH;;AACD,MAAME,oBAAN,CAA2B;EACvBnoE,WAAW,CAACioE,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;EACH;;EACD1vD,IAAI,CAAC6/C,UAAD,EAAawB,MAAb,EAAqB;IACrB,OAAOA,MAAM,CAACn4D,SAAP,CAAiB,IAAI2mE,sBAAJ,CAA2BhQ,UAA3B,EAAuC,KAAK6P,YAA5C,CAAjB,CAAP;EACH;;AANsB;;AAQ3B,MAAMG,sBAAN,SAAqC3P,mDAArC,CAAgD;EAC5Cz4D,WAAW,CAAC+6D,WAAD,EAAckN,YAAd,EAA4B;IACnC,MAAMlN,WAAN;IACA,KAAKkN,YAAL,GAAoBA,YAApB;IACA,KAAKxlE,QAAL,GAAgB,KAAhB;EACH;;EACDo2D,KAAK,CAACv4D,KAAD,EAAQ;IACT,KAAKmC,QAAL,GAAgB,IAAhB;IACA,KAAKs4D,WAAL,CAAiBrhD,IAAjB,CAAsBpZ,KAAtB;EACH;;EACD24D,SAAS,GAAG;IACR,IAAI,CAAC,KAAKx2D,QAAV,EAAoB;MAChB,IAAIq4C,GAAJ;;MACA,IAAI;QACAA,GAAG,GAAG,KAAKmtB,YAAL,EAAN;MACH,CAFD,CAGA,OAAO5kD,CAAP,EAAU;QACNy3B,GAAG,GAAGz3B,CAAN;MACH;;MACD,KAAK03C,WAAL,CAAiB5nC,KAAjB,CAAuB2nB,GAAvB;IACH,CATD,MAUK;MACD,OAAO,KAAKigB,WAAL,CAAiBjB,QAAjB,EAAP;IACH;EACJ;;AAxB2C;;AA0BhD,SAASoO,mBAAT,GAA+B;EAC3B,OAAO,IAAIlE,wDAAJ,EAAP;AACH;;;;;;;;;;;;;;;;AC3CD;AACA;AACO,SAAS5C,aAAT,CAAuB5+D,KAAvB,EAA8Bw9D,SAA9B,EAAyC;EAC5C,OAAO,IAAIxG,mDAAJ,CAAepB,UAAU,IAAI;IAChC,MAAM4E,GAAG,GAAG,IAAIhC,uDAAJ,EAAZ;IACA,IAAI/3D,CAAC,GAAG,CAAR;IACA+5D,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,YAAY;MACnC,IAAInzC,CAAC,KAAKT,KAAK,CAACG,MAAhB,EAAwB;QACpBy1D,UAAU,CAAC0B,QAAX;QACA;MACH;;MACD1B,UAAU,CAAC1+C,IAAX,CAAgBlX,KAAK,CAACS,CAAC,EAAF,CAArB;;MACA,IAAI,CAACm1D,UAAU,CAACE,MAAhB,EAAwB;QACpB0E,GAAG,CAAC15D,GAAJ,CAAQ,KAAK8yC,QAAL,EAAR;MACH;IACJ,CATO,CAAR;IAUA,OAAO4mB,GAAP;EACH,CAdM,CAAP;AAeH;;;;;;;;;;;;;;;;;AClBD;AACA;AACA;AACO,SAASuL,gBAAT,CAA0B/lE,KAA1B,EAAiCw9D,SAAjC,EAA4C;EAC/C,IAAI,CAACx9D,KAAL,EAAY;IACR,MAAM,IAAIob,KAAJ,CAAU,yBAAV,CAAN;EACH;;EACD,OAAO,IAAI47C,mDAAJ,CAAepB,UAAU,IAAI;IAChC,MAAM4E,GAAG,GAAG,IAAIhC,uDAAJ,EAAZ;IACA,IAAIqN,QAAJ;IACArL,GAAG,CAAC15D,GAAJ,CAAQ,MAAM;MACV,IAAI+kE,QAAQ,IAAI,OAAOA,QAAQ,CAACG,MAAhB,KAA2B,UAA3C,EAAuD;QACnDH,QAAQ,CAACG,MAAT;MACH;IACJ,CAJD;IAKAxL,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAM;MAC7BiyB,QAAQ,GAAG7lE,KAAK,CAAC8lE,sDAAD,CAAL,EAAX;MACAtL,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,YAAY;QACnC,IAAIgiB,UAAU,CAACE,MAAf,EAAuB;UACnB;QACH;;QACD,IAAIh4D,KAAJ;QACA,IAAImoE,IAAJ;;QACA,IAAI;UACA,MAAMptC,MAAM,GAAGgtC,QAAQ,CAAC3uD,IAAT,EAAf;UACApZ,KAAK,GAAG+6B,MAAM,CAAC/6B,KAAf;UACAmoE,IAAI,GAAGptC,MAAM,CAACotC,IAAd;QACH,CAJD,CAKA,OAAO3tB,GAAP,EAAY;UACRsd,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB;UACA;QACH;;QACD,IAAI2tB,IAAJ,EAAU;UACNrQ,UAAU,CAAC0B,QAAX;QACH,CAFD,MAGK;UACD1B,UAAU,CAAC1+C,IAAX,CAAgBpZ,KAAhB;UACA,KAAK81C,QAAL;QACH;MACJ,CAtBO,CAAR;IAuBH,CAzBO,CAAR;IA0BA,OAAO4mB,GAAP;EACH,CAnCM,CAAP;AAoCH;;;;;;;;;;;;;;;;;AC3CD;AACA;AACA;AACO,SAAS0L,kBAAT,CAA4BlmE,KAA5B,EAAmCw9D,SAAnC,EAA8C;EACjD,OAAO,IAAIxG,mDAAJ,CAAepB,UAAU,IAAI;IAChC,MAAM4E,GAAG,GAAG,IAAIhC,uDAAJ,EAAZ;IACAgC,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAM;MAC7B,MAAMijB,UAAU,GAAG72D,KAAK,CAAC82D,0DAAD,CAAL,EAAnB;MACA0D,GAAG,CAAC15D,GAAJ,CAAQ+1D,UAAU,CAAC53D,SAAX,CAAqB;QACzBiY,IAAI,CAACpZ,KAAD,EAAQ;UAAE08D,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAAC1+C,IAAX,CAAgBpZ,KAAhB,CAAzB,CAAR;QAA4D,CADjD;;QAEzB6yB,KAAK,CAAC2nB,GAAD,EAAM;UAAEkiB,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB,CAAzB,CAAR;QAA2D,CAF/C;;QAGzBgf,QAAQ,GAAG;UAAEkD,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAAC0B,QAAX,EAAzB,CAAR;QAA2D;;MAH/C,CAArB,CAAR;IAKH,CAPO,CAAR;IAQA,OAAOkD,GAAP;EACH,CAXM,CAAP;AAYH;;;;;;;;;;;;;;;;AChBD;AACA;AACO,SAAS2L,eAAT,CAAyBnmE,KAAzB,EAAgCw9D,SAAhC,EAA2C;EAC9C,OAAO,IAAIxG,mDAAJ,CAAepB,UAAU,IAAI;IAChC,MAAM4E,GAAG,GAAG,IAAIhC,uDAAJ,EAAZ;IACAgC,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAM5zC,KAAK,CAAC+Q,IAAN,CAAWjT,KAAK,IAAI;MACjD08D,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAM;QAC7BgiB,UAAU,CAAC1+C,IAAX,CAAgBpZ,KAAhB;QACA08D,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAAC0B,QAAX,EAAzB,CAAR;MACH,CAHO,CAAR;IAIH,CALgC,EAK9Bhf,GAAG,IAAI;MACNkiB,GAAG,CAAC15D,GAAJ,CAAQ08D,SAAS,CAAC5pB,QAAV,CAAmB,MAAMgiB,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB,CAAzB,CAAR;IACH,CAPgC,CAAzB,CAAR;IAQA,OAAOkiB,GAAP;EACH,CAXM,CAAP;AAYH;;;;;;;;;;;;;;;;;;;;;;ACfD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkE,SAAT,CAAmB1+D,KAAnB,EAA0Bw9D,SAA1B,EAAqC;EACxC,IAAIx9D,KAAK,IAAI,IAAb,EAAmB;IACf,IAAIomE,8EAAmB,CAACpmE,KAAD,CAAvB,EAAgC;MAC5B,OAAOkmE,uEAAkB,CAAClmE,KAAD,EAAQw9D,SAAR,CAAzB;IACH,CAFD,MAGK,IAAI6I,0DAAS,CAACrmE,KAAD,CAAb,EAAsB;MACvB,OAAOmmE,iEAAe,CAACnmE,KAAD,EAAQw9D,SAAR,CAAtB;IACH,CAFI,MAGA,IAAI8I,8DAAW,CAACtmE,KAAD,CAAf,EAAwB;MACzB,OAAO4+D,6DAAa,CAAC5+D,KAAD,EAAQw9D,SAAR,CAApB;IACH,CAFI,MAGA,IAAI+I,4DAAU,CAACvmE,KAAD,CAAV,IAAqB,OAAOA,KAAP,KAAiB,QAA1C,EAAoD;MACrD,OAAO+lE,mEAAgB,CAAC/lE,KAAD,EAAQw9D,SAAR,CAAvB;IACH;EACJ;;EACD,MAAM,IAAI6B,SAAJ,CAAc,CAACr/D,KAAK,KAAK,IAAV,IAAkB,OAAOA,KAAzB,IAAkCA,KAAnC,IAA4C,oBAA1D,CAAN;AACH;;;;;;;;;;;;;;;;ACxBM,SAASwmE,iBAAT,GAA6B;EAChC,IAAI,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,CAACA,MAAM,CAACZ,QAA5C,EAAsD;IAClD,OAAO,YAAP;EACH;;EACD,OAAOY,MAAM,CAACZ,QAAd;AACH;AACM,MAAMA,QAAQ,GAAGW,iBAAiB,EAAlC;AACA,MAAME,UAAU,GAAGb,QAAnB;;;;;;;;;;;;;;ACPA,MAAMhP,UAAU,GAAG,CAAC,MAAM,OAAO4P,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAAC5P,UAAvC,IAAqD,cAA5D,GAAnB;;;;;;;;;;;;;;;ACAA,MAAM6B,YAAY,GAAG,CAAC,MAAM,OAAO+N,MAAP,KAAkB,UAAlB,GAC7BA,MAAM,CAAC,cAAD,CADuB,GAE7B,oBAAoBh0C,IAAI,CAACk0C,MAAL,EAFE,GAArB;AAGA,MAAMC,cAAc,GAAGlO,YAAvB;;;;;;;;;;;;;;ACHP,MAAMmO,2BAA2B,GAAG,CAAC,MAAM;EACvC,SAASA,2BAAT,GAAuC;IACnCzrD,KAAK,CAACrF,IAAN,CAAW,IAAX;IACA,KAAKimB,OAAL,GAAe,uBAAf;IACA,KAAK3iB,IAAL,GAAY,yBAAZ;IACA,OAAO,IAAP;EACH;;EACDwtD,2BAA2B,CAACzkE,SAA5B,GAAwCC,MAAM,CAACoH,MAAP,CAAc2R,KAAK,CAAChZ,SAApB,CAAxC;EACA,OAAOykE,2BAAP;AACH,CATmC,GAApC;;AAUO,MAAM7C,uBAAuB,GAAG6C,2BAAhC;;;;;;;;;;;;;;ACVP,MAAMC,cAAc,GAAG,CAAC,MAAM;EAC1B,SAASA,cAAT,GAA0B;IACtB1rD,KAAK,CAACrF,IAAN,CAAW,IAAX;IACA,KAAKimB,OAAL,GAAe,yBAAf;IACA,KAAK3iB,IAAL,GAAY,YAAZ;IACA,OAAO,IAAP;EACH;;EACDytD,cAAc,CAAC1kE,SAAf,GAA2BC,MAAM,CAACoH,MAAP,CAAc2R,KAAK,CAAChZ,SAApB,CAA3B;EACA,OAAO0kE,cAAP;AACH,CATsB,GAAvB;;AAUO,MAAMtF,UAAU,GAAGsF,cAAnB;;;;;;;;;;;;;;ACVP,MAAMC,2BAA2B,GAAG,CAAC,MAAM;EACvC,SAASA,2BAAT,GAAuC;IACnC3rD,KAAK,CAACrF,IAAN,CAAW,IAAX;IACA,KAAKimB,OAAL,GAAe,qBAAf;IACA,KAAK3iB,IAAL,GAAY,yBAAZ;IACA,OAAO,IAAP;EACH;;EACD0tD,2BAA2B,CAAC3kE,SAA5B,GAAwCC,MAAM,CAACoH,MAAP,CAAc2R,KAAK,CAAChZ,SAApB,CAAxC;EACA,OAAO2kE,2BAAP;AACH,CATmC,GAApC;;AAUO,MAAMtR,uBAAuB,GAAGsR,2BAAhC;;;;;;;;;;;;;;ACVP,MAAMC,uBAAuB,GAAG,CAAC,MAAM;EACnC,SAASA,uBAAT,CAAiC1M,MAAjC,EAAyC;IACrCl/C,KAAK,CAACrF,IAAN,CAAW,IAAX;IACA,KAAKimB,OAAL,GAAes+B,MAAM,GAChB,GAAEA,MAAM,CAACn6D,MAAO;AAC7B,EAAEm6D,MAAM,CAACpuD,GAAP,CAAW,CAACosC,GAAD,EAAM73C,CAAN,KAAa,GAAEA,CAAC,GAAG,CAAE,KAAI63C,GAAG,CAACp4C,QAAJ,EAAe,EAAnD,EAAsDspB,IAAtD,CAA2D,MAA3D,CAAmE,EAFxC,GAE4C,EAFjE;IAGA,KAAKnQ,IAAL,GAAY,qBAAZ;IACA,KAAKihD,MAAL,GAAcA,MAAd;IACA,OAAO,IAAP;EACH;;EACD0M,uBAAuB,CAAC5kE,SAAxB,GAAoCC,MAAM,CAACoH,MAAP,CAAc2R,KAAK,CAAChZ,SAApB,CAApC;EACA,OAAO4kE,uBAAP;AACH,CAZ+B,GAAhC;;AAaO,MAAM7M,mBAAmB,GAAG6M,uBAA5B;;;;;;;;;;;;;;;ACbP;AACO,SAASrQ,cAAT,CAAwB2L,QAAxB,EAAkC;EACrC,OAAOA,QAAP,EAAiB;IACb,MAAM;MAAExM,MAAF;MAAUyC,WAAV;MAAuBO;IAAvB,IAAqCwJ,QAA3C;;IACA,IAAIxM,MAAM,IAAIgD,SAAd,EAAyB;MACrB,OAAO,KAAP;IACH,CAFD,MAGK,IAAIP,WAAW,IAAIA,WAAW,YAAYtC,mDAA1C,EAAsD;MACvDqM,QAAQ,GAAG/J,WAAX;IACH,CAFI,MAGA;MACD+J,QAAQ,GAAG,IAAX;IACH;EACJ;;EACD,OAAO,IAAP;AACH;;;;;;;;;;;;;;ACfM,SAASrK,eAAT,CAAyB3f,GAAzB,EAA8B;EACjCn7C,UAAU,CAAC,MAAM;IAAE,MAAMm7C,GAAN;EAAY,CAArB,EAAuB,CAAvB,CAAV;AACH;;;;;;;;;;;;;;ACFM,SAASqpB,QAAT,CAAkBplC,CAAlB,EAAqB;EACxB,OAAOA,CAAP;AACH;;;;;;;;;;;;;;ACFM,MAAM5jB,OAAO,GAAG,CAAC,MAAMD,KAAK,CAACC,OAAN,KAAmB4jB,CAAD,IAAOA,CAAC,IAAI,OAAOA,CAAC,CAACp8B,MAAT,KAAoB,QAAlD,CAAP,GAAhB;;;;;;;;;;;;;;ACAA,MAAMmmE,WAAW,GAAK/pC,CAAD,IAAOA,CAAC,IAAI,OAAOA,CAAC,CAACp8B,MAAT,KAAoB,QAAzB,IAAqC,OAAOo8B,CAAP,KAAa,UAA9E;;;;;;;;;;;;;;ACAA,SAAS+8B,UAAT,CAAoB/8B,CAApB,EAAuB;EAC1B,OAAO,OAAOA,CAAP,KAAa,UAApB;AACH;;;;;;;;;;;;;;;ACFD;AACO,SAAS6pC,mBAAT,CAA6BpmE,KAA7B,EAAoC;EACvC,OAAOA,KAAK,IAAI,OAAOA,KAAK,CAAC82D,0DAAD,CAAZ,KAAoC,UAApD;AACH;;;;;;;;;;;;;;;ACHD;AACO,SAASyP,UAAT,CAAoBvmE,KAApB,EAA2B;EAC9B,OAAOA,KAAK,IAAI,OAAOA,KAAK,CAAC8lE,sDAAD,CAAZ,KAAkC,UAAlD;AACH;;;;;;;;;;;;;;ACHM,SAAS5L,QAAT,CAAkB39B,CAAlB,EAAqB;EACxB,OAAOA,CAAC,KAAK,IAAN,IAAc,OAAOA,CAAP,KAAa,QAAlC;AACH;;;;;;;;;;;;;;ACFM,SAAS8pC,SAAT,CAAmBvoE,KAAnB,EAA0B;EAC7B,OAAO,CAAC,CAACA,KAAF,IAAW,OAAOA,KAAK,CAACmB,SAAb,KAA2B,UAAtC,IAAoD,OAAOnB,KAAK,CAACiT,IAAb,KAAsB,UAAjF;AACH;;;;;;;;;;;;;;ACFM,SAASksD,WAAT,CAAqBn/D,KAArB,EAA4B;EAC/B,OAAOA,KAAK,IAAI,OAAOA,KAAK,CAAC81C,QAAb,KAA0B,UAA1C;AACH;;;;;;;;;;;;;;ACFM,SAASoxB,IAAT,GAAgB,CAAG;;;;;;;;;;;;;;;;ACA1B;AACO,SAAS/nD,IAAT,CAAc,GAAGgqD,GAAjB,EAAsB;EACzB,OAAOlQ,aAAa,CAACkQ,GAAD,CAApB;AACH;AACM,SAASlQ,aAAT,CAAuBkQ,GAAvB,EAA4B;EAC/B,IAAIA,GAAG,CAAC9mE,MAAJ,KAAe,CAAnB,EAAsB;IAClB,OAAOwhE,+CAAP;EACH;;EACD,IAAIsF,GAAG,CAAC9mE,MAAJ,KAAe,CAAnB,EAAsB;IAClB,OAAO8mE,GAAG,CAAC,CAAD,CAAV;EACH;;EACD,OAAO,SAASC,KAAT,CAAelnE,KAAf,EAAsB;IACzB,OAAOinE,GAAG,CAACnM,MAAJ,CAAW,CAACqM,IAAD,EAAO9oE,EAAP,KAAcA,EAAE,CAAC8oE,IAAD,CAA3B,EAAmCnnE,KAAnC,CAAP;EACH,CAFD;AAGH;;;;;;;;;;;;;;;;;;;;;;;ACdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMm7D,WAAW,GAAItiC,MAAD,IAAY;EACnC,IAAI,CAAC,CAACA,MAAF,IAAY,OAAOA,MAAM,CAACi+B,0DAAD,CAAb,KAAqC,UAArD,EAAiE;IAC7D,OAAOwQ,6EAAqB,CAACzuC,MAAD,CAA5B;EACH,CAFD,MAGK,IAAIytC,yDAAW,CAACztC,MAAD,CAAf,EAAyB;IAC1B,OAAO8lC,mEAAgB,CAAC9lC,MAAD,CAAvB;EACH,CAFI,MAGA,IAAIwtC,qDAAS,CAACxtC,MAAD,CAAb,EAAuB;IACxB,OAAOuuC,uEAAkB,CAACvuC,MAAD,CAAzB;EACH,CAFI,MAGA,IAAI,CAAC,CAACA,MAAF,IAAY,OAAOA,MAAM,CAACitC,sDAAD,CAAb,KAAmC,UAAnD,EAA+D;IAChE,OAAOuB,yEAAmB,CAACxuC,MAAD,CAA1B;EACH,CAFI,MAGA;IACD,MAAM/6B,KAAK,GAAGo8D,mDAAQ,CAACrhC,MAAD,CAAR,GAAmB,mBAAnB,GAA0C,IAAGA,MAAO,GAAlE;IACA,MAAM0uC,GAAG,GAAI,gBAAezpE,KAAM,+BAAtB,GACN,8DADN;IAEA,MAAM,IAAIuhE,SAAJ,CAAckI,GAAd,CAAN;EACH;AACJ,CAnBM;;;;;;;;;;;;;;ACTA,MAAM5I,gBAAgB,GAAIkF,KAAD,IAAYjO,UAAD,IAAgB;EACvD,KAAK,IAAIn1D,CAAC,GAAG,CAAR,EAAWw4D,GAAG,GAAG4K,KAAK,CAAC1jE,MAA5B,EAAoCM,CAAC,GAAGw4D,GAAJ,IAAW,CAACrD,UAAU,CAACE,MAA3D,EAAmEr1D,CAAC,EAApE,EAAwE;IACpEm1D,UAAU,CAAC1+C,IAAX,CAAgB2sD,KAAK,CAACpjE,CAAD,CAArB;EACH;;EACDm1D,UAAU,CAAC0B,QAAX;AACH,CALM;;;;;;;;;;;;;;;ACAP;AACO,MAAM+P,mBAAmB,GAAIG,QAAD,IAAe5R,UAAD,IAAgB;EAC7D,MAAMiQ,QAAQ,GAAG2B,QAAQ,CAAC1B,sDAAD,CAAR,EAAjB;;EACA,GAAG;IACC,IAAIzoE,IAAJ;;IACA,IAAI;MACAA,IAAI,GAAGwoE,QAAQ,CAAC3uD,IAAT,EAAP;IACH,CAFD,CAGA,OAAOohC,GAAP,EAAY;MACRsd,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB;MACA,OAAOsd,UAAP;IACH;;IACD,IAAIv4D,IAAI,CAAC4oE,IAAT,EAAe;MACXrQ,UAAU,CAAC0B,QAAX;MACA;IACH;;IACD1B,UAAU,CAAC1+C,IAAX,CAAgB7Z,IAAI,CAACS,KAArB;;IACA,IAAI83D,UAAU,CAACE,MAAf,EAAuB;MACnB;IACH;EACJ,CAjBD,QAiBS,IAjBT;;EAkBA,IAAI,OAAO+P,QAAQ,CAACG,MAAhB,KAA2B,UAA/B,EAA2C;IACvCpQ,UAAU,CAAC90D,GAAX,CAAe,MAAM;MACjB,IAAI+kE,QAAQ,CAACG,MAAb,EAAqB;QACjBH,QAAQ,CAACG,MAAT;MACH;IACJ,CAJD;EAKH;;EACD,OAAOpQ,UAAP;AACH,CA5BM;;;;;;;;;;;;;;;ACDP;AACO,MAAM0R,qBAAqB,GAAIG,GAAD,IAAU7R,UAAD,IAAgB;EAC1D,MAAM8R,GAAG,GAAGD,GAAG,CAAC3Q,0DAAD,CAAH,EAAZ;;EACA,IAAI,OAAO4Q,GAAG,CAACzoE,SAAX,KAAyB,UAA7B,EAAyC;IACrC,MAAM,IAAIogE,SAAJ,CAAc,gEAAd,CAAN;EACH,CAFD,MAGK;IACD,OAAOqI,GAAG,CAACzoE,SAAJ,CAAc22D,UAAd,CAAP;EACH;AACJ,CARM;;;;;;;;;;;;;;;ACDP;AACO,MAAMwR,kBAAkB,GAAIt0D,OAAD,IAAc8iD,UAAD,IAAgB;EAC3D9iD,OAAO,CAAC/B,IAAR,CAAcjT,KAAD,IAAW;IACpB,IAAI,CAAC83D,UAAU,CAACE,MAAhB,EAAwB;MACpBF,UAAU,CAAC1+C,IAAX,CAAgBpZ,KAAhB;MACA83D,UAAU,CAAC0B,QAAX;IACH;EACJ,CALD,EAKIhf,GAAD,IAASsd,UAAU,CAACjlC,KAAX,CAAiB2nB,GAAjB,CALZ,EAMKvnC,IANL,CAMU,IANV,EAMgBknD,6DANhB;EAOA,OAAOrC,UAAP;AACH,CATM;;;;;;;;;;;;;;;;;ACDP;AACA;AACA;AACO,SAASsH,iBAAT,CAA2ByK,eAA3B,EAA4C9uC,MAA5C,EAAoDs9B,UAApD,EAAgEC,UAAhE,EAA4EwF,eAAe,GAAG,IAAI1F,6DAAJ,CAAoByR,eAApB,EAAqCxR,UAArC,EAAiDC,UAAjD,CAA9F,EAA4J;EAC/J,IAAIwF,eAAe,CAAC9F,MAApB,EAA4B;IACxB,OAAOvyD,SAAP;EACH;;EACD,IAAIs1B,MAAM,YAAYm+B,mDAAtB,EAAkC;IAC9B,OAAOn+B,MAAM,CAAC55B,SAAP,CAAiB28D,eAAjB,CAAP;EACH;;EACD,OAAOT,yDAAW,CAACtiC,MAAD,CAAX,CAAoB+iC,eAApB,CAAP;AACH;;;;;;;;;;;;;;;;;ACXD;AACA;AACA;AACO,SAAShF,YAAT,CAAsBsO,cAAtB,EAAsCv0C,KAAtC,EAA6C2mC,QAA7C,EAAuD;EAC1D,IAAI4N,cAAJ,EAAoB;IAChB,IAAIA,cAAc,YAAYjP,mDAA9B,EAA0C;MACtC,OAAOiP,cAAP;IACH;;IACD,IAAIA,cAAc,CAACvM,8DAAD,CAAlB,EAAwC;MACpC,OAAOuM,cAAc,CAACvM,8DAAD,CAAd,EAAP;IACH;EACJ;;EACD,IAAI,CAACuM,cAAD,IAAmB,CAACv0C,KAApB,IAA6B,CAAC2mC,QAAlC,EAA4C;IACxC,OAAO,IAAIrB,mDAAJ,CAAesD,4CAAf,CAAP;EACH;;EACD,OAAO,IAAItD,mDAAJ,CAAeiP,cAAf,EAA+Bv0C,KAA/B,EAAsC2mC,QAAtC,CAAP;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;A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MulF,WAAW,GAAG,OAAOC,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;EACjB1lF,WAAW,CAAC+jB,SAAD,EAAY4hE,OAAZ,EAAqB73E,KAArB,EAA4B81D,KAA5B,EAAmC;IAC1C,KAAK7/C,SAAL,GAAiBA,SAAjB;IACA,KAAK4hE,OAAL,GAAeA,OAAf;IACA,KAAK73E,KAAL,GAAaA,KAAb;IACA,KAAK81D,KAAL,GAAaA,KAAb;EACH;;EACQ,IAAL9C,KAAK,GAAG;IACR,OAAO,KAAKhzD,KAAL,KAAe,CAAtB;EACH;;EACO,IAAJo0D,IAAI,GAAG;IACP,OAAO,KAAKp0D,KAAL,KAAe,KAAK81D,KAAL,GAAa,CAAnC;EACH;;EACO,IAAJgiB,IAAI,GAAG;IACP,OAAO,KAAK93E,KAAL,GAAa,CAAb,KAAmB,CAA1B;EACH;;EACM,IAAH+3E,GAAG,GAAG;IACN,OAAO,CAAC,KAAKD,IAAb;EACH;;AAlBgB;AAoBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,OAAN,CAAc;EACV9lF,WAAW,CAAC+lF,cAAD,EAAiBC,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKF,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GA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AAC;MAAEloD,IAAI,EAAEhH,2DAAmBskB;IAA3B,CAAD,EAAgC;MAAEtd,IAAI,EAAEhH,sDAAciB;IAAtB,CAAhC,EAA0D;MAAE+F,IAAI,EAAEhH,0DAAkB+oB;IAA1B,CAA1D,CAAP;EAAiG,CAN3I,EAM6J;IAAEuhE,OAAO,EAAE,CAAC;MACzJtjF,IAAI,EAAEnG,gDAAKA;IAD8I,CAAD,CAAX;IAE7ImqF,YAAY,EAAE,CAAC;MACfhkF,IAAI,EAAEnG,gDAAKA;IADI,CAAD,CAF+H;IAI7IqqF,aAAa,EAAE,CAAC;MAChBlkF,IAAI,EAAEnG,gDAAKA;IADK,CAAD;EAJ8H,CAN7J;AAAA;;AAaA,SAAS8qF,eAAT,CAAyBz3E,IAAzB,EAA+Bu0E,MAA/B,EAAuC;EACnCv0E,IAAI,CAACgO,OAAL,CAAawG,SAAb,GAAyB+/D,MAAM,CAACjkF,IAAhC;AACH;;AACD,SAAS4mF,WAAT,CAAqBpkF,IAArB,EAA2B;EACvB,OAAOA,IAAI,CAAC,MAAD,CAAJ,IAAgB,OAAOA,IAA9B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkxF,QAAN,CAAe;EACX9sF,WAAW,CAACswE,MAAD,EAASyc,eAAT,EAA0B;IACjC,KAAKzc,MAAL,GAAcA,MAAd;IACA,KAAKyc,eAAL,GAAuBA,eAAvB;EACH;;EACDn+B,SAAS,CAACtuD,KAAD,EAAQk0E,MAAM,GAAG,YAAjB,EAA+Ba,QAA/B,EAAyC/E,MAAzC,EAAiD;IACtD,IAAI9uE,EAAJ;;IACA,IAAIlB,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,EAA3B,IAAiCA,KAAK,KAAKA,KAA/C,EACI,OAAO,IAAP;;IACJ,IAAI;MACA,OAAO80E,UAAU,CAAC90E,KAAD,EAAQk0E,MAAR,EAAgBlE,MAAM,IAAI,KAAKA,MAA/B,EAAuC,CAAC9uE,EAAE,GAAG6zE,QAAQ,KAAK,IAAb,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,KAAnC,EAA0C;EACtC,MAAM4D,gBAAgB,GAAG7D,mBAAmB,CAACC,KAAD,CAA5C;EACAjzE,OAAO,CAACC,IAAR,CAAa6sD,qEAAmB,CAAC;EAAK;EAAN,EAAwD,GAAE+pB,gBAAiB,oDAApB,GAClF,qEADkF,GAElF,iDAFkF,GAGlF,4CAH2B,CAAhC;AAIH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,8BAA8B,GAAG,EAAvC;AACA;AACA;AACA;AACA;;AACA,MAAMC,6BAA6B,GAAG,2BAAtC;AACA;AACA;AACA;AACA;;AACA,MAAMC,+BAA+B,GAAG,mCAAxC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,2BAA2B,GAAG,CAApC;AACA;AACA;AACA;AACA;;AACA,MAAMC,8BAA8B,GAAG,CAAvC;AACA;AACA;AACA;;AACA,MAAMC,sBAAsB,GAAG,EAA/B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAN,CAAuB;EACnB/1F,WAAW,GAAG;IACV,KAAKg2F,WAAL,GAAmB3rB,qDAAM,CAACmpB,YAAD,CAAzB;IACA,KAAKy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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqN,SAAN,CAAgB;EACZvwI,WAAW,GAAG;IACV,KAAKwwI,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,WAAW,CAACpqG,OAAD,EAAUviC,QAAV,EAAoB4sI,YAAY,GAAG,EAAnC,EAAuC;IAC9C,MAAMC,gBAAgB,GAAGC,uBAAuB,CAACvqG,OAAD,CAAhD;IACAA,OAAO,GAAGwqG,aAAa,CAACxqG,OAAD,CAAvB;IACAA,OAAO,GAAG,KAAKyqG,iBAAL,CAAuBzqG,OAAvB,CAAV;;IACA,MAAM0qG,aAAa,GAAG,KAAKC,aAAL,CAAmB3qG,OAAnB,EAA4BviC,QAA5B,EAAsC4sI,YAAtC,CAAtB;;IACA,OAAO,CAACK,aAAD,EAAgB,GAAGJ,gBAAnB,EAAqC3kH,IAArC,CAA0C,IAA1C,CAAP;EACH;;EACD8kH,iBAAiB,CAACzqG,OAAD,EAAU;IACvBA,OAAO,GAAG,KAAK4qG,kCAAL,CAAwC5qG,OAAxC,CAAV;IACA,OAAO,KAAK6qG,6BAAL,CAAmC7qG,OAAnC,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI4qG,kCAAkC,CAAC5qG,OAAD,EAAU;IACxC;IACA,OAAOA,OAAO,CAACltB,OAAR,CAAgBg4H,yBAAhB,EAA2C,UAAU,GAAG7wG,CAAb,EAAgB;MAC9D,OAAOA,CAAC,CAAC,CAAD,CAAD,GAAO,GAAd;IACH,CAFM,CAAP;EAGH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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CAHM,EAIFj2D,WAJE,EAAP;AAKH;;AAED,MAAMguH,cAAc,GAAG,YAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kCAAkC,GAAG,CAA3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;EACjB34I,WAAW,CAAC44I,cAAD,EAAiB;IACxB,KAAKA,cAAL,GAAsBA,cAAtB;IACA;;IACA,KAAKC,iBAAL,GAAyB,KAAzB;IACA;AACR;AACA;AACA;;IACQ,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,kBAAL,GAA0B,IAA1B,CAnBwB,CAoBxB;IACA;;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKC,YAAL,GAAoB,IAAIr7H,GAAJ,EAApB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKs7H,aAAL,GAAqB,IAAIt7H,GAAJ,EAArB;IACA,KAAKu7H,mBAAL,GAA2B,EAA3B;IACA,KAAKC,mBAAL,GAA2B,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIC,kBAAkB,CAACl3I,KAAD,EAAQ;IACtB;IACA;IACA;IACA;IACA;IACA;IACA,IAAIm3I,OAAO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mc,IAAtD,CAAR;;IACA,IAAI;MACAA,IAAI,CAACn5L,IAAL,CAAUg9K,SAAV;IACH,CAFD,SAGQ;MACJmU,QAAQ,CAAC;MAAE;MAAH,EAAyCnU,SAAzC,EAAoDmc,IAApD,CAAR;IACH;EACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,kBAAkB,GAAG,CAAC,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAN,CAA0B;EACtB/xM,WAAW;EACX;AACJ;AACA;EACI2N,OAJW;EAKX;AACJ;AACA;EACIqkM,cARW,EAQKC,oBARL,EAQ2B;IAClC,KAAKtkM,OAAL,GAAeA,OAAf;IACA;AACR;AACA;AACA;;IACQ,KAAKukM,SAAL,GAAiB,KAAjB;IACAzsH,SAAS,IAAI+3G,aAAa,CAAC7vL,OAAD,EAAU,uBAAV,CAA1B;IACA83E,SAAS,IAAIu3G,WAAW,CAAC,OAAOrvL,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;IACA,KAAKwkM,mBAAL,GAA2BH,cAA3B;IACA,KAAKI,UAAL,GAAkBH,oBAAlB;EACH;;AApBqB;;AAsB1B,SAASI,SAAT,CAAmBpoI,GAAnB,EAAwB;EACpB,OAAOA,GAAG,YAAY8nI,mBAAtB;AACH,EACD;AACA;;;AACA,MAAMO,+BAA+B,G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QAApB,GAA+B,IAA/B,GAAsCiK,SAAlE,EAA6E++B,KAA7E,CAAP;EACH;AACJ;;AACD,SAASslC,QAAT,CAAkBtqD,KAAlB,EAAyBglB,KAAK,GAAG+5J,WAAW,CAACvgB,OAA7C,EAAsD;EAClD,OAAO,CAACygB,uBAAuB,MAAMwgB,kBAA9B,EAAkD99F,iBAAiB,CAAC3hG,KAAD,CAAnE,EAA4EglB,KAA5E,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS06K,mBAAT,CAA6B1xM,KAA7B,EAAoC;EAChC,MAAM,IAAIytL,YAAJ,CAAiB;EAAI;EAArB,EAAwE91G,SAAS,IAClF,wGAAuG33E,KAAM;AACtH;AACA;AACA,2DAA2DA,KAAM,iGAJvD,CAAN;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu8D,MAAT,CAAgBvqD,KAAhB,EAAuBglB,KAAK,GAAG+5J,WAAW,CAACvgB,OAA3C,EAAoD;EAChD,IAAI,OAAOx5I,KAAP,KAAiB,QAArB,EAA+B;IAC3B;IACA;IACA;IACAA,KAAK,GAAI;IAAE;IAAF,IAAsC;IAC1CA,KAAK,CAAC6tD,QAAN,IAAkB;IAAE;IADhB,KAEJ7tD,KAAK,CAACiC,IAAN,IAAc;IAAE;IAFZ,KAGJjC,KAAK,CAACgT,IAAN,IAAc;IAAE;IAHZ,KAIJhT,KAAK,CAAC0oF,QAAN,IAAkB;IAAE;IAJhB,CAAT;EAKH;;EACD,OAAOpjD,QAAQ,CAACtqD,KAAD,EAAQglB,KAAR,CAAf;AACH;;AACD,SAAS4oF,UAAT,CAAoBwY,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YAAYjtB,IAAzB,IAAiCitB,aAAa,YAAYlnO,QAA9D,EAAwE;MACzE2lO,UAAU,GAAGuB,aAAb;IACH,CAFI,MAGA,IAAIA,aAAa,YAAYvnO,cAA7B,EAA6C;MAC9CkkB,KAAK,GAAGqjN,aAAR;IACH;EACJ;;EACDrjN,KAAK,GAAG2hG,iBAAiB,CAAC3hG,KAAD,CAAzB;;EACA,IAAIA,KAAK,IAAI,IAAb,EAAmB;IACf,OAAOojN,iBAAiB,CAACpjN,KAAD,EAAQ6yE,QAAR,EAAkBivI,UAAlB,CAAxB;EACH,CAFD,MAGK;IACD,MAAMb,iBAAiB,CAAChjB,UAAD,EAAa97M,MAAb,CAAvB;EACH;AACJ;;AACD,SAASihO,iBAAT,CAA2BpjN,KAA3B,EAAkC6yE,QAAlC,EAA4CivI,UAA5C,EAAwD;EACpD,OAAO,IAAID,oBAAJ,CAAyBN,aAAa,CAAC9/N,GAAd,CAAkBue,KAAlB,CAAzB,EAAmD6yE,QAAnD,EAA6DivI,UAA7D,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwB,SAAS,GAAG,EAAlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kBAAN,CAAyB;EACrB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACkB,OAAPr2N,OAAO,CAACjJ,SAAD,EAAY;IACtB,OAAO2+N,0BAA0B,CAAC3+N,SAAD,CAAjC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAZ;EACH;;EACDtU,SAAS,CAAC7sL,QAAD,EAAW;IAChBi5N,uBAAuB,CAAC,KAAK93B,MAAL,CAAY5T,KAAZ,CAAD,EAAqB,KAAK4T,MAA1B,EAAkC,IAAlC,EAAwCnhM,QAAxC,CAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIi1E,YAAY,GAAG;IACXuoJ,aAAa,CAAC,KAAKuB,mBAAL,IAA4B,KAAK59B,MAAlC,CAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI5xM,MAAM,GAAG;IACL,KAAK4xM,MAAL,CAAY3T,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIp2L,QAAQ,GAAG;IACP,KAAK+pM,MAAL,CAAY3T,KAAZ,KAAsB;IAAG;IAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIzxL,aAAa,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AK,GAAGgM,QAAQ,EAAtB;IACA,MAAMjM,KAAK,GAAGyP,gBAAgB,EAA9B;IACA4hC,uBAAuB,CAACpxC,KAAD,EAAQD,KAAR,EAAe0G,KAAf,EAAsB72J,QAAtB,EAAgCitM,iBAAhC,EAAmDp2C,KAAK,CAACtB,QAAD,CAAxD,EAAoE0iB,SAApE,EAA+E,KAA/E,CAAvB;;IACA,IAAIriI,SAAJ,EAAe;MACX,MAAM+3J,sBAAsB,GAAG,CAACr9K,MAAM,CAAC,CAAD,CAAP,CAA/B,CADW,CACiC;;MAC5C,KAAK,IAAIl9D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk9D,MAAM,CAACx9D,MAA3B,EAAmCM,CAAC,IAAI,CAAxC,EAA2C;QACvCu6O,sBAAsB,CAACr6O,IAAvB,CAA4Bg9D,MAAM,CAACl9D,CAAD,CAAlC;MACH;;MACDgyO,4BAA4B,CAACh1C,KAAK,CAACr0L,IAAP,EAAao0L,KAAb,EAAoBnwJ,QAApB,EAA8Bs9J,eAAe,KAAKqwC,sBAAsB,CAAC76O,MAA3C,GAAoD,CAAlF,EAAqF,GAAG66O,sBAAxF,CAA5B;IACH;EACJ;;EACD,OAAOmE,sBAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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A;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4M,uBAAT,CAAiCx+M,IAAjC,EAAuChgB,MAAvC,EAA+CywN,EAA/C,EAAmD/kG,MAAnD,EAA2D+yG,WAA3D,EAAwE;EACpE,MAAMjjD,KAAK,GAAGsF,QAAQ,EAAtB;EACA,MAAM8wC,iBAAiB,GAAGpB,cAAc,CAACh1C,KAAD,EAAQx7K,MAAR,EAAgBywN,EAAhB,EAAoB/kG,MAApB,CAAxC;EACA+tG,oBAAoB,CAACz5M,IAAD,EAAO4xM,iBAAP,EAA0B6M,WAA1B,EAAuC,KAAvC,CAApB;EACA,OAAOD,uBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,uBAAT,CAAiC1+M,IAAjC,EAAuChgB,MAAvC,EAA+CywN,EAA/C,EAAmDtgP,EAAnD,EAAuDwgP,EAAvD,EAA2DjlG,MAA3D,EAAmE+yG,WAAnE,EAAgF;EAC5E,MAAMjjD,KAAK,GAAGsF,QAAQ,EAAtB;EACA,MAAM8wC,iBAAiB,GAAGlB,cAAc,CAACl1C,KAAD,EAAQx7K,MAAR,EAAgBywN,EAAhB,EAAoBtgP,EAApB,EAAwBwgP,EAAxB,EAA4BjlG,MAA5B,CAAxC;EACA+tG,oBAAoB,CAACz5M,IAAD,EAAO4xM,iBAAP,EAA0B6M,WAA1B,EAAuC,KAAvC,CAApB;EACA,OAAOC,uBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,uBAAT,CAAiC3+M,IAAjC,EAAuChgB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A1B;AACA;AACA;AACA;AACA;;AACA,MAAM3vH,KAAK,GAAGo+M,iBAAiB,CAAC,OAAD,EAAWr1B,mBAAD,KAA0B;EAAEA;AAAF,CAA1B,CAAV,CAA/B;AACA;AACA;AACA;AACA;;AACA,MAAM9oL,MAAM,GAAGm+M,iBAAiB,CAAC,QAAD,EAAYr1B,mBAAD,KAA0B;EAAEA;AAAF,CAA1B,CAAX,CAAhC;AACA;AACA;AACA;AACA;;AACA,MAAMwlF,WAAW,GAAGnwD,iBAAiB,CAAC,aAAD,EAAiB5zB,gBAAD,KAAuB;EAAEA;AAAF,CAAvB,CAAhB,CAArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMnrL,YAAY,GAAG++M,iBAAiB,CAAC,cAAD,EAAiB,CAAC30M,SAAD,EAAYrD,IAAZ,MAAsB;EAAEqD,SAAF;EAAarD;AAAb,CAAtB,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAM7F,QAAQ,GAAG48M,aAAa,CAAC,UAAD,EAAcnwL,QAAD,IAAcA,QAA3B,EAAqCnjB,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC1D,IAAD,EAAOwpH,IAAP,KAAgB+Y,eAAe,CAACviI,IAAD,EAAOwpH,IAAP,CAZD,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASrkD,IAAT,CAAc,GAAGllE,IAAjB,EAAuB,CACnB;AAC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ACA;IACA;IACA;IACA;IACA;IACA,OAAQ,OAAOC,SAAP,KAAqB,WAArB,IAAoCA,SAAS,CAAC57L,MAA/C,IAA0Dk7K,iBAAjE;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM9gL,SAAS,GAAG,IAAI9uE,cAAJ,CAAmB,UAAnB,EAA+B;EAC7Csa,UAAU,EAAE,MADiC;EAE7CvI,OAAO,EAAE,MAAM08D,MAAM,CAACK,SAAD,EAAYm0H,WAAW,CAAC/iM,QAAZ,GAAuB+iM,WAAW,CAAC5iM,QAA/C,CAAN,IAAkE+vQ,eAAe;AAFnD,CAA/B,CAAlB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM3gM,qBAAqB,GAAG,IAAIzvE,cAAJ,CAAmB,qBAAnB,EAA0C;EACpEsa,UAAU,EAAE,MADwD;EAEpEvI,OAAO,EAAE,MAAM89O;AAFqD,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM0gB,YAAY,GAAG,IAAIvwQ,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMwwQ,mBAAmB,GAAG,IAAIxwQ,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMknR,aAAa,GAAG,IAAIjuR,yDAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkuR,mBAAmB,GAAG,IAAIluR,yDAAJ,CAAmB,mBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMmuR,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACc,OAAH90P,GAAG,CAACA,GAAD,EAAM;IACZ,OAAO+0P,YAAY,CAAC/0P,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACc,OAAHC,GAAG,CAACA,GAAD,EAAM;IACZ,OAAO+0P,YAAY,CAAC/0P,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAARg1P,QAAQ,CAACxoR,OAAD,EAAU;IACrB,OAAOyoR,iBAAiB,CAACzoR,OAAD,CAAxB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACuB,OAAZ0oR,YAAY,CAAC1oR,OAAD,EAAU;IACzB,OAAO2oR,qBAAqB,CAAC3oR,OAAD,CAA5B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgB,OAAL4oR,KAAK,CAAC5oR,OAAD,EAAU;IAClB,OAAO6oR,cAAc,CAAC7oR,OAAD,CAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,OAAT8oR,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOC,kBAAkB,CAACD,SAAD,CAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,OAATE,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOC,kBAAkB,CAACD,SAAD,CAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACkB,OAAPltM,OAAO,CAACA,OAAD,EAAU;IACpB,OAAOotM,gBAAgB,CAACptM,OAAD,CAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACwB,OA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MAAL,GAAc,KAAKA,MAAL,CAAY+jR,QAA1B,GAAqC,QAA/E;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,aAAa,CAAC3G,UAAD,EAAa;IACtB,KAAKmB,cAAL,GAAsBnB,UAAtB;IACA,KAAKqC,oBAAL,GAA4BmD,iBAAiB,CAACxF,UAAD,CAA7C;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI4G,kBAAkB,CAAC5G,UAAD,EAAa;IAC3B,KAAKqB,mBAAL,GAA2BrB,UAA3B;IACA,KAAKuC,yBAAL,GAAiCoD,sBAAsB,CAAC3F,UAAD,CAAvD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIwB,aAAa,CAACxB,UAAD,EAAa;IACtB,KAAK2G,aAAL,CAAmBnF,aAAa,CAACxB,UAAD,EAAa,KAAKmB,cAAlB,CAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI0F,kBAAkB,CAAC7G,UAAD,EAAa;IAC3B,KAAK4G,kBAAL,CAAwBpF,aAAa,CAACxB,UAAD,EAAa,KAAKqB,mBAAlB,CAArC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIM,gBAAgB,CAAC3B,UAAD,EAAa;IACzB,KAAK2G,aAAL,CAAmBhF,gBAAgB,CAAC3B,UAAD,EAAa,KAAKmB,cAAlB,CAAnC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2F,qBAAqB,CAAC9G,UAAD,EAAa;IAC9B,KAAK4G,kBAAL,CAAwBjF,gBAAgB,CAAC3B,UAAD,EAAa,KAAKqB,mBAAlB,CAAxC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM04Q,SAAN,SAAwBtD,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIjxR,WAAW,CAAC8wR,QAAD,EAAWR,eAAX,EAA4B9C,cAA5B,EAA4C;IACnD,MAAM6C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACjD,cAAD,EAAiB8C,eAAjB,CAA1D;IACA,KAAKQ,QAAL,GAAgBA,QAAhB;;IACA,KAAKiD,gBAAL;;IACA,KAAKM,kBAAL,CAAwB/D,eAAxB;;IACA,KAAKkE,cAAL;;IACA,KAAKxB,sBAAL,CAA4B;MACxBb,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA7hP,SAAS,EAAE,CAAC,CAAC,KAAKk9O;IALM,CAA5B;EAOH;;EACDiH,eAAe,CAAC54Q,IAAD,EAAOla,OAAP,EAAgB;IAC3B,IAAI,KAAKmvR,QAAL,CAAcj1Q,IAAd,CAAJ,EACI,OAAO,KAAKi1Q,QAAL,CAAcj1Q,IAAd,CAAP;IACJ,KAAKi1Q,QAAL,CAAcj1Q,IAAd,IAAsBla,OAAtB;IACAA,OAAO,CAACsxR,SAAR,CAAkB,IAAlB;;IACAtxR,OAAO,CAACyyR,2BAAR,CAAoC,KAAK/C,mBAAzC;;IACA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oBAAoB,GAAG;EACzB/2R,OAAO,EAAEjH,SADgB;EAEzBkH,WAAW,EAAE49G,yDAAU,CAAC,MAAMm5K,OAAP;AAFE,CAA7B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,eAAe,GAAG,CAAC,MAAM7tR,OAAO,CAACC,OAAR,EAAP,GAAxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2tR,OAAN,SAAsBj+R,SAAtB,CAAgC;EAC5BsD,WAAW,CAAC0N,MAAD,EAASs9Q,UAAT,EAAqB0F,eAArB,EAAsCoH,cAAtC,EAAsD+C,kBAAtD,EAA0E;IACjF;IACA,KAAKA,kBAAL,GAA0BA,kBAA1B;IACA,KAAKl5R,OAAL,GAAe,IAAI+3R,WAAJ,EAAf;IACA;;IACA,KAAKoB,WAAL,GAAmB,KAAnB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKtoQ,MAAL,GAAc,IAAIz2B,uDAAJ,EAAd;IACA,KAAK4nO,OAAL,GAAej2N,MAAf;;IACA,KAAK0/Q,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;;IACA,KAAK7C,aAAL,GAAqBgK,mBAAmB,CAAC,IAAD,EAAOC,cAAP,CAAxC;EACH;EACD;;;EACA31Q,WAAW,CAACc,OAAD,EAAU;IACjB,KAAK83Q,eAAL;;IACA,IAAI,CAAC,KAAKD,WAAN,IAAqB,UAAU73Q,OAAnC,EAA4C;MACxC,IAAI,KAAK63Q,WAAT,EAAsB;QAClB,KAAKE,UAAL;;QACA,IAAI,KAAKjN,aAAT,EAAwB;UACpB;UACA;UACA;UACA;UACA,MAAMkN,OAAO,GAAGh4Q,OAAO,CAAC,MAAD,CAAP,CAAgBihE,aAAhC;UACA,KAAK6pM,aAAL,CAAmB4G,aAAnB,CAAiC;YAAE94Q,IAAI,EAAEo/Q,OAAR;YAAiBnqR,IAAI,EAAE,KAAKoqR,QAAL,CAAcD,OAAd;UAAvB,CAAjC;QACH;MACJ;;MACD,KAAKE,aAAL;IACH;;IACD,IAAI,gBAAgBl4Q,OAApB,EAA6B;MACzB,KAAKm4Q,eAAL,CAAqBn4Q,OAArB;IACH;;IACD,IAAIw0Q,iBAAiB,CAACx0Q,OAAD,EAAU,KAAKy0Q,SAAf,CAArB,EAAgD;MAC5C,KAAK7E,YAAL,CAAkB,KAAKwI,KAAvB;;MACA,KAAK3D,SAAL,GAAiB,KAAK2D,KAAtB;IACH;EACJ;EACD;;;EACAn6R,WAAW,GAAG;IACV,KAAK6sR,aAAL,IAAsB,KAAKA,aAAL,CAAmB4G,aAAnB,CAAiC,IAAjC,CAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJ7jR,IAAI,GAAG;IACP,OAAO,KAAKoqR,QAAL,CAAc,KAAKr/Q,IAAnB,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAbkyQ,aAAa,GAAG;IAChB,OAAO,KAAKpqD,OAAL,GAAe,KAAKA,OAAL,CAAaoqD,aAA5B,GAA4C,IAAnD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIiJ,iBAAiB,CAACtsP,QAAD,EAAW;IACxB,KAAKgtP,SAAL,GAAiBhtP,QAAjB;IACA,KAAKlY,MAAL,CAAYpU,IAAZ,CAAiBssB,QAAjB;EACH;;EACDywP,aAAa,GAAG;IACZ,KAAK9G,kBAAL;;IACA,KAAKiH,aAAL,KAAuB,KAAKC,gBAAL,EAAvB,GAAiD,KAAKxN,aAAL,CAAmB2G,UAAnB,CAA8B,IAA9B,CAAjD;IACA,KAAKoG,WAAL,GAAmB,IAAnB;EACH;;EACDzG,kBAAkB,GAAG;IACjB,IAAI,KAAK95Q,OAAL,IAAgB,KAAKA,OAAL,CAAak3Q,QAAb,IAAyB,IAA7C,EAAmD;MAC/C,KAAK9vR,OAAL,CAAa+vR,SAAb,GAAyB,KAAKn3Q,OAAL,CAAak3Q,QAAtC;IACH;EACJ;;EACD6J,aAAa,GAAG;IACZ,OAAO,CAAC,KAAK33D,OAAN,IAAiB,CAAC,EAAE,KAAKppN,OAAL,IAAgB,KAAKA,OAAL,CAAagwC,UAA/B,CAAzB;EACH;;EACDgxO,gBAAgB,GAAG;IACf9F,YAAY,CAAC,KAAK9zR,OAAN,EAAe,IAAf,CAAZ;IACA,KAAKA,OAAL,CAAaqxR,sBAAb,CAAoC;MAAE1iP,SAAS,EAAE;IAAb,CAApC;EACH;;EACDyqP,eAAe,GAAG;IACd,IAAI,CAAC,KAAKO,aAAL,EAAL,EAA2B;MACvB,KAAKnB,gBAAL;IACH;;IACD,KAAKa,UAAL;EACH;;EACDb,gBAAgB,GAAG;IACf,IAAI,OAAO10M,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C,IAAI,EAAE,KAAKk+I,OAAL,YAAwB82D,YAA1B,KACA,KAAK92D,OAAL,YAAwBu2D,0BAD5B,EACwD;QACpD,MAAMG,sBAAsB,EAA5B;MACH,CAHD,MAIK,IAAI,EAAE,KAAK12D,OAAL,YAAwB82D,YAA1B,KAA2C,EAAE,KAAK92D,OAAL,YAAwB60D,MAA1B,CAA/C,EAAkF;QACnF,MAAM4B,oBAAoB,EAA1B;MACH;IACJ;EACJ;;EACDY,UAAU,GAAG;IACT,IAAI,KAAKzgR,OAAL,IAAgB,KAAKA,OAAL,CAAasB,IAAjC,EACI,KAAKA,IAAL,GAAY,KAAKtB,OAAL,CAAasB,IAAzB;;IACJ,IAAI,CAAC,KAAKy/Q,aAAL,EAAD,IAAyB,CAAC,KAAKz/Q,IAA/B,KAAwC,OAAO4pE,SAAP,KAAqB,WAArB,IAAoCA,SAA5E,CAAJ,EAA4F;MACxF,MAAM60M,oBAAoB,EAA1B;IACH;EACJ;;EACDzH,YAAY,CAACvyR,KAAD,EAAQ;IAChBs6R,eAAe,CAACrnR,IAAhB,CAAqB,MAAM;MACvB,IAAI/R,EAAJ;;MACA,KAAKG,OAAL,CAAawyC,QAAb,CAAsB7zC,KAAtB,EAA6B;QAAEy5R,qBAAqB,EAAE;MAAzB,CAA7B;MACA,CAACv4R,EAAE,GAAG,KAAKq5R,kBAAX,MAAmC,IAAnC,IAA2Cr5R,EAAE,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,EAAE,CAAC4qF,YAAH,EAApE;IACH,CAJD;EAKH;;EACDgvM,eAAe,CAACn4Q,OAAD,EAAU;IACrB,MAAMu4Q,aAAa,GAAGv4Q,OAAO,CAAC,YAAD,CAAP,CAAsBE,YAA5C,CADqB,CAErB;;IACA,MAAMniB,UAAU,GAAGw6R,aAAa,KAAK,CAAlB,IAAuB7V,kEAAgB,CAAC6V,aAAD,CAA1D;IACAZ,eAAe,CAACrnR,IAAhB,CAAqB,MAAM;MACvB,IAAI/R,EAAJ;;MACA,IAAIR,UAAU,IAAI,CAAC,KAAKW,OAAL,CAAaV,QAAhC,EAA0C;QACtC,KAAKU,OAAL,CAAa23B,OAAb;MACH,CAFD,MAGK,IAAI,CAACt4B,UAAD,IAAe,KAAKW,OAAL,CAAaV,QAAhC,EAA0C;QAC3C,KAAKU,OAAL,CAAa8jB,MAAb;MACH;;MACD,CAACjkB,EAAE,GAAG,KAAKq5R,kBAAX,MAAmC,IAAnC,IAA2Cr5R,EAAE,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,EAAE,CAAC4qF,YAAH,EAApE;IACH,CATD;EAUH;;EACD8uM,QAAQ,CAACrG,WAAD,EAAc;IAClB,OAAO,KAAKlxD,OAAL,GAAe6xD,WAAW,CAACX,WAAD,EAAc,KAAKlxD,OAAnB,CAA1B,GAAwD,CAACkxD,WAAD,CAA/D;EACH;;AAzI2B;;AA2IhC8F,OAAO,CAACz4R,IAAR;EAAA,iBAAoGy4R,OAApG,EApgI2Gt/R,+DAogI3G,CAA6HyyR,gBAA7H,MApgI2GzyR,+DAogI3G,CAAsLwuR,aAAtL,OApgI2GxuR,+DAogI3G,CAA4OyuR,mBAA5O,OApgI2GzuR,+DAogI3G,CAAwSsB,iBAAxS,OApgI2GtB,+DAogI3G,CAAkWsL,4DAAlW;AAAA;;AACAg0R,OAAO,CAACv4R,IAAR,kBArgI2G/G,+DAqgI3G;EAAA,MAAwFs/R,OAAxF;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WArgI2Gt/R,gEAqgI3G,CAA0V,CAACq/R,oBAAD,CAA1V,GArgI2Gr/R,wEAqgI3G,EArgI2GA,kEAqgI3G;AAAA;;AACA;EAAA,mDAtgI2GA,+DAsgI3G,CAA2Fs/R,OAA3F,EAAgH,CAAC;IACrGt4R,IAAI,EAAE/G,oDAD+F;IAErGgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,qDADX;MAECC,SAAS,EAAE,CAAC22R,oBAAD,CAFZ;MAGC76Q,QAAQ,EAAE;IAHX,CAAD;EAF+F,CAAD,CAAhH,EAO4B,YAAY;IAChC,OAAO,CAAC;MAAExd,IAAI,EAAEyrR,gBAAR;MAA0B50Q,UAAU,EAAE,CAAC;QAC/B7W,IAAI,EAAEvG,mDAAQA;MADiB,CAAD,EAE/B;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAF+B;IAAtC,CAAD,EAIW;MAAExnC,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJkC;IAA/B,CAJX,EAWW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAXX,EAkBW;MAAEznR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAAC3F,iBAAD;MAFP,CAJkC;IAA/B,CAlBX,EAyBW;MAAE0F,IAAI,EAAEhH,4DAAR;MAA8B6d,UAAU,EAAE,CAAC;QAC7C7W,IAAI,EAAEvG,mDAAQA;MAD+B,CAAD,EAE7C;QACCuG,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACqE,4DAAD;MAFP,CAF6C;IAA1C,CAzBX,CAAP;EA+BH,CAvCL,EAuCuB;IAAEkV,IAAI,EAAE,CAAC;MAChBxZ,IAAI,EAAEnG,gDAAKA;IADK,CAAD,CAAR;IAEP8E,UAAU,EAAE,CAAC;MACbqB,IAAI,EAAEnG,gDADO;MAEboG,IAAI,EAAE,CAAC,UAAD;IAFO,CAAD,CAFL;IAKP+4R,KAAK,EAAE,CAAC;MACRh5R,IAAI,EAAEnG,gDADE;MAERoG,IAAI,EAAE,CAAC,SAAD;IAFE,CAAD,CALA;IAQPiY,OAAO,EAAE,CAAC;MACVlY,IAAI,EAAEnG,gDADI;MAEVoG,IAAI,EAAE,CAAC,gBAAD;IAFI,CAAD,CARF;IAWPkwB,MAAM,EAAE,CAAC;MACTnwB,IAAI,EAAElG,iDADG;MAETmG,IAAI,EAAE,CAAC,eAAD;IAFG,CAAD;EAXD,CAvCvB;AAAA;AAuDA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm5R,aAAN,CAAoB;;AAEpBA,aAAa,CAACv5R,IAAd;EAAA,iBAA0Gu5R,aAA1G;AAAA;;AACAA,aAAa,CAACr5R,IAAd,kBAxlI2G/G,+DAwlI3G;EAAA,MAA8FogS,aAA9F;EAAA;EAAA,0BAA2M,EAA3M;AAAA;;AACA;EAAA,mDAzlI2GpgS,+DAylI3G,CAA2FogS,aAA3F,EAAsH,CAAC;IAC3Gp5R,IAAI,EAAE/G,oDADqG;IAE3GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,8CADX;MAECijC,IAAI,EAAE;QAAE,cAAc;MAAhB;IAFP,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM20P,qBAAqB,GAAG;EAC1B/3R,OAAO,EAAEhH,iBADiB;EAE1BiH,WAAW,EAAE49G,yDAAU,CAAC,MAAMm6K,mBAAP,CAFG;EAG1B93R,KAAK,EAAE;AAHmB,CAA9B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM83R,mBAAN,SAAkC/S,2BAAlC,CAA8D;EAC1D;AACJ;AACA;AACA;EACIvoR,UAAU,CAACC,KAAD,EAAQ;IACd;IACA,MAAMgpR,eAAe,GAAGhpR,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBA,KAA7C;IACA,KAAK6qB,WAAL,CAAiB,OAAjB,EAA0Bm+P,eAA1B;EACH;EACD;AACJ;AACA;AACA;;;EACI1oR,gBAAgB,CAACC,EAAD,EAAK;IACjB,KAAKV,QAAL,GAAiBG,KAAD,IAAW;MACvBO,EAAE,CAACP,KAAK,IAAI,EAAT,GAAc,IAAd,GAAqB2D,UAAU,CAAC3D,KAAD,CAAhC,CAAF;IACH,CAFD;EAGH;;AAlByD;;AAoB9Dq7R,mBAAmB,CAACz5R,IAApB;EAAA;EAAA;IAAA,gFAzpI2G7G,mEAypI3G,CAAgHsgS,mBAAhH,SAAgHA,mBAAhH;EAAA;AAAA;;AACAA,mBAAmB,CAACv5R,IAApB,kBA1pI2G/G,+DA0pI3G;EAAA,MAAoGsgS,mBAApG;EAAA;EAAA;IAAA;MA1pI2GtgS,wDA0pI3G;QAAA,OAAoG,iCAApG;MAAA;QAAA,OAAoG,eAApG;MAAA;IAAA;EAAA;EAAA,WA1pI2GA,gEA0pI3G,CAA2U,CAACqgS,qBAAD,CAA3U,GA1pI2GrgS,wEA0pI3G;AAAA;;AACA;EAAA,mDA3pI2GA,+DA2pI3G,CAA2FsgS,mBAA3F,EAA4H,CAAC;IACjHt5R,IAAI,EAAE/G,oDAD2G;IAEjHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,iGADX;MAECijC,IAAI,EAAE;QAAE,WAAW,+BAAb;QAA8C,UAAU;MAAxD,CAFP;MAGChjC,SAAS,EAAE,CAAC23R,qBAAD;IAHZ,CAAD;EAF2G,CAAD,CAA5H;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,oBAAoB,GAAG;EACzBj4R,OAAO,EAAEhH,iBADgB;EAEzBiH,WAAW,EAAE49G,yDAAU,CAAC,MAAMq6K,yBAAP,CAFE;EAGzBh4R,KAAK,EAAE;AAHkB,CAA7B;;AAKA,SAASi4R,cAAT,GAA0B;EACtB,MAAM,IAAI9wN,2DAAJ,CAAkB;EAAK;EAAvB,EAAsF;AAChG;AACA;AACA,KAHU,CAAN;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+wN,0BAAN,CAAiC;;AAEjCA,0BAA0B,CAAC75R,IAA3B;EAAA,iBAAuH65R,0BAAvH;AAAA;;AACAA,0BAA0B,CAAC5yQ,IAA3B,kBA/rI2G9tB,8DA+rI3G;EAAA,MAAwH0gS;AAAxH;AACAA,0BAA0B,CAAC3yQ,IAA3B,kBAhsI2G/tB,8DAgsI3G;;AACA;EAAA,mDAjsI2GA,+DAisI3G,CAA2F0gS,0BAA3F,EAAmI,CAAC;IACxH15R,IAAI,EAAE5F,mDAAQA;EAD0G,CAAD,CAAnI;AAAA;AAGA;AACA;AACA;AACA;;;AACA,MAAMu/R,oBAAN,CAA2B;EACvBh8R,WAAW,GAAG;IACV,KAAKi8R,UAAL,GAAkB,EAAlB;EACH;EACD;AACJ;AACA;AACA;;;EACI34R,GAAG,CAAC3B,OAAD,EAAU6oH,QAAV,EAAoB;IACnB,KAAKyxK,UAAL,CAAgB94R,IAAhB,CAAqB,CAACxB,OAAD,EAAU6oH,QAAV,CAArB;EACH;EACD;AACJ;AACA;AACA;;;EACInnH,MAAM,CAACmnH,QAAD,EAAW;IACb,KAAK,IAAIvnH,CAAC,GAAG,KAAKg5R,UAAL,CAAgBt5R,MAAhB,GAAyB,CAAtC,EAAyCM,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;MAClD,IAAI,KAAKg5R,UAAL,CAAgBh5R,CAAhB,EAAmB,CAAnB,MAA0BunH,QAA9B,EAAwC;QACpC,KAAKyxK,UAAL,CAAgBlpR,MAAhB,CAAuB9P,CAAvB,EAA0B,CAA1B;;QACA;MACH;IACJ;EACJ;EACD;AACJ;AACA;AACA;;;EACIsd,MAAM,CAACiqG,QAAD,EAAW;IACb,KAAKyxK,UAAL,CAAgBp6R,OAAhB,CAAyB2E,CAAD,IAAO;MAC3B,IAAI,KAAK01R,YAAL,CAAkB11R,CAAlB,EAAqBgkH,QAArB,KAAkChkH,CAAC,CAAC,CAAD,CAAD,KAASgkH,QAA/C,EAAyD;QACrDhkH,CAAC,CAAC,CAAD,CAAD,CAAK21R,WAAL,CAAiB3xK,QAAQ,CAAClqH,KAA1B;MACH;IACJ,CAJD;EAKH;;EACD47R,YAAY,CAACE,WAAD,EAAc5xK,QAAd,EAAwB;IAChC,IAAI,CAAC4xK,WAAW,CAAC,CAAD,CAAX,CAAez6R,OAApB,EACI,OAAO,KAAP;IACJ,OAAOy6R,WAAW,CAAC,CAAD,CAAX,CAAez4D,OAAf,KAA2Bn5G,QAAQ,CAAC6xK,QAAT,CAAkB14D,OAA7C,IACHy4D,WAAW,CAAC,CAAD,CAAX,CAAevgR,IAAf,KAAwB2uG,QAAQ,CAAC3uG,IADrC;EAEH;;AAvCsB;;AAyC3BmgR,oBAAoB,CAAC95R,IAArB;EAAA,iBAAiH85R,oBAAjH;AAAA;;AACAA,oBAAoB,CAAC1vR,KAArB,kBAlvI2GjR,gEAkvI3G;EAAA,OAAqH2gS,oBAArH;EAAA,SAAqHA,oBAArH;EAAA,YAAuJD;AAAvJ;;AACA;EAAA,mDAnvI2G1gS,+DAmvI3G,CAA2F2gS,oBAA3F,EAA6H,CAAC;IAClH35R,IAAI,EAAE3G,qDAD4G;IAElH4G,IAAI,EAAE,CAAC;MAAE4T,UAAU,EAAE6lR;IAAd,CAAD;EAF4G,CAAD,CAA7H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMF,yBAAN,SAAwCjT,2BAAxC,CAAoE;EAChE5oR,WAAW,CAACi2F,QAAD,EAAWh6E,UAAX,EAAuBwpJ,SAAvB,EAAkCo0F,SAAlC,EAA6C;IACpD,MAAM5jK,QAAN,EAAgBh6E,UAAhB;IACA,KAAKwpJ,SAAL,GAAiBA,SAAjB;IACA,KAAKo0F,SAAL,GAAiBA,SAAjB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAK15P,QAAL,GAAgB,MAAM,CAAG,CAAzB;EACH;EACD;;;EACAmd,QAAQ,GAAG;IACP,KAAK++Q,QAAL,GAAgB,KAAKxiC,SAAL,CAAet4P,GAAf,CAAmB7E,SAAnB,CAAhB;;IACA,KAAKs+R,UAAL;;IACA,KAAKv1H,SAAL,CAAeniK,GAAf,CAAmB,KAAK+4R,QAAxB,EAAkC,IAAlC;EACH;EACD;;;EACAn7R,WAAW,GAAG;IACV,KAAKukK,SAAL,CAAepiK,MAAf,CAAsB,IAAtB;EACH;EACD;AACJ;AACA;AACA;;;EACIhD,UAAU,CAACC,KAAD,EAAQ;IACd,KAAKg8R,MAAL,GAAch8R,KAAK,KAAK,KAAKA,KAA7B;IACA,KAAK6qB,WAAL,CAAiB,SAAjB,EAA4B,KAAKmxQ,MAAjC;EACH;EACD;AACJ;AACA;AACA;;;EACI17R,gBAAgB,CAACC,EAAD,EAAK;IACjB,KAAK07R,GAAL,GAAW17R,EAAX;;IACA,KAAKV,QAAL,GAAgB,MAAM;MAClBU,EAAE,CAAC,KAAKP,KAAN,CAAF;;MACA,KAAKmlK,SAAL,CAAellJ,MAAf,CAAsB,IAAtB;IACH,CAHD;EAIH;EACD;AACJ;AACA;AACA;AACA;;;EACI47Q,WAAW,CAAC77R,KAAD,EAAQ;IACf,KAAKD,UAAL,CAAgBC,KAAhB;EACH;;EACD06R,UAAU,GAAG;IACT,IAAI,KAAKn/Q,IAAL,IAAa,KAAK2gR,eAAlB,IAAqC,KAAK3gR,IAAL,KAAc,KAAK2gR,eAAxD,KACC,OAAO/2M,SAAP,KAAqB,WAArB,IAAoCA,SADrC,CAAJ,EACqD;MACjDq2M,cAAc;IACjB;;IACD,IAAI,CAAC,KAAKjgR,IAAN,IAAc,KAAK2gR,eAAvB,EACI,KAAK3gR,IAAL,GAAY,KAAK2gR,eAAjB;EACP;;AA1D+D;;AA4DpEX,yBAAyB,CAAC35R,IAA1B;EAAA,iBAAsH25R,yBAAtH,EAv0I2GxgS,+DAu0I3G,CAAiKA,oDAAjK,GAv0I2GA,+DAu0I3G,CAA0LA,qDAA1L,GAv0I2GA,+DAu0I3G,CAAoN2gS,oBAApN,GAv0I2G3gS,+DAu0I3G,CAAqPA,mDAArP;AAAA;;AACAwgS,yBAAyB,CAACz5R,IAA1B,kBAx0I2G/G,+DAw0I3G;EAAA,MAA0GwgS,yBAA1G;EAAA;EAAA;IAAA;MAx0I2GxgS,wDAw0I3G;QAAA,OAA0G,cAA1G;MAAA;QAAA,OAA0G,eAA1G;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA,WAx0I2GA,gEAw0I3G,CAAgZ,CAACugS,oBAAD,CAAhZ,GAx0I2GvgS,wEAw0I3G;AAAA;;AACA;EAAA,mDAz0I2GA,+DAy0I3G,CAA2FwgS,yBAA3F,EAAkI,CAAC;IACvHx5R,IAAI,EAAE/G,oDADiH;IAEvHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,8FADX;MAECijC,IAAI,EAAE;QAAE,YAAY,YAAd;QAA4B,UAAU;MAAtC,CAFP;MAGChjC,SAAS,EAAE,CAAC63R,oBAAD;IAHZ,CAAD;EAFiH,CAAD,CAAlI,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEv5R,IAAI,EAAEhH,oDAAYowE;IAApB,CAAD,EAAyB;MAAEppE,IAAI,EAAEhH,qDAAa8G;IAArB,CAAzB,EAAkD;MAAEE,IAAI,EAAE25R;IAAR,CAAlD,EAAkF;MAAE35R,IAAI,EAAEhH,mDAAWM;IAAnB,CAAlF,CAAP;EAAkH,CAP5J,EAO8K;IAAEkgB,IAAI,EAAE,CAAC;MACvKxZ,IAAI,EAAEnG,gDAAKA;IAD4J,CAAD,CAAR;IAE9JsgS,eAAe,EAAE,CAAC;MAClBn6R,IAAI,EAAEnG,gDAAKA;IADO,CAAD,CAF6I;IAI9JoE,KAAK,EAAE,CAAC;MACR+B,IAAI,EAAEnG,gDAAKA;IADH,CAAD;EAJuJ,CAP9K;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMugS,oBAAoB,GAAG;EACzB94R,OAAO,EAAEhH,iBADgB;EAEzBiH,WAAW,EAAE49G,yDAAU,CAAC,MAAMk7K,kBAAP,CAFE;EAGzB74R,KAAK,EAAE;AAHkB,CAA7B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM64R,kBAAN,SAAiC9T,2BAAjC,CAA6D;EACzD;AACJ;AACA;AACA;EACIvoR,UAAU,CAACC,KAAD,EAAQ;IACd,KAAK6qB,WAAL,CAAiB,OAAjB,EAA0BlnB,UAAU,CAAC3D,KAAD,CAApC;EACH;EACD;AACJ;AACA;AACA;;;EACIM,gBAAgB,CAACC,EAAD,EAAK;IACjB,KAAKV,QAAL,GAAiBG,KAAD,IAAW;MACvBO,EAAE,CAACP,KAAK,IAAI,EAAT,GAAc,IAAd,GAAqB2D,UAAU,CAAC3D,KAAD,CAAhC,CAAF;IACH,CAFD;EAGH;;AAhBwD;;AAkB7Do8R,kBAAkB,CAACx6R,IAAnB;EAAA;EAAA;IAAA,8EA94I2G7G,mEA84I3G,CAA+GqhS,kBAA/G,SAA+GA,kBAA/G;EAAA;AAAA;;AACAA,kBAAkB,CAACt6R,IAAnB,kBA/4I2G/G,+DA+4I3G;EAAA,MAAmGqhS,kBAAnG;EAAA;EAAA;IAAA;MA/4I2GrhS,wDA+4I3G;QAAA,OAAmG,iCAAnG;MAAA;QAAA,OAAmG,iCAAnG;MAAA;QAAA,OAAmG,eAAnG;MAAA;IAAA;EAAA;EAAA,WA/4I2GA,gEA+4I3G,CAAiX,CAACohS,oBAAD,CAAjX,GA/4I2GphS,wEA+4I3G;AAAA;;AACA;EAAA,mDAh5I2GA,+DAg5I3G,CAA2FqhS,kBAA3F,EAA2H,CAAC;IAChHr6R,IAAI,EAAE/G,oDAD0G;IAEhHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,8FADX;MAECijC,IAAI,EAAE;QACF,YAAY,+BADV;QAEF,WAAW,+BAFT;QAGF,UAAU;MAHR,CAFP;MAOChjC,SAAS,EAAE,CAAC04R,oBAAD;IAPZ,CAAD;EAF0G,CAAD,CAA3H;AAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAME,kCAAkC,GAAG,IAAI/gS,yDAAJ,CAAmB,+BAAnB,CAA3C;AACA,MAAMghS,kBAAkB,GAAG;EACvBj5R,OAAO,EAAEjH,SADc;EAEvBkH,WAAW,EAAE49G,yDAAU,CAAC,MAAMq7K,oBAAP;AAFA,CAA3B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMA,oBAAN,SAAmCngS,SAAnC,CAA6C;EACzCsD,WAAW,CAACgrR,UAAD,EAAa0F,eAAb,EAA8BoH,cAA9B,EAA8CgF,qBAA9C,EAAqE;IAC5E;IACA,KAAKA,qBAAL,GAA6BA,qBAA7B;IACA;;IACA,KAAKtqQ,MAAL,GAAc,IAAIz2B,uDAAJ,EAAd;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKu8R,mBAAL,GAA2B,KAA3B;;IACA,KAAKlL,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;;IACA,KAAK7C,aAAL,GAAqBgK,mBAAmB,CAAC,IAAD,EAAOC,cAAP,CAAxC;EACH;EACD;AACJ;AACA;AACA;;;EACkB,IAAV92R,UAAU,CAACA,UAAD,EAAa;IACvB,IAAI,OAAOykF,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C/mE,OAAO,CAACC,IAAR,CAAa8wQ,mBAAb;IACH;EACJ;EACD;;;EACAttQ,WAAW,CAACc,OAAD,EAAU;IACjB,IAAI,KAAK85Q,iBAAL,CAAuB95Q,OAAvB,CAAJ,EAAqC;MACjC,MAAM+5Q,YAAY,GAAG/5Q,OAAO,CAAC,MAAD,CAAP,CAAgBihE,aAArC;;MACA,IAAI84M,YAAJ,EAAkB;QACdhH,cAAc,CAACgH,YAAD,EAAe,IAAf;QAAqB;QAAsC,KAA3D,CAAd;MACH;;MACDvH,YAAY,CAAC,KAAKp8M,IAAN,EAAY,IAAZ,CAAZ;MACA,KAAKA,IAAL,CAAU25M,sBAAV,CAAiC;QAAE1iP,SAAS,EAAE;MAAb,CAAjC;IACH;;IACD,IAAImnP,iBAAiB,CAACx0Q,OAAD,EAAU,KAAKy0Q,SAAf,CAArB,EAAgD;MAC5C,IAAI,OAAOjyM,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;QAC/C0yM,eAAe,CAAC,aAAD,EAAgB0E,oBAAhB,EAAsC,IAAtC,EAA4C,KAAKC,qBAAjD,CAAf;MACH;;MACD,KAAKzjN,IAAL,CAAUllC,QAAV,CAAmB,KAAKknP,KAAxB;MACA,KAAK3D,SAAL,GAAiB,KAAK2D,KAAtB;IACH;EACJ;EACD;;;EACAn6R,WAAW,GAAG;IACV,IAAI,KAAKm4E,IAAT,EAAe;MACX28M,cAAc,CAAC,KAAK38M,IAAN,EAAY,IAAZ;MAAkB;MAAsC,KAAxD,CAAd;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJvoE,IAAI,GAAG;IACP,OAAO,EAAP;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPnP,OAAO,GAAG;IACV,OAAO,KAAK03E,IAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI29M,iBAAiB,CAACtsP,QAAD,EAAW;IACxB,KAAKgtP,SAAL,GAAiBhtP,QAAjB;IACA,KAAKlY,MAAL,CAAYpU,IAAZ,CAAiBssB,QAAjB;EACH;;EACDqyP,iBAAiB,CAAC95Q,OAAD,EAAU;IACvB,OAAOA,OAAO,CAACoH,cAAR,CAAuB,MAAvB,CAAP;EACH;;AA9EwC;AAgF7C;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAwyQ,oBAAoB,CAACxE,uBAArB,GAA+C,KAA/C;;AACAwE,oBAAoB,CAAC36R,IAArB;EAAA,iBAAiH26R,oBAAjH,EA1hJ2GxhS,+DA0hJ3G,CAAuJwuR,aAAvJ,OA1hJ2GxuR,+DA0hJ3G,CAA6MyuR,mBAA7M,OA1hJ2GzuR,+DA0hJ3G,CAAyQsB,iBAAzQ,OA1hJ2GtB,+DA0hJ3G,CAAmUshS,kCAAnU;AAAA;;AACAE,oBAAoB,CAACz6R,IAArB,kBA3hJ2G/G,+DA2hJ3G;EAAA,MAAqGwhS,oBAArG;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WA3hJ2GxhS,gEA2hJ3G,CAAuT,CAACuhS,kBAAD,CAAvT,GA3hJ2GvhS,wEA2hJ3G,EA3hJ2GA,kEA2hJ3G;AAAA;;AACA;EAAA,mDA5hJ2GA,+DA4hJ3G,CAA2FwhS,oBAA3F,EAA6H,CAAC;IAClHx6R,IAAI,EAAE/G,oDAD4G;IAElHgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE,eAAZ;MAA6BC,SAAS,EAAE,CAAC64R,kBAAD,CAAxC;MAA8D/8Q,QAAQ,EAAE;IAAxE,CAAD;EAF4G,CAAD,CAA7H,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAExd,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QACxB7W,IAAI,EAAEvG,mDAAQA;MADU,CAAD,EAExB;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFwB,EAIxB;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJwB;IAA/B,CAAD,EAOW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAPX,EAcW;MAAEznR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAAC3F,iBAAD;MAFP,CAJkC;IAA/B,CAdX,EAqBW;MAAE0F,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACq6R,kCAAD;MAFP,CAFkC;IAA/B,CArBX,CAAP;EA2BH,CA/BL,EA+BuB;IAAEtjN,IAAI,EAAE,CAAC;MAChBh3E,IAAI,EAAEnG,gDADU;MAEhBoG,IAAI,EAAE,CAAC,aAAD;IAFU,CAAD,CAAR;IAGPtB,UAAU,EAAE,CAAC;MACbqB,IAAI,EAAEnG,gDADO;MAEboG,IAAI,EAAE,CAAC,UAAD;IAFO,CAAD,CAHL;IAMP+4R,KAAK,EAAE,CAAC;MACRh5R,IAAI,EAAEnG,gDADE;MAERoG,IAAI,EAAE,CAAC,SAAD;IAFE,CAAD,CANA;IASPkwB,MAAM,EAAE,CAAC;MACTnwB,IAAI,EAAElG,iDADG;MAETmG,IAAI,EAAE,CAAC,eAAD;IAFG,CAAD;EATD,CA/BvB;AAAA;AA6CA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM26R,qBAAqB,GAAG;EAC1Bt5R,OAAO,EAAEmqR,gBADiB;EAE1BlqR,WAAW,EAAE49G,yDAAU,CAAC,MAAM07K,kBAAP;AAFG,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMA,kBAAN,SAAiCpP,gBAAjC,CAAkD;EAC9C9tR,WAAW,CAACgrR,UAAD,EAAa0F,eAAb,EAA8B;IACrC;IACA;AACR;AACA;AACA;;IACQ,KAAKhC,SAAL,GAAiB,KAAjB;IACA;AACR;AACA;AACA;;IACQ,KAAK2C,mBAAL,GAA2B,MAAM,KAAK8L,eAAL,EAAjC;IACA;AACR;AACA;AACA;;;IACQ,KAAKj3G,UAAL,GAAkB,EAAlB;IACA;AACR;AACA;AACA;;IACQ,KAAK7sG,IAAL,GAAY,IAAZ;IACA;AACR;AACA;AACA;;IACQ,KAAKs/M,QAAL,GAAgB,IAAI58R,uDAAJ,EAAhB;;IACA,KAAKqxR,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;EACH;EACD;;;EACAvuQ,WAAW,CAACc,OAAD,EAAU;IACjB,KAAKm6Q,iBAAL;;IACA,IAAIn6Q,OAAO,CAACoH,cAAR,CAAuB,MAAvB,CAAJ,EAAoC;MAChC,KAAKgzQ,iBAAL;;MACA,KAAKF,eAAL;;MACA,KAAKG,oBAAL;;MACA,KAAKC,QAAL,GAAgB,KAAKlkN,IAArB;IACH;EACJ;EACD;;;EACAn4E,WAAW,GAAG;IACV,IAAI,KAAKm4E,IAAT,EAAe;MACX88M,iBAAiB,CAAC,KAAK98M,IAAN,EAAY,IAAZ,CAAjB,CADW,CAEX;MACA;MACA;MACA;MACA;MACA;;MACA,IAAI,KAAKA,IAAL,CAAUg4M,mBAAV,KAAkC,KAAKA,mBAA3C,EAAgE;QAC5D,KAAKh4M,IAAL,CAAU+6M,2BAAV,CAAsC,MAAM,CAAG,CAA/C;MACH;IACJ;EACJ;EACD;AACJ;AACA;AACA;;;EACqB,IAAbrG,aAAa,GAAG;IAChB,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPpsR,OAAO,GAAG;IACV,OAAO,KAAK03E,IAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJvoE,IAAI,GAAG;IACP,OAAO,EAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI4jR,UAAU,CAAC18Q,GAAD,EAAM;IACZ,MAAM6M,IAAI,GAAG,KAAKw0D,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAb;IACA2kR,YAAY,CAAC5wQ,IAAD,EAAO7M,GAAP,CAAZ;IACA6M,IAAI,CAACmuQ,sBAAL,CAA4B;MAAE1iP,SAAS,EAAE;IAAb,CAA5B;IACA,KAAK41I,UAAL,CAAgB/iL,IAAhB,CAAqB6U,GAArB;IACA,OAAO6M,IAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIg0Q,UAAU,CAAC7gR,GAAD,EAAM;IACZ,OAAO,KAAKqhE,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI6jR,aAAa,CAAC38Q,GAAD,EAAM;IACfg+Q,cAAc,CAACh+Q,GAAG,CAACrW,OAAJ,IAAe,IAAhB,EAAsBqW,GAAtB;IAA2B;IAAsC,KAAjE,CAAd;IACAkgR,gBAAgB,CAAC,KAAKhyG,UAAN,EAAkBluK,GAAlB,CAAhB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACI8gR,YAAY,CAAC9gR,GAAD,EAAM;IACd,KAAKwlR,mBAAL,CAAyBxlR,GAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIghR,eAAe,CAAChhR,GAAD,EAAM;IACjB,KAAKylR,qBAAL,CAA2BzlR,GAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIihR,YAAY,CAACjhR,GAAD,EAAM;IACd,OAAO,KAAKqhE,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACI4sR,YAAY,CAAC1lR,GAAD,EAAM;IACd,KAAKwlR,mBAAL,CAAyBxlR,GAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI2lR,eAAe,CAAC3lR,GAAD,EAAM;IACjB,KAAKylR,qBAAL,CAA2BzlR,GAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI4lR,YAAY,CAAC5lR,GAAD,EAAM;IACd,OAAO,KAAKqhE,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIooR,WAAW,CAAClhR,GAAD,EAAM1X,KAAN,EAAa;IACpB,MAAMukB,IAAI,GAAG,KAAKw0D,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAb;IACA+T,IAAI,CAACsvB,QAAL,CAAc7zC,KAAd;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI64R,QAAQ,CAACC,MAAD,EAAS;IACb,IAAI53R,EAAJ;;IACA,KAAKktR,SAAL,GAAiB,IAAjB;IACAkJ,mBAAmB,CAAC,KAAKv+M,IAAN,EAAY,KAAK6sG,UAAjB,CAAnB;IACA,KAAKyyG,QAAL,CAAcv6Q,IAAd,CAAmBg7Q,MAAnB,EAJa,CAKb;IACA;IACA;;IACA,OAAO,CAAC,CAAC53R,EAAE,GAAG43R,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAACztQ,MAA7D,MAAyE,IAAzE,IAAiFnqB,EAAE,KAAK,KAAK,CAA7F,GAAiG,KAAK,CAAtG,GAA0GA,EAAE,CAACM,MAA9G,MAA0H,QAAjI;EACH;EACD;AACJ;AACA;AACA;;;EACIu3R,OAAO,GAAG;IACN,KAAKC,SAAL;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIA,SAAS,CAACh5R,KAAK,GAAGyF,SAAT,EAAoB;IACzB,KAAKszE,IAAL,CAAU95B,KAAV,CAAgBj/C,KAAhB;IACA,KAAKouR,SAAL,GAAiB,KAAjB;EACH;EACD;;;EACAyO,eAAe,GAAG;IACd,KAAKj3G,UAAL,CAAgBrkL,OAAhB,CAAwBmW,GAAG,IAAI;MAC3B,MAAM6lR,OAAO,GAAG7lR,GAAG,CAACrW,OAApB;MACA,MAAMm8R,OAAO,GAAG,KAAKzkN,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAhB;;MACA,IAAI+sR,OAAO,KAAKC,OAAhB,EAAyB;QACrB;QACA;QACA9H,cAAc,CAAC6H,OAAO,IAAI,IAAZ,EAAkB7lR,GAAlB,CAAd,CAHqB,CAIrB;QACA;QACA;QACA;QACA;;QACA,IAAIiiR,aAAa,CAAC6D,OAAD,CAAjB,EAA4B;UACxBrI,YAAY,CAACqI,OAAD,EAAU9lR,GAAV,CAAZ;UACAA,GAAG,CAACrW,OAAJ,GAAcm8R,OAAd;QACH;MACJ;IACJ,CAjBD;;IAkBA,KAAKzkN,IAAL,CAAUm6M,mBAAV,CAA8B;MAAEljP,SAAS,EAAE;IAAb,CAA9B;EACH;;EACDktP,mBAAmB,CAACxlR,GAAD,EAAM;IACrB,MAAM6M,IAAI,GAAG,KAAKw0D,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAb;IACAqmR,kBAAkB,CAACtyQ,IAAD,EAAO7M,GAAP,CAAlB,CAFqB,CAGrB;IACA;IACA;;IACA6M,IAAI,CAACmuQ,sBAAL,CAA4B;MAAE1iP,SAAS,EAAE;IAAb,CAA5B;EACH;;EACDmtP,qBAAqB,CAACzlR,GAAD,EAAM;IACvB,IAAI,KAAKqhE,IAAT,EAAe;MACX,MAAMx0D,IAAI,GAAG,KAAKw0D,IAAL,CAAU93E,GAAV,CAAcyW,GAAG,CAAClH,IAAlB,CAAb;;MACA,IAAI+T,IAAJ,EAAU;QACN,MAAM4xQ,gBAAgB,GAAGW,oBAAoB,CAACvyQ,IAAD,EAAO7M,GAAP,CAA7C;;QACA,IAAIy+Q,gBAAJ,EAAsB;UAClB;UACA;UACA5xQ,IAAI,CAACmuQ,sBAAL,CAA4B;YAAE1iP,SAAS,EAAE;UAAb,CAA5B;QACH;MACJ;IACJ;EACJ;;EACDgtP,oBAAoB,GAAG;IACnB,KAAKjkN,IAAL,CAAU+6M,2BAAV,CAAsC,KAAK/C,mBAA3C;;IACA,IAAI,KAAKkM,QAAT,EAAmB;MACf,KAAKA,QAAL,CAAcnJ,2BAAd,CAA0C,MAAM,CAAG,CAAnD;IACH;EACJ;;EACDiJ,iBAAiB,GAAG;IAChB1H,eAAe,CAAC,KAAKt8M,IAAN,EAAY,IAAZ,CAAf;;IACA,IAAI,KAAKkkN,QAAT,EAAmB;MACfpH,iBAAiB,CAAC,KAAKoH,QAAN,EAAgB,IAAhB,CAAjB;IACH;EACJ;;EACDH,iBAAiB,GAAG;IAChB,IAAI,CAAC,KAAK/jN,IAAN,KAAe,OAAOoM,SAAP,KAAqB,WAArB,IAAoCA,SAAnD,CAAJ,EAAmE;MAC/D,MAAM6pM,oBAAoB,EAA1B;IACH;EACJ;;AA1Q6C;;AA4QlD4N,kBAAkB,CAACh7R,IAAnB;EAAA,iBAA+Gg7R,kBAA/G,EAx3J2G7hS,+DAw3J3G,CAAmJwuR,aAAnJ,OAx3J2GxuR,+DAw3J3G,CAAyMyuR,mBAAzM;AAAA;;AACAoT,kBAAkB,CAAC96R,IAAnB,kBAz3J2G/G,+DAy3J3G;EAAA,MAAmG6hS,kBAAnG;EAAA;EAAA;IAAA;MAz3J2G7hS,wDAy3J3G;QAAA,OAAmG,oBAAnG;MAAA;QAAA,OAAmG,aAAnG;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WAz3J2GA,gEAy3J3G,CAAoT,CAAC4hS,qBAAD,CAApT,GAz3J2G5hS,wEAy3J3G,EAz3J2GA,kEAy3J3G;AAAA;;AACA;EAAA,mDA13J2GA,+DA03J3G,CAA2F6hS,kBAA3F,EAA2H,CAAC;IAChH76R,IAAI,EAAE/G,oDAD0G;IAEhHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,aADX;MAECC,SAAS,EAAE,CAACk5R,qBAAD,CAFZ;MAGCl2P,IAAI,EAAE;QAAE,YAAY,kBAAd;QAAkC,WAAW;MAA7C,CAHP;MAIClnB,QAAQ,EAAE;IAJX,CAAD;EAF0G,CAAD,CAA3H,EAQ4B,YAAY;IAChC,OAAO,CAAC;MAAExd,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QACxB7W,IAAI,EAAEvG,mDAAQA;MADU,CAAD,EAExB;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFwB,EAIxB;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJwB;IAA/B,CAAD,EAOW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAPX,CAAP;EAeH,CAxBL,EAwBuB;IAAEzwM,IAAI,EAAE,CAAC;MAChBh3E,IAAI,EAAEnG,gDADU;MAEhBoG,IAAI,EAAE,CAAC,WAAD;IAFU,CAAD,CAAR;IAGPq2R,QAAQ,EAAE,CAAC;MACXt2R,IAAI,EAAElG,iDAAMA;IADD,CAAD;EAHH,CAxBvB;AAAA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4hS,qBAAqB,GAAG;EAC1Bp6R,OAAO,EAAEmqR,gBADiB;EAE1BlqR,WAAW,EAAE49G,yDAAU,CAAC,MAAMw8K,aAAP;AAFG,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMA,aAAN,SAA4B9D,0BAA5B,CAAuD;EACnDl6R,WAAW,CAAC0N,MAAD,EAASs9Q,UAAT,EAAqB0F,eAArB,EAAsC;IAC7C;IACA,KAAK/sD,OAAL,GAAej2N,MAAf;;IACA,KAAK0/Q,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;EACH;EACD;;;EACAyJ,gBAAgB,GAAG;IACf,IAAI8D,iBAAiB,CAAC,KAAKt6D,OAAN,CAAjB,KAAoC,OAAOl+I,SAAP,KAAqB,WAArB,IAAoCA,SAAxE,CAAJ,EAAwF;MACpF,MAAM8pM,oBAAoB,EAA1B;IACH;EACJ;;AAZkD;;AAcvDyO,aAAa,CAAC97R,IAAd;EAAA,iBAA0G87R,aAA1G,EAj+J2G3iS,+DAi+J3G,CAAyIyyR,gBAAzI,OAj+J2GzyR,+DAi+J3G,CAAkNwuR,aAAlN,OAj+J2GxuR,+DAi+J3G,CAAwQyuR,mBAAxQ;AAAA;;AACAkU,aAAa,CAAC57R,IAAd,kBAl+J2G/G,+DAk+J3G;EAAA,MAA8F2iS,aAA9F;EAAA;EAAA;IAAA;EAAA;EAAA,WAl+J2G3iS,gEAk+J3G,CAAkM,CAAC0iS,qBAAD,CAAlM,GAl+J2G1iS,wEAk+J3G;AAAA;;AACA;EAAA,mDAn+J2GA,+DAm+J3G,CAA2F2iS,aAA3F,EAAsH,CAAC;IAC3G37R,IAAI,EAAE/G,oDADqG;IAE3GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE,iBAAZ;MAA+BC,SAAS,EAAE,CAACg6R,qBAAD;IAA1C,CAAD;EAFqG,CAAD,CAAtH,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAE17R,IAAI,EAAEyrR,gBAAR;MAA0B50Q,UAAU,EAAE,CAAC;QAC/B7W,IAAI,EAAEvG,mDAAQA;MADiB,CAAD,EAE/B;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAF+B,EAI/B;QACCxnC,IAAI,EAAEpG,mDAAQA;MADf,CAJ+B;IAAtC,CAAD,EAMW;MAAEoG,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJkC;IAA/B,CANX,EAaW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAbX,CAAP;EAqBH,CAzBL,EAyBuB;IAAEjuQ,IAAI,EAAE,CAAC;MAChBxZ,IAAI,EAAEnG,gDADU;MAEhBoG,IAAI,EAAE,CAAC,eAAD;IAFU,CAAD;EAAR,CAzBvB;AAAA;;AA6BA,MAAM47R,qBAAqB,GAAG;EAC1Bv6R,OAAO,EAAEmqR,gBADiB;EAE1BlqR,WAAW,EAAE49G,yDAAU,CAAC,MAAM28K,aAAP;AAFG,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMA,aAAN,SAA4BrQ,gBAA5B,CAA6C;EACzC9tR,WAAW,CAAC0N,MAAD,EAASs9Q,UAAT,EAAqB0F,eAArB,EAAsC;IAC7C;IACA,KAAK/sD,OAAL,GAAej2N,MAAf;;IACA,KAAK0/Q,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIpzQ,QAAQ,GAAG;IACP,KAAK68Q,gBAAL;;IACA,KAAKpM,aAAL,CAAmB2P,YAAnB,CAAgC,IAAhC;EACH;EACD;AACJ;AACA;AACA;;;EACIx8R,WAAW,GAAG;IACV,IAAI,KAAK6sR,aAAT,EAAwB;MACpB,KAAKA,aAAL,CAAmB4P,eAAnB,CAAmC,IAAnC;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACe,IAAPh8R,OAAO,GAAG;IACV,OAAO,KAAKosR,aAAL,CAAmB6P,YAAnB,CAAgC,IAAhC,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAb7P,aAAa,GAAG;IAChB,OAAO,KAAKpqD,OAAL,GAAe,KAAKA,OAAL,CAAaoqD,aAA5B,GAA4C,IAAnD;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJj9Q,IAAI,GAAG;IACP,OAAO0kR,WAAW,CAAC,KAAK35Q,IAAL,IAAa,IAAb,GAAoB,KAAKA,IAAzB,GAAgC,KAAKA,IAAL,CAAUnZ,QAAV,EAAjC,EAAuD,KAAKihO,OAA5D,CAAlB;EACH;;EACDw2D,gBAAgB,GAAG;IACf,IAAI8D,iBAAiB,CAAC,KAAKt6D,OAAN,CAAjB,KAAoC,OAAOl+I,SAAP,KAAqB,WAArB,IAAoCA,SAAxE,CAAJ,EAAwF;MACpF,MAAM+pM,oBAAoB,EAA1B;IACH;EACJ;;AAnDwC;;AAqD7C2O,aAAa,CAACj8R,IAAd;EAAA,iBAA0Gi8R,aAA1G,EAjlK2G9iS,+DAilK3G,CAAyIyyR,gBAAzI,OAjlK2GzyR,+DAilK3G,CAAkNwuR,aAAlN,OAjlK2GxuR,+DAilK3G,CAAwQyuR,mBAAxQ;AAAA;;AACAqU,aAAa,CAAC/7R,IAAd,kBAllK2G/G,+DAklK3G;EAAA,MAA8F8iS,aAA9F;EAAA;EAAA;IAAA;EAAA;EAAA,WAllK2G9iS,gEAklK3G,CAAkM,CAAC6iS,qBAAD,CAAlM,GAllK2G7iS,wEAklK3G;AAAA;;AACA;EAAA,mDAnlK2GA,+DAmlK3G,CAA2F8iS,aAA3F,EAAsH,CAAC;IAC3G97R,IAAI,EAAE/G,oDADqG;IAE3GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE,iBAAZ;MAA+BC,SAAS,EAAE,CAACm6R,qBAAD;IAA1C,CAAD;EAFqG,CAAD,CAAtH,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAE77R,IAAI,EAAEyrR,gBAAR;MAA0B50Q,UAAU,EAAE,CAAC;QAC/B7W,IAAI,EAAEvG,mDAAQA;MADiB,CAAD,EAE/B;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAF+B,EAI/B;QACCxnC,IAAI,EAAEpG,mDAAQA;MADf,CAJ+B;IAAtC,CAAD,EAMW;MAAEoG,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJkC;IAA/B,CANX,EAaW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAbX,CAAP;EAqBH,CAzBL,EAyBuB;IAAEjuQ,IAAI,EAAE,CAAC;MAChBxZ,IAAI,EAAEnG,gDADU;MAEhBoG,IAAI,EAAE,CAAC,eAAD;IAFU,CAAD;EAAR,CAzBvB;AAAA;;AA6BA,SAAS27R,iBAAT,CAA2BvwR,MAA3B,EAAmC;EAC/B,OAAO,EAAEA,MAAM,YAAYswR,aAApB,KAAsC,EAAEtwR,MAAM,YAAYwvR,kBAApB,CAAtC,IACH,EAAExvR,MAAM,YAAYywR,aAApB,CADJ;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,kBAAkB,GAAG;EACvBz6R,OAAO,EAAEjH,SADc;EAEvBkH,WAAW,EAAE49G,yDAAU,CAAC,MAAM68K,eAAP;AAFA,CAA3B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMA,eAAN,SAA8B3hS,SAA9B,CAAwC;EACpCsD,WAAW,CAAC0N,MAAD,EAASs9Q,UAAT,EAAqB0F,eAArB,EAAsCoH,cAAtC,EAAsDgF,qBAAtD,EAA6E;IACpF;IACA,KAAKA,qBAAL,GAA6BA,qBAA7B;IACA,KAAKwB,MAAL,GAAc,KAAd;IACA;;IACA,KAAK9rQ,MAAL,GAAc,IAAIz2B,uDAAJ,EAAd;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKu8R,mBAAL,GAA2B,KAA3B;IACA,KAAK30D,OAAL,GAAej2N,MAAf;;IACA,KAAK0/Q,cAAL,CAAoBpC,UAApB;;IACA,KAAKsC,mBAAL,CAAyBoD,eAAzB;;IACA,KAAK7C,aAAL,GAAqBgK,mBAAmB,CAAC,IAAD,EAAOC,cAAP,CAAxC;EACH;EACD;AACJ;AACA;AACA;;;EACkB,IAAV92R,UAAU,CAACA,UAAD,EAAa;IACvB,IAAI,OAAOykF,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C/mE,OAAO,CAACC,IAAR,CAAa8wQ,mBAAb;IACH;EACJ;EACD;;;EACAttQ,WAAW,CAACc,OAAD,EAAU;IACjB,IAAI,CAAC,KAAKq7Q,MAAV,EACI,KAAKnD,aAAL;;IACJ,IAAI1D,iBAAiB,CAACx0Q,OAAD,EAAU,KAAKy0Q,SAAf,CAArB,EAAgD;MAC5C,IAAI,OAAOjyM,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;QAC/C0yM,eAAe,CAAC,iBAAD,EAAoBkG,eAApB,EAAqC,IAArC,EAA2C,KAAKvB,qBAAhD,CAAf;MACH;;MACD,KAAKpF,SAAL,GAAiB,KAAK2D,KAAtB;MACA,KAAKtN,aAAL,CAAmBmL,WAAnB,CAA+B,IAA/B,EAAqC,KAAKmC,KAA1C;IACH;EACJ;EACD;;;EACAn6R,WAAW,GAAG;IACV,IAAI,KAAK6sR,aAAT,EAAwB;MACpB,KAAKA,aAAL,CAAmB4G,aAAnB,CAAiC,IAAjC;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIqC,iBAAiB,CAACtsP,QAAD,EAAW;IACxB,KAAKgtP,SAAL,GAAiBhtP,QAAjB;IACA,KAAKlY,MAAL,CAAYpU,IAAZ,CAAiBssB,QAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJ55B,IAAI,GAAG;IACP,OAAO0kR,WAAW,CAAC,KAAK35Q,IAAL,IAAa,IAAb,GAAoB,KAAKA,IAAzB,GAAgC,KAAKA,IAAL,CAAUnZ,QAAV,EAAjC,EAAuD,KAAKihO,OAA5D,CAAlB;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAboqD,aAAa,GAAG;IAChB,OAAO,KAAKpqD,OAAL,GAAe,KAAKA,OAAL,CAAaoqD,aAA5B,GAA4C,IAAnD;EACH;;EACDoM,gBAAgB,GAAG;IACf,IAAI,OAAO10M,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C,IAAI,EAAE,KAAKk+I,OAAL,YAAwBq6D,aAA1B,KACA,KAAKr6D,OAAL,YAAwBu2D,0BAD5B,EACwD;QACpD,MAAM7K,qBAAqB,EAA3B;MACH,CAHD,MAIK,IAAI,EAAE,KAAK1rD,OAAL,YAAwBq6D,aAA1B,KACL,EAAE,KAAKr6D,OAAL,YAAwBu5D,kBAA1B,CADK,IAEL,EAAE,KAAKv5D,OAAL,YAAwBw6D,aAA1B,CAFC,EAEyC;QAC1C,MAAM/O,sBAAsB,EAA5B;MACH;IACJ;EACJ;;EACD+L,aAAa,GAAG;IACZ,KAAKhB,gBAAL;;IACA,KAAKx4R,OAAL,GAAe,KAAKosR,aAAL,CAAmB2G,UAAnB,CAA8B,IAA9B,CAAf;IACA,KAAK4J,MAAL,GAAc,IAAd;EACH;;AAzFmC;AA2FxC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAD,eAAe,CAAChG,uBAAhB,GAA0C,KAA1C;;AACAgG,eAAe,CAACn8R,IAAhB;EAAA,iBAA4Gm8R,eAA5G,EArwK2GhjS,+DAqwK3G,CAA6IyyR,gBAA7I,OArwK2GzyR,+DAqwK3G,CAAsNwuR,aAAtN,OArwK2GxuR,+DAqwK3G,CAA4QyuR,mBAA5Q,OArwK2GzuR,+DAqwK3G,CAAwUsB,iBAAxU,OArwK2GtB,+DAqwK3G,CAAkYshS,kCAAlY;AAAA;;AACA0B,eAAe,CAACj8R,IAAhB,kBAtwK2G/G,+DAswK3G;EAAA,MAAgGgjS,eAAhG;EAAA;EAAA;IAAA;IAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAtwK2GhjS,gEAswK3G,CAAqT,CAAC+iS,kBAAD,CAArT,GAtwK2G/iS,wEAswK3G,EAtwK2GA,kEAswK3G;AAAA;;AACA;EAAA,mDAvwK2GA,+DAuwK3G,CAA2FgjS,eAA3F,EAAwH,CAAC;IAC7Gh8R,IAAI,EAAE/G,oDADuG;IAE7GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE,mBAAZ;MAAiCC,SAAS,EAAE,CAACq6R,kBAAD;IAA5C,CAAD;EAFuG,CAAD,CAAxH,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAE/7R,IAAI,EAAEyrR,gBAAR;MAA0B50Q,UAAU,EAAE,CAAC;QAC/B7W,IAAI,EAAEvG,mDAAQA;MADiB,CAAD,EAE/B;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAF+B,EAI/B;QACCxnC,IAAI,EAAEpG,mDAAQA;MADf,CAJ+B;IAAtC,CAAD,EAMW;MAAEoG,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACunR,aAAD;MAFP,CAJkC;IAA/B,CANX,EAaW;MAAExnR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACwnR,mBAAD;MAFP,CAJkC;IAA/B,CAbX,EAoBW;MAAEznR,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAE6zM,+CAAIA;MADX,CAFkC,EAIlC;QACC7zM,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAAC3F,iBAAD;MAFP,CAJkC;IAA/B,CApBX,EA2BW;MAAE0F,IAAI,EAAE0D,SAAR;MAAmBmT,UAAU,EAAE,CAAC;QAClC7W,IAAI,EAAEvG,mDAAQA;MADoB,CAAD,EAElC;QACCuG,IAAI,EAAExG,iDADP;QAECyG,IAAI,EAAE,CAACq6R,kCAAD;MAFP,CAFkC;IAA/B,CA3BX,CAAP;EAiCH,CArCL,EAqCuB;IAAE9gR,IAAI,EAAE,CAAC;MAChBxZ,IAAI,EAAEnG,gDADU;MAEhBoG,IAAI,EAAE,CAAC,iBAAD;IAFU,CAAD,CAAR;IAGPtB,UAAU,EAAE,CAAC;MACbqB,IAAI,EAAEnG,gDADO;MAEboG,IAAI,EAAE,CAAC,UAAD;IAFO,CAAD,CAHL;IAMP+4R,KAAK,EAAE,CAAC;MACRh5R,IAAI,EAAEnG,gDADE;MAERoG,IAAI,EAAE,CAAC,SAAD;IAFE,CAAD,CANA;IASPkwB,MAAM,EAAE,CAAC;MACTnwB,IAAI,EAAElG,iDADG;MAETmG,IAAI,EAAE,CAAC,eAAD;IAFG,CAAD;EATD,CArCvB;AAAA;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMi8R,qBAAqB,GAAG;EAC1B56R,OAAO,EAAEhH,iBADiB;EAE1BiH,WAAW,EAAE49G,yDAAU,CAAC,MAAMg9K,0BAAP,CAFG;EAG1B36R,KAAK,EAAE;AAHmB,CAA9B;;AAKA,SAAS46R,mBAAT,CAA6B3uR,EAA7B,EAAiCxP,KAAjC,EAAwC;EACpC,IAAIwP,EAAE,IAAI,IAAV,EACI,OAAQ,GAAExP,KAAM,EAAhB;EACJ,IAAIA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA9B,EACIA,KAAK,GAAG,QAAR;EACJ,OAAQ,GAAEwP,EAAG,KAAIxP,KAAM,EAAhB,CAAkBmS,KAAlB,CAAwB,CAAxB,EAA2B,EAA3B,CAAP;AACH;;AACD,SAASisR,YAAT,CAAsBC,WAAtB,EAAmC;EAC/B,OAAOA,WAAW,CAAC5tR,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMytR,0BAAN,SAAyC5V,2BAAzC,CAAqE;EACjE5oR,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKs5R,UAAL,GAAkB,IAAI3gR,GAAJ,EAAlB;IACA;;IACA,KAAK4gR,UAAL,GAAkB,CAAlB;IACA,KAAKC,YAAL,GAAoBj6R,MAAM,CAAC8S,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACmB,IAAXonR,WAAW,CAACl+R,EAAD,EAAK;IAChB,IAAI,OAAOA,EAAP,KAAc,UAAd,KAA6B,OAAO4kF,SAAP,KAAqB,WAArB,IAAoCA,SAAjE,CAAJ,EAAiF;MAC7E,MAAM,IAAIza,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,gDAA+C1iB,IAAI,CAACG,SAAL,CAAe5nD,EAAf,CAAmB,EAAvI,CAAN;IACH;;IACD,KAAKi+R,YAAL,GAAoBj+R,EAApB;EACH;EACD;AACJ;AACA;AACA;;;EACIR,UAAU,CAACC,KAAD,EAAQ;IACd,KAAKA,KAAL,GAAaA,KAAb;;IACA,MAAMwP,EAAE,GAAG,KAAKkvR,YAAL,CAAkB1+R,KAAlB,CAAX;;IACA,MAAMq+R,WAAW,GAAGF,mBAAmB,CAAC3uR,EAAD,EAAKxP,KAAL,CAAvC;;IACA,KAAK6qB,WAAL,CAAiB,OAAjB,EAA0BwzQ,WAA1B;EACH;EACD;AACJ;AACA;AACA;;;EACI/9R,gBAAgB,CAACC,EAAD,EAAK;IACjB,KAAKV,QAAL,GAAiBw+R,WAAD,IAAiB;MAC7B,KAAKr+R,KAAL,GAAa,KAAK2+R,eAAL,CAAqBN,WAArB,CAAb;MACA99R,EAAE,CAAC,KAAKP,KAAN,CAAF;IACH,CAHD;EAIH;EACD;;;EACA4+R,eAAe,GAAG;IACd,OAAO,CAAC,KAAKL,UAAL,EAAD,EAAoBn8R,QAApB,EAAP;EACH;EACD;;;EACAs8R,YAAY,CAAC1+R,KAAD,EAAQ;IAChB,KAAK,MAAMwP,EAAX,IAAiBoL,KAAK,CAACwb,IAAN,CAAW,KAAKkoQ,UAAL,CAAgB12Q,IAAhB,EAAX,CAAjB,EAAqD;MACjD,IAAI,KAAK42Q,YAAL,CAAkB,KAAKF,UAAL,CAAgBr9R,GAAhB,CAAoBuO,EAApB,CAAlB,EAA2CxP,KAA3C,CAAJ,EACI,OAAOwP,EAAP;IACP;;IACD,OAAO,IAAP;EACH;EACD;;;EACAmvR,eAAe,CAACN,WAAD,EAAc;IACzB,MAAM7uR,EAAE,GAAG4uR,YAAY,CAACC,WAAD,CAAvB;;IACA,OAAO,KAAKC,UAAL,CAAgB93P,GAAhB,CAAoBh3B,EAApB,IAA0B,KAAK8uR,UAAL,CAAgBr9R,GAAhB,CAAoBuO,EAApB,CAA1B,GAAoD6uR,WAA3D;EACH;;AAxDgE;;AA0DrEH,0BAA0B,CAACt8R,IAA3B;EAAA;EAAA;IAAA,8FAl8K2G7G,mEAk8K3G,CAAuHmjS,0BAAvH,SAAuHA,0BAAvH;EAAA;AAAA;;AACAA,0BAA0B,CAACp8R,IAA3B,kBAn8K2G/G,+DAm8K3G;EAAA,MAA2GmjS,0BAA3G;EAAA;EAAA;IAAA;MAn8K2GnjS,wDAm8K3G;QAAA,OAA2G,iCAA3G;MAAA;QAAA,OAA2G,eAA3G;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAn8K2GA,gEAm8K3G,CAA8Y,CAACkjS,qBAAD,CAA9Y,GAn8K2GljS,wEAm8K3G;AAAA;;AACA;EAAA,mDAp8K2GA,+DAo8K3G,CAA2FmjS,0BAA3F,EAAmI,CAAC;IACxHn8R,IAAI,EAAE/G,oDADkH;IAExHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,6GADX;MAECijC,IAAI,EAAE;QAAE,YAAY,+BAAd;QAA+C,UAAU;MAAzD,CAFP;MAGChjC,SAAS,EAAE,CAACw6R,qBAAD;IAHZ,CAAD;EAFkH,CAAD,CAAnI,QAO4B;IAAEQ,WAAW,EAAE,CAAC;MAC5B18R,IAAI,EAAEnG,gDAAKA;IADiB,CAAD;EAAf,CAP5B;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMijS,cAAN,CAAqB;EACjBn/R,WAAW,CAACo/R,QAAD,EAAWp8M,SAAX,EAAsBq8M,OAAtB,EAA+B;IACtC,KAAKD,QAAL,GAAgBA,QAAhB;IACA,KAAKp8M,SAAL,GAAiBA,SAAjB;IACA,KAAKq8M,OAAL,GAAeA,OAAf;IACA,IAAI,KAAKA,OAAT,EACI,KAAKvvR,EAAL,GAAU,KAAKuvR,OAAL,CAAaH,eAAb,EAAV;EACP;EACD;AACJ;AACA;AACA;AACA;;;EACe,IAAPI,OAAO,CAACh/R,KAAD,EAAQ;IACf,IAAI,KAAK++R,OAAL,IAAgB,IAApB,EACI;;IACJ,KAAKA,OAAL,CAAaT,UAAb,CAAwB75R,GAAxB,CAA4B,KAAK+K,EAAjC,EAAqCxP,KAArC;;IACA,KAAKi/R,gBAAL,CAAsBd,mBAAmB,CAAC,KAAK3uR,EAAN,EAAUxP,KAAV,CAAzC;;IACA,KAAK++R,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACa,IAALA,KAAK,CAACA,KAAD,EAAQ;IACb,KAAKi/R,gBAAL,CAAsBj/R,KAAtB;;IACA,IAAI,KAAK++R,OAAT,EACI,KAAKA,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;EACP;EACD;;;EACAi/R,gBAAgB,CAACj/R,KAAD,EAAQ;IACpB,KAAK0iF,SAAL,CAAe73D,WAAf,CAA2B,KAAKi0Q,QAAL,CAAc7+R,aAAzC,EAAwD,OAAxD,EAAiED,KAAjE;EACH;EACD;;;EACAY,WAAW,GAAG;IACV,IAAI,KAAKm+R,OAAT,EAAkB;MACd,KAAKA,OAAL,CAAaT,UAAb,CAAwBtxR,MAAxB,CAA+B,KAAKwC,EAApC;;MACA,KAAKuvR,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;IACH;EACJ;;AAxCgB;;AA0CrB6+R,cAAc,CAACj9R,IAAf;EAAA,iBAA2Gi9R,cAA3G,EAlgL2G9jS,+DAkgL3G,CAA2IA,qDAA3I,GAlgL2GA,+DAkgL3G,CAAqKA,oDAArK,GAlgL2GA,+DAkgL3G,CAA8LmjS,0BAA9L;AAAA;;AACAW,cAAc,CAAC/8R,IAAf,kBAngL2G/G,+DAmgL3G;EAAA,MAA+F8jS,cAA/F;EAAA;EAAA;IAAA;IAAA;EAAA;AAAA;;AACA;EAAA,mDApgL2G9jS,+DAogL3G,CAA2F8jS,cAA3F,EAAuH,CAAC;IAC5G98R,IAAI,EAAE/G,oDADsG;IAE5GgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE;IAAZ,CAAD;EAFsG,CAAD,CAAvH,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,qDAAa8G;IAArB,CAAD,EAA0B;MAAEE,IAAI,EAAEhH,oDAAYowE;IAApB,CAA1B,EAAkD;MAAEppE,IAAI,EAAEm8R,0BAAR;MAAoCtlR,UAAU,EAAE,CAAC;QAC1F7W,IAAI,EAAEvG,mDAAQA;MAD4E,CAAD,EAE1F;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAF0F;IAAhD,CAAlD,CAAP;EAKH,CATL,EASuB;IAAEy1P,OAAO,EAAE,CAAC;MACnBj9R,IAAI,EAAEnG,gDADa;MAEnBoG,IAAI,EAAE,CAAC,SAAD;IAFa,CAAD,CAAX;IAGPhC,KAAK,EAAE,CAAC;MACR+B,IAAI,EAAEnG,gDADE;MAERoG,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD;EAHA,CATvB;AAAA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMk9R,8BAA8B,GAAG;EACnC77R,OAAO,EAAEhH,iBAD0B;EAEnCiH,WAAW,EAAE49G,yDAAU,CAAC,MAAMi+K,kCAAP,CAFY;EAGnC57R,KAAK,EAAE;AAH4B,CAAvC;;AAKA,SAAS67R,iBAAT,CAA2B5vR,EAA3B,EAA+BxP,KAA/B,EAAsC;EAClC,IAAIwP,EAAE,IAAI,IAAV,EACI,OAAQ,GAAExP,KAAM,EAAhB;EACJ,IAAI,OAAOA,KAAP,KAAiB,QAArB,EACIA,KAAK,GAAI,IAAGA,KAAM,GAAlB;EACJ,IAAIA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA9B,EACIA,KAAK,GAAG,QAAR;EACJ,OAAQ,GAAEwP,EAAG,KAAIxP,KAAM,EAAhB,CAAkBmS,KAAlB,CAAwB,CAAxB,EAA2B,EAA3B,CAAP;AACH;;AACD,SAASktR,UAAT,CAAoBhB,WAApB,EAAiC;EAC7B,OAAOA,WAAW,CAAC5tR,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAP;AACH;AACD;;;AACA,MAAM6uR,cAAN,CAAqB;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMH,kCAAN,SAAiD7W,2BAAjD,CAA6E;EACzE5oR,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKs5R,UAAL,GAAkB,IAAI3gR,GAAJ,EAAlB;IACA;;IACA,KAAK4gR,UAAL,GAAkB,CAAlB;IACA,KAAKC,YAAL,GAAoBj6R,MAAM,CAAC8S,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACmB,IAAXonR,WAAW,CAACl+R,EAAD,EAAK;IAChB,IAAI,OAAOA,EAAP,KAAc,UAAd,KAA6B,OAAO4kF,SAAP,KAAqB,WAArB,IAAoCA,SAAjE,CAAJ,EAAiF;MAC7E,MAAM,IAAIza,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,gDAA+C1iB,IAAI,CAACG,SAAL,CAAe5nD,EAAf,CAAmB,EAAvI,CAAN;IACH;;IACD,KAAKi+R,YAAL,GAAoBj+R,EAApB;EACH;EACD;AACJ;AACA;AACA;;;EACIR,UAAU,CAACC,KAAD,EAAQ;IACd,KAAKA,KAAL,GAAaA,KAAb;IACA,IAAIu/R,yBAAJ;;IACA,IAAI3kR,KAAK,CAACC,OAAN,CAAc7a,KAAd,CAAJ,EAA0B;MACtB;MACA,MAAMw/R,GAAG,GAAGx/R,KAAK,CAACoO,GAAN,CAAWkB,CAAD,IAAO,KAAKovR,YAAL,CAAkBpvR,CAAlB,CAAjB,CAAZ;;MACAiwR,yBAAyB,GAAG,CAACE,GAAD,EAAMlvQ,CAAN,KAAY;QACpCkvQ,GAAG,CAACC,YAAJ,CAAiBF,GAAG,CAAC/xR,OAAJ,CAAY8iB,CAAC,CAACnuB,QAAF,EAAZ,IAA4B,CAAC,CAA9C;MACH,CAFD;IAGH,CAND,MAOK;MACDm9R,yBAAyB,GAAG,CAACE,GAAD,EAAMlvQ,CAAN,KAAY;QACpCkvQ,GAAG,CAACC,YAAJ,CAAiB,KAAjB;MACH,CAFD;IAGH;;IACD,KAAKpB,UAAL,CAAgB/8R,OAAhB,CAAwBg+R,yBAAxB;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIj/R,gBAAgB,CAACC,EAAD,EAAK;IACjB,KAAKV,QAAL,GAAiBoC,OAAD,IAAa;MACzB,MAAM09R,QAAQ,GAAG,EAAjB;MACA,MAAMC,eAAe,GAAG39R,OAAO,CAAC29R,eAAhC;;MACA,IAAIA,eAAe,KAAKn6R,SAAxB,EAAmC;QAC/B,MAAMwU,OAAO,GAAG2lR,eAAhB;;QACA,KAAK,IAAIj9R,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsX,OAAO,CAAC5X,MAA5B,EAAoCM,CAAC,EAArC,EAAyC;UACrC,MAAM88R,GAAG,GAAGxlR,OAAO,CAACtX,CAAD,CAAnB;;UACA,MAAM+B,GAAG,GAAG,KAAKi6R,eAAL,CAAqBc,GAAG,CAACz/R,KAAzB,CAAZ;;UACA2/R,QAAQ,CAAC98R,IAAT,CAAc6B,GAAd;QACH;MACJ,CAPD,CAQA;MACA;MACA;MAVA,KAWK;QACD,MAAMuV,OAAO,GAAGhY,OAAO,CAACgY,OAAxB;;QACA,KAAK,IAAItX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsX,OAAO,CAAC5X,MAA5B,EAAoCM,CAAC,EAArC,EAAyC;UACrC,MAAM88R,GAAG,GAAGxlR,OAAO,CAACtX,CAAD,CAAnB;;UACA,IAAI88R,GAAG,CAACE,QAAR,EAAkB;YACd,MAAMj7R,GAAG,GAAG,KAAKi6R,eAAL,CAAqBc,GAAG,CAACz/R,KAAzB,CAAZ;;YACA2/R,QAAQ,CAAC98R,IAAT,CAAc6B,GAAd;UACH;QACJ;MACJ;;MACD,KAAK1E,KAAL,GAAa2/R,QAAb;MACAp/R,EAAE,CAACo/R,QAAD,CAAF;IACH,CA1BD;EA2BH;EACD;;;EACAf,eAAe,CAAC5+R,KAAD,EAAQ;IACnB,MAAMwP,EAAE,GAAG,CAAC,KAAK+uR,UAAL,EAAD,EAAoBn8R,QAApB,EAAX;;IACA,KAAKk8R,UAAL,CAAgB75R,GAAhB,CAAoB+K,EAApB,EAAwBxP,KAAxB;;IACA,OAAOwP,EAAP;EACH;EACD;;;EACAkvR,YAAY,CAAC1+R,KAAD,EAAQ;IAChB,KAAK,MAAMwP,EAAX,IAAiBoL,KAAK,CAACwb,IAAN,CAAW,KAAKkoQ,UAAL,CAAgB12Q,IAAhB,EAAX,CAAjB,EAAqD;MACjD,IAAI,KAAK42Q,YAAL,CAAkB,KAAKF,UAAL,CAAgBr9R,GAAhB,CAAoBuO,EAApB,EAAwBooD,MAA1C,EAAkD53D,KAAlD,CAAJ,EACI,OAAOwP,EAAP;IACP;;IACD,OAAO,IAAP;EACH;EACD;;;EACAmvR,eAAe,CAACN,WAAD,EAAc;IACzB,MAAM7uR,EAAE,GAAG6vR,UAAU,CAAChB,WAAD,CAArB;;IACA,OAAO,KAAKC,UAAL,CAAgB93P,GAAhB,CAAoBh3B,EAApB,IAA0B,KAAK8uR,UAAL,CAAgBr9R,GAAhB,CAAoBuO,EAApB,EAAwBooD,MAAlD,GAA2DymO,WAAlE;EACH;;AA7FwE;;AA+F7Ec,kCAAkC,CAACv9R,IAAnC;EAAA;EAAA;IAAA,8GAlrL2G7G,mEAkrL3G,CAA+HokS,kCAA/H,SAA+HA,kCAA/H;EAAA;AAAA;;AACAA,kCAAkC,CAACr9R,IAAnC,kBAnrL2G/G,+DAmrL3G;EAAA,MAAmHokS,kCAAnH;EAAA;EAAA;IAAA;MAnrL2GpkS,wDAmrL3G;QAAA,OAAmH,2BAAnH;MAAA;QAAA,OAAmH,eAAnH;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAnrL2GA,gEAmrL3G,CAAsY,CAACmkS,8BAAD,CAAtY,GAnrL2GnkS,wEAmrL3G;AAAA;;AACA;EAAA,mDAprL2GA,+DAorL3G,CAA2FokS,kCAA3F,EAA2I,CAAC;IAChIp9R,IAAI,EAAE/G,oDAD0H;IAEhIgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,2FADX;MAECijC,IAAI,EAAE;QAAE,YAAY,yBAAd;QAAyC,UAAU;MAAnD,CAFP;MAGChjC,SAAS,EAAE,CAACy7R,8BAAD;IAHZ,CAAD;EAF0H,CAAD,CAA3I,QAO4B;IAAET,WAAW,EAAE,CAAC;MAC5B18R,IAAI,EAAEnG,gDAAKA;IADiB,CAAD;EAAf,CAP5B;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMikS,uBAAN,CAA8B;EAC1BngS,WAAW,CAACo/R,QAAD,EAAWp8M,SAAX,EAAsBq8M,OAAtB,EAA+B;IACtC,KAAKD,QAAL,GAAgBA,QAAhB;IACA,KAAKp8M,SAAL,GAAiBA,SAAjB;IACA,KAAKq8M,OAAL,GAAeA,OAAf;;IACA,IAAI,KAAKA,OAAT,EAAkB;MACd,KAAKvvR,EAAL,GAAU,KAAKuvR,OAAL,CAAaH,eAAb,CAA6B,IAA7B,CAAV;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;;;EACe,IAAPI,OAAO,CAACh/R,KAAD,EAAQ;IACf,IAAI,KAAK++R,OAAL,IAAgB,IAApB,EACI;IACJ,KAAKnnO,MAAL,GAAc53D,KAAd;;IACA,KAAKi/R,gBAAL,CAAsBG,iBAAiB,CAAC,KAAK5vR,EAAN,EAAUxP,KAAV,CAAvC;;IACA,KAAK++R,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACa,IAALA,KAAK,CAACA,KAAD,EAAQ;IACb,IAAI,KAAK++R,OAAT,EAAkB;MACd,KAAKnnO,MAAL,GAAc53D,KAAd;;MACA,KAAKi/R,gBAAL,CAAsBG,iBAAiB,CAAC,KAAK5vR,EAAN,EAAUxP,KAAV,CAAvC;;MACA,KAAK++R,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;IACH,CAJD,MAKK;MACD,KAAKi/R,gBAAL,CAAsBj/R,KAAtB;IACH;EACJ;EACD;;;EACAi/R,gBAAgB,CAACj/R,KAAD,EAAQ;IACpB,KAAK0iF,SAAL,CAAe73D,WAAf,CAA2B,KAAKi0Q,QAAL,CAAc7+R,aAAzC,EAAwD,OAAxD,EAAiED,KAAjE;EACH;EACD;;;EACA0/R,YAAY,CAACC,QAAD,EAAW;IACnB,KAAKj9M,SAAL,CAAe73D,WAAf,CAA2B,KAAKi0Q,QAAL,CAAc7+R,aAAzC,EAAwD,UAAxD,EAAoE0/R,QAApE;EACH;EACD;;;EACA/+R,WAAW,GAAG;IACV,IAAI,KAAKm+R,OAAT,EAAkB;MACd,KAAKA,OAAL,CAAaT,UAAb,CAAwBtxR,MAAxB,CAA+B,KAAKwC,EAApC;;MACA,KAAKuvR,OAAL,CAAah/R,UAAb,CAAwB,KAAKg/R,OAAL,CAAa/+R,KAArC;IACH;EACJ;;AAlDyB;;AAoD9B6/R,uBAAuB,CAACj+R,IAAxB;EAAA,iBAAoHi+R,uBAApH,EA5vL2G9kS,+DA4vL3G,CAA6JA,qDAA7J,GA5vL2GA,+DA4vL3G,CAAuLA,oDAAvL,GA5vL2GA,+DA4vL3G,CAAgNokS,kCAAhN;AAAA;;AACAU,uBAAuB,CAAC/9R,IAAxB,kBA7vL2G/G,+DA6vL3G;EAAA,MAAwG8kS,uBAAxG;EAAA;EAAA;IAAA;IAAA;EAAA;AAAA;;AACA;EAAA,mDA9vL2G9kS,+DA8vL3G,CAA2F8kS,uBAA3F,EAAgI,CAAC;IACrH99R,IAAI,EAAE/G,oDAD+G;IAErHgH,IAAI,EAAE,CAAC;MAAEwB,QAAQ,EAAE;IAAZ,CAAD;EAF+G,CAAD,CAAhI,EAG4B,YAAY;IAChC,OAAO,CAAC;MAAEzB,IAAI,EAAEhH,qDAAa8G;IAArB,CAAD,EAA0B;MAAEE,IAAI,EAAEhH,oDAAYowE;IAApB,CAA1B,EAAkD;MAAEppE,IAAI,EAAEo9R,kCAAR;MAA4CvmR,UAAU,EAAE,CAAC;QAClG7W,IAAI,EAAEvG,mDAAQA;MADoF,CAAD,EAElG;QACCuG,IAAI,EAAEwnC,+CAAIA;MADX,CAFkG;IAAxD,CAAlD,CAAP;EAKH,CATL,EASuB;IAAEy1P,OAAO,EAAE,CAAC;MACnBj9R,IAAI,EAAEnG,gDADa;MAEnBoG,IAAI,EAAE,CAAC,SAAD;IAFa,CAAD,CAAX;IAGPhC,KAAK,EAAE,CAAC;MACR+B,IAAI,EAAEnG,gDADE;MAERoG,IAAI,EAAE,CAAC,OAAD;IAFE,CAAD;EAHA,CATvB;AAAA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS89R,SAAT,CAAmB9/R,KAAnB,EAA0B;EACtB,OAAO,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCihF,QAAQ,CAACjhF,KAAD,EAAQ,EAAR,CAAnD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+/R,OAAT,CAAiB//R,KAAjB,EAAwB;EACpB,OAAO,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC2D,UAAU,CAAC3D,KAAD,CAArD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMggS,0BAAN,CAAiC;EAC7BtgS,WAAW,GAAG;IACV,KAAKugS,UAAL,GAAkBzV,aAAlB;EACH;EACD;;;EACA3oQ,WAAW,CAACc,OAAD,EAAU;IACjB,IAAI,KAAK41E,SAAL,IAAkB51E,OAAtB,EAA+B;MAC3B,MAAMzgB,KAAK,GAAG,KAAKg+R,cAAL,CAAoBv9Q,OAAO,CAAC,KAAK41E,SAAN,CAAP,CAAwB11E,YAA5C,CAAd;MACA,KAAKs9Q,QAAL,GAAgB,KAAKr8M,OAAL,CAAa5hF,KAAb,CAAhB;MACA,KAAK+9R,UAAL,GAAkB,KAAKE,QAAL,GAAgB,KAAKC,eAAL,CAAqBl+R,KAArB,CAAhB,GAA8CsoR,aAAhE;;MACA,IAAI,KAAK6O,SAAT,EAAoB;QAChB,KAAKA,SAAL;MACH;IACJ;EACJ;EACD;;;EACAjO,QAAQ,CAAC/pR,OAAD,EAAU;IACd,OAAO,KAAK4+R,UAAL,CAAgB5+R,OAAhB,CAAP;EACH;EACD;;;EACAy0R,yBAAyB,CAACv1R,EAAD,EAAK;IAC1B,KAAK84R,SAAL,GAAiB94R,EAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIujF,OAAO,CAAC5hF,KAAD,EAAQ;IACX,OAAOA,KAAK,IAAI;IAAK;IAArB;EACH;;AAhC4B;;AAkCjC89R,0BAA0B,CAACp+R,IAA3B;EAAA,iBAAuHo+R,0BAAvH;AAAA;;AACAA,0BAA0B,CAACl+R,IAA3B,kBAj1L2G/G,+DAi1L3G;EAAA,MAA2GilS,0BAA3G;EAAA,WAj1L2GjlS,kEAi1L3G;AAAA;;AACA;EAAA,mDAl1L2GA,+DAk1L3G,CAA2FilS,0BAA3F,EAAmI,CAAC;IACxHj+R,IAAI,EAAE/G,oDAASA;EADyG,CAAD,CAAnI;AAAA;AAGA;AACA;AACA;AACA;;;AACA,MAAMqlS,aAAa,GAAG;EAClBh9R,OAAO,EAAEkmR,aADS;EAElBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAMo/K,YAAP,CAFL;EAGlB/8R,KAAK,EAAE;AAHW,CAAtB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+8R,YAAN,SAA2BN,0BAA3B,CAAsD;EAClDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,KAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAuBh+R,KAAD,IAAW69R,OAAO,CAAC79R,KAAD,CAAxC;IACA;;;IACA,KAAKk+R,eAAL,GAAwBvrQ,GAAD,IAAS+0P,YAAY,CAAC/0P,GAAD,CAA5C;EACH;;AATiD;;AAWtDyrQ,YAAY,CAAC1+R,IAAb;EAAA;EAAA;IAAA,kEA93L2G7G,mEA83L3G,CAAyGulS,YAAzG,SAAyGA,YAAzG;EAAA;AAAA;;AACAA,YAAY,CAACx+R,IAAb,kBA/3L2G/G,+DA+3L3G;EAAA,MAA6FulS,YAA7F;EAAA;EAAA;EAAA;IAAA;MA/3L2GvlS,yDA+3L3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WA/3L2GA,gEA+3L3G,CAAyU,CAACslS,aAAD,CAAzU,GA/3L2GtlS,wEA+3L3G;AAAA;;AACA;EAAA,mDAh4L2GA,+DAg4L3G,CAA2FulS,YAA3F,EAAqH,CAAC;IAC1Gv+R,IAAI,EAAE/G,oDADoG;IAE1GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,gHADX;MAECC,SAAS,EAAE,CAAC48R,aAAD,CAFZ;MAGC55P,IAAI,EAAE;QAAE,cAAc;MAAhB;IAHP,CAAD;EAFoG,CAAD,CAArH,QAO4B;IAAE5R,GAAG,EAAE,CAAC;MACpB9yB,IAAI,EAAEnG,gDAAKA;IADS,CAAD;EAAP,CAP5B;AAAA;AAUA;AACA;AACA;AACA;;;AACA,MAAM2kS,aAAa,GAAG;EAClBl9R,OAAO,EAAEkmR,aADS;EAElBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAMs/K,YAAP,CAFL;EAGlBj9R,KAAK,EAAE;AAHW,CAAtB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi9R,YAAN,SAA2BR,0BAA3B,CAAsD;EAClDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,KAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAuBh+R,KAAD,IAAW69R,OAAO,CAAC79R,KAAD,CAAxC;IACA;;;IACA,KAAKk+R,eAAL,GAAwBxrQ,GAAD,IAAS+0P,YAAY,CAAC/0P,GAAD,CAA5C;EACH;;AATiD;;AAWtD4rQ,YAAY,CAAC5+R,IAAb;EAAA;EAAA;IAAA,kEAn7L2G7G,mEAm7L3G,CAAyGylS,YAAzG,SAAyGA,YAAzG;EAAA;AAAA;;AACAA,YAAY,CAAC1+R,IAAb,kBAp7L2G/G,+DAo7L3G;EAAA,MAA6FylS,YAA7F;EAAA;EAAA;EAAA;IAAA;MAp7L2GzlS,yDAo7L3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAp7L2GA,gEAo7L3G,CAAyU,CAACwlS,aAAD,CAAzU,GAp7L2GxlS,wEAo7L3G;AAAA;;AACA;EAAA,mDAr7L2GA,+DAq7L3G,CAA2FylS,YAA3F,EAAqH,CAAC;IAC1Gz+R,IAAI,EAAE/G,oDADoG;IAE1GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,gHADX;MAECC,SAAS,EAAE,CAAC88R,aAAD,CAFZ;MAGC95P,IAAI,EAAE;QAAE,cAAc;MAAhB;IAHP,CAAD;EAFoG,CAAD,CAArH,QAO4B;IAAE7R,GAAG,EAAE,CAAC;MACpB7yB,IAAI,EAAEnG,gDAAKA;IADS,CAAD;EAAP,CAP5B;AAAA;AAUA;AACA;AACA;AACA;;;AACA,MAAM6kS,kBAAkB,GAAG;EACvBp9R,OAAO,EAAEkmR,aADc;EAEvBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAMw/K,iBAAP,CAFA;EAGvBn9R,KAAK,EAAE;AAHgB,CAA3B;AAKA;AACA;AACA;AACA;;AACA,MAAMo9R,2BAA2B,GAAG;EAChCt9R,OAAO,EAAEkmR,aADuB;EAEhCjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAM0/K,yBAAP,CAFS;EAGhCr9R,KAAK,EAAE;AAHyB,CAApC;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMm9R,iBAAN,SAAgCV,0BAAhC,CAA2D;EACvDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,UAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAsB7a,8DAAtB;IACA;;IACA,KAAK+a,eAAL,GAAwBl+R,KAAD,IAAW4nR,iBAAlC;EACH;EACD;;;EACAhmM,OAAO,CAAC5hF,KAAD,EAAQ;IACX,OAAOA,KAAP;EACH;;AAbsD;;AAe3Dw+R,iBAAiB,CAAC9+R,IAAlB;EAAA;EAAA;IAAA,4EAn/L2G7G,mEAm/L3G,CAA8G2lS,iBAA9G,SAA8GA,iBAA9G;EAAA;AAAA;;AACAA,iBAAiB,CAAC5+R,IAAlB,kBAp/L2G/G,+DAo/L3G;EAAA,MAAkG2lS,iBAAlG;EAAA;EAAA;EAAA;IAAA;MAp/L2G3lS,yDAo/L3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAp/L2GA,gEAo/L3G,CAA2X,CAAC0lS,kBAAD,CAA3X,GAp/L2G1lS,wEAo/L3G;AAAA;;AACA;EAAA,mDAr/L2GA,+DAq/L3G,CAA2F2lS,iBAA3F,EAA0H,CAAC;IAC/G3+R,IAAI,EAAE/G,oDADyG;IAE/GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,wIADX;MAECC,SAAS,EAAE,CAACg9R,kBAAD,CAFZ;MAGCh6P,IAAI,EAAE;QAAE,mBAAmB;MAArB;IAHP,CAAD;EAFyG,CAAD,CAA1H,QAO4B;IAAEojP,QAAQ,EAAE,CAAC;MACzB9nR,IAAI,EAAEnG,gDAAKA;IADc,CAAD;EAAZ,CAP5B;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMglS,yBAAN,SAAwCF,iBAAxC,CAA0D;EACtDhhS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKo7R,eAAL,GAAwBl+R,KAAD,IAAW8nR,qBAAlC;EACH;;AALqD;;AAO1D4W,yBAAyB,CAACh/R,IAA1B;EAAA;EAAA;IAAA,4FA3hM2G7G,mEA2hM3G,CAAsH6lS,yBAAtH,SAAsHA,yBAAtH;EAAA;AAAA;;AACAA,yBAAyB,CAAC9+R,IAA1B,kBA5hM2G/G,+DA4hM3G;EAAA,MAA0G6lS,yBAA1G;EAAA;EAAA;EAAA;IAAA;MA5hM2G7lS,yDA4hM3G;IAAA;EAAA;EAAA,WA5hM2GA,gEA4hM3G,CAAsW,CAAC4lS,2BAAD,CAAtW,GA5hM2G5lS,wEA4hM3G;AAAA;;AACA;EAAA,mDA7hM2GA,+DA6hM3G,CAA2F6lS,yBAA3F,EAAkI,CAAC;IACvH7+R,IAAI,EAAE/G,oDADiH;IAEvHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,qIADX;MAECC,SAAS,EAAE,CAACk9R,2BAAD,CAFZ;MAGCl6P,IAAI,EAAE;QAAE,mBAAmB;MAArB;IAHP,CAAD;EAFiH,CAAD,CAAlI;AAAA;AAQA;AACA;AACA;AACA;;;AACA,MAAMo6P,eAAe,GAAG;EACpBx9R,OAAO,EAAEkmR,aADW;EAEpBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAM4/K,cAAP,CAFH;EAGpBv9R,KAAK,EAAE;AAHa,CAAxB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMu9R,cAAN,SAA6Bd,0BAA7B,CAAwD;EACpDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,OAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAsB7a,8DAAtB;IACA;;IACA,KAAK+a,eAAL,GAAwBl+R,KAAD,IAAWgoR,cAAlC;EACH;EACD;;;EACApmM,OAAO,CAAC5hF,KAAD,EAAQ;IACX,OAAOA,KAAP;EACH;;AAbmD;;AAexD4+R,cAAc,CAACl/R,IAAf;EAAA;EAAA;IAAA,sEAxlM2G7G,mEAwlM3G,CAA2G+lS,cAA3G,SAA2GA,cAA3G;EAAA;AAAA;;AACAA,cAAc,CAACh/R,IAAf,kBAzlM2G/G,+DAylM3G;EAAA,MAA+F+lS,cAA/F;EAAA;EAAA;IAAA;EAAA;EAAA,WAzlM2G/lS,gEAylM3G,CAAkO,CAAC8lS,eAAD,CAAlO,GAzlM2G9lS,wEAylM3G;AAAA;;AACA;EAAA,mDA1lM2GA,+DA0lM3G,CAA2F+lS,cAA3F,EAAuH,CAAC;IAC5G/+R,IAAI,EAAE/G,oDADsG;IAE5GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,gEADX;MAECC,SAAS,EAAE,CAACo9R,eAAD;IAFZ,CAAD;EAFsG,CAAD,CAAvH,QAM4B;IAAE5W,KAAK,EAAE,CAAC;MACtBloR,IAAI,EAAEnG,gDAAKA;IADW,CAAD;EAAT,CAN5B;AAAA;AASA;AACA;AACA;AACA;;;AACA,MAAMmlS,oBAAoB,GAAG;EACzB19R,OAAO,EAAEkmR,aADgB;EAEzBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAM8/K,kBAAP,CAFE;EAGzBz9R,KAAK,EAAE;AAHkB,CAA7B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMy9R,kBAAN,SAAiChB,0BAAjC,CAA4D;EACxDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,WAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAuBh+R,KAAD,IAAW49R,SAAS,CAAC59R,KAAD,CAA1C;IACA;;;IACA,KAAKk+R,eAAL,GAAwBa,SAAD,IAAe7W,kBAAkB,CAAC6W,SAAD,CAAxD;EACH;;AATuD;;AAW5DD,kBAAkB,CAACp/R,IAAnB;EAAA;EAAA;IAAA,8EA5oM2G7G,mEA4oM3G,CAA+GimS,kBAA/G,SAA+GA,kBAA/G;EAAA;AAAA;;AACAA,kBAAkB,CAACl/R,IAAnB,kBA7oM2G/G,+DA6oM3G;EAAA,MAAmGimS,kBAAnG;EAAA;EAAA;EAAA;IAAA;MA7oM2GjmS,yDA6oM3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WA7oM2GA,gEA6oM3G,CAAyU,CAACgmS,oBAAD,CAAzU,GA7oM2GhmS,wEA6oM3G;AAAA;;AACA;EAAA,mDA9oM2GA,+DA8oM3G,CAA2FimS,kBAA3F,EAA2H,CAAC;IAChHj/R,IAAI,EAAE/G,oDAD0G;IAEhHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,4EADX;MAECC,SAAS,EAAE,CAACs9R,oBAAD,CAFZ;MAGCt6P,IAAI,EAAE;QAAE,oBAAoB;MAAtB;IAHP,CAAD;EAF0G,CAAD,CAA3H,QAO4B;IAAEw6P,SAAS,EAAE,CAAC;MAC1Bl/R,IAAI,EAAEnG,gDAAKA;IADe,CAAD;EAAb,CAP5B;AAAA;AAUA;AACA;AACA;AACA;;;AACA,MAAMslS,oBAAoB,GAAG;EACzB79R,OAAO,EAAEkmR,aADgB;EAEzBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAMigL,kBAAP,CAFE;EAGzB59R,KAAK,EAAE;AAHkB,CAA7B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM49R,kBAAN,SAAiCnB,0BAAjC,CAA4D;EACxDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,WAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAuBh+R,KAAD,IAAW49R,SAAS,CAAC59R,KAAD,CAA1C;IACA;;;IACA,KAAKk+R,eAAL,GAAwBgB,SAAD,IAAe9W,kBAAkB,CAAC8W,SAAD,CAAxD;EACH;;AATuD;;AAW5DD,kBAAkB,CAACv/R,IAAnB;EAAA;EAAA;IAAA,8EAjsM2G7G,mEAisM3G,CAA+GomS,kBAA/G,SAA+GA,kBAA/G;EAAA;AAAA;;AACAA,kBAAkB,CAACr/R,IAAnB,kBAlsM2G/G,+DAksM3G;EAAA,MAAmGomS,kBAAnG;EAAA;EAAA;EAAA;IAAA;MAlsM2GpmS,yDAksM3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAlsM2GA,gEAksM3G,CAAyU,CAACmmS,oBAAD,CAAzU,GAlsM2GnmS,wEAksM3G;AAAA;;AACA;EAAA,mDAnsM2GA,+DAmsM3G,CAA2FomS,kBAA3F,EAA2H,CAAC;IAChHp/R,IAAI,EAAE/G,oDAD0G;IAEhHgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,4EADX;MAECC,SAAS,EAAE,CAACy9R,oBAAD,CAFZ;MAGCz6P,IAAI,EAAE;QAAE,oBAAoB;MAAtB;IAHP,CAAD;EAF0G,CAAD,CAA3H,QAO4B;IAAE26P,SAAS,EAAE,CAAC;MAC1Br/R,IAAI,EAAEnG,gDAAKA;IADe,CAAD;EAAb,CAP5B;AAAA;AAUA;AACA;AACA;AACA;;;AACA,MAAMylS,iBAAiB,GAAG;EACtBh+R,OAAO,EAAEkmR,aADa;EAEtBjmR,WAAW,EAAE49G,yDAAU,CAAC,MAAMogL,gBAAP,CAFD;EAGtB/9R,KAAK,EAAE;AAHe,CAA1B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+9R,gBAAN,SAA+BtB,0BAA/B,CAA0D;EACtDtgS,WAAW,GAAG;IACV,MAAM,GAAGsF,SAAT;IACA;;IACA,KAAKuzF,SAAL,GAAiB,SAAjB;IACA;;IACA,KAAK2nM,cAAL,GAAuBh+R,KAAD,IAAWA,KAAjC;IACA;;;IACA,KAAKk+R,eAAL,GAAwBl+R,KAAD,IAAWqoR,gBAAgB,CAACroR,KAAD,CAAlD;EACH;;AATqD;;AAW1Do/R,gBAAgB,CAAC1/R,IAAjB;EAAA;EAAA;IAAA,0EAxvM2G7G,mEAwvM3G,CAA6GumS,gBAA7G,SAA6GA,gBAA7G;EAAA;AAAA;;AACAA,gBAAgB,CAACx/R,IAAjB,kBAzvM2G/G,+DAyvM3G;EAAA,MAAiGumS,gBAAjG;EAAA;EAAA;EAAA;IAAA;MAzvM2GvmS,yDAyvM3G;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA,WAzvM2GA,gEAyvM3G,CAAuT,CAACsmS,iBAAD,CAAvT,GAzvM2GtmS,wEAyvM3G;AAAA;;AACA;EAAA,mDA1vM2GA,+DA0vM3G,CAA2FumS,gBAA3F,EAAyH,CAAC;IAC9Gv/R,IAAI,EAAE/G,oDADwG;IAE9GgH,IAAI,EAAE,CAAC;MACCwB,QAAQ,EAAE,sEADX;MAECC,SAAS,EAAE,CAAC49R,iBAAD,CAFZ;MAGC56P,IAAI,EAAE;QAAE,kBAAkB;MAApB;IAHP,CAAD;EAFwG,CAAD,CAAzH,QAO4B;IAAE02C,OAAO,EAAE,CAAC;MACxBp7E,IAAI,EAAEnG,gDAAKA;IADa,CAAD;EAAX,CAP5B;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2lS,sBAAsB,GAAG,CAC3BpG,aAD2B,EAE3B0D,cAF2B,EAG3BgB,uBAH2B,EAI3BnX,oBAJ2B,EAK3B2S,mBAL2B,EAM3Be,kBAN2B,EAO3B5T,4BAP2B,EAQ3B0V,0BAR2B,EAS3BiB,kCAT2B,EAU3B5D,yBAV2B,EAW3BhN,eAX2B,EAY3BC,oBAZ2B,EAa3BkS,iBAb2B,EAc3BM,kBAd2B,EAe3BG,kBAf2B,EAgB3BG,gBAhB2B,EAiB3BV,yBAjB2B,EAkB3BE,cAlB2B,EAmB3BN,YAnB2B,EAoB3BF,YApB2B,CAA/B;AAsBA,MAAMkB,0BAA0B,GAAG,CAACnH,OAAD,EAAUF,YAAV,EAAwBjC,MAAxB,CAAnC;AACA,MAAMuJ,0BAA0B,GAAG,CAAClF,oBAAD,EAAuBK,kBAAvB,EAA2CmB,eAA3C,EAA4DL,aAA5D,EAA2EG,aAA3E,CAAnC;AACA;AACA;AACA;;AACA,MAAM6D,0BAAN,CAAiC;;AAEjCA,0BAA0B,CAAC9/R,IAA3B;EAAA,iBAAuH8/R,0BAAvH;AAAA;;AACAA,0BAA0B,CAAC74Q,IAA3B,kBA1yM2G9tB,8DA0yM3G;EAAA,MAAwH2mS,0BAAxH;EAAA,eAAmKvG,aAAnK,EACQ0D,cADR,EAEQgB,uBAFR,EAGQnX,oBAHR,EAIQ2S,mBAJR,EAKQe,kBALR,EAMQ5T,4BANR,EAOQ0V,0BAPR,EAQQiB,kCARR,EASQ5D,yBATR,EAUQhN,eAVR,EAWQC,oBAXR,EAYQkS,iBAZR,EAaQM,kBAbR,EAcQG,kBAdR,EAeQG,gBAfR,EAgBQV,yBAhBR,EAiBQE,cAjBR,EAkBQN,YAlBR,EAmBQF,YAnBR;EAAA,UAmBiC7E,0BAnBjC;EAAA,UAmBwEN,aAnBxE,EAoBQ0D,cApBR,EAqBQgB,uBArBR,EAsBQnX,oBAtBR,EAuBQ2S,mBAvBR,EAwBQe,kBAxBR,EAyBQ5T,4BAzBR,EA0BQ0V,0BA1BR,EA2BQiB,kCA3BR,EA4BQ5D,yBA5BR,EA6BQhN,eA7BR,EA8BQC,oBA9BR,EA+BQkS,iBA/BR,EAgCQM,kBAhCR,EAiCQG,kBAjCR,EAkCQG,gBAlCR,EAmCQV,yBAnCR,EAoCQE,cApCR,EAqCQN,YArCR,EAsCQF,YAtCR;AAAA;AAuCAoB,0BAA0B,CAAC54Q,IAA3B,kBAj1M2G/tB,8DAi1M3G;EAAA,UAA8J0gS,0BAA9J;AAAA;;AACA;EAAA,mDAl1M2G1gS,+DAk1M3G,CAA2F2mS,0BAA3F,EAAmI,CAAC;IACxH3/R,IAAI,EAAE5F,mDADkH;IAExH6F,IAAI,EAAE,CAAC;MACC+mB,YAAY,EAAEw4Q,sBADf;MAECt4Q,OAAO,EAAE,CAACwyQ,0BAAD,CAFV;MAGCzyQ,OAAO,EAAEu4Q;IAHV,CAAD;EAFkH,CAAD,CAAnI;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,WAAN,CAAkB;;AAElBA,WAAW,CAAC//R,IAAZ;EAAA,iBAAwG+/R,WAAxG;AAAA;;AACAA,WAAW,CAAC94Q,IAAZ,kBAj3M2G9tB,8DAi3M3G;EAAA,MAAyG4mS,WAAzG;EAAA,eAAqItH,OAArI,EAA8IF,YAA9I,EAA4JjC,MAA5J;EAAA,UAA+KwJ,0BAA/K,EAA2MrH,OAA3M,EAAoNF,YAApN,EAAkOjC,MAAlO;AAAA;AACAyJ,WAAW,CAAC74Q,IAAZ,kBAl3M2G/tB,8DAk3M3G;EAAA,UAAgI2mS,0BAAhI;AAAA;;AACA;EAAA,mDAn3M2G3mS,+DAm3M3G,CAA2F4mS,WAA3F,EAAoH,CAAC;IACzG5/R,IAAI,EAAE5F,mDADmG;IAEzG6F,IAAI,EAAE,CAAC;MACC+mB,YAAY,EAAEy4Q,0BADf;MAECx4Q,OAAO,EAAE,CAAC04Q,0BAAD,EAA6BF,0BAA7B;IAFV,CAAD;EAFmG,CAAD,CAApH;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMI,mBAAN,CAA0B;EACtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACqB,OAAVC,UAAU,CAACh8R,IAAD,EAAO;IACpB,OAAO;MACH+iB,QAAQ,EAAEg5Q,mBADP;MAEHn+R,SAAS,EAAE,CACP;QAAEJ,OAAO,EAAEg5R,kCAAX;QAA+C1tR,QAAQ,EAAE9I,IAAI,CAACi8R;MAA9D,CADO;IAFR,CAAP;EAMH;;AAhBqB;;AAkB1BF,mBAAmB,CAAChgS,IAApB;EAAA,iBAAgHggS,mBAAhH;AAAA;;AACAA,mBAAmB,CAAC/4Q,IAApB,kBA15M2G9tB,8DA05M3G;EAAA,MAAiH6mS,mBAAjH;EAAA,eAAqJrF,oBAArJ,EAA2KK,kBAA3K,EAA+LmB,eAA/L,EAAgNL,aAAhN,EAA+NG,aAA/N;EAAA,UAAyP6D,0BAAzP,EAAqRnF,oBAArR,EAA2SK,kBAA3S,EAA+TmB,eAA/T,EAAgVL,aAAhV,EAA+VG,aAA/V;AAAA;AACA+D,mBAAmB,CAAC94Q,IAApB,kBA35M2G/tB,8DA25M3G;EAAA,UAAgJ2mS,0BAAhJ;AAAA;;AACA;EAAA,mDA55M2G3mS,+DA45M3G,CAA2F6mS,mBAA3F,EAA4H,CAAC;IACjH7/R,IAAI,EAAE5F,mDAD2G;IAEjH6F,IAAI,EAAE,CAAC;MACC+mB,YAAY,EAAE,CAAC04Q,0BAAD,CADf;MAECz4Q,OAAO,EAAE,CAAC04Q,0BAAD,EAA6BD,0BAA7B;IAFV,CAAD;EAF2G,CAAD,CAA5H;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,SAAN,SAAwBpR,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIjxR,WAAW,CAAC8wR,QAAD,EAAWR,eAAX,EAA4B9C,cAA5B,EAA4C;IACnD,MAAM6C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACjD,cAAD,EAAiB8C,eAAjB,CAA1D;IACA,KAAKQ,QAAL,GAAgBA,QAAhB;;IACA,KAAKiD,gBAAL;;IACA,KAAKM,kBAAL,CAAwB/D,eAAxB;;IACA,KAAKkE,cAAL;;IACA,KAAKxB,sBAAL,CAA4B;MACxBb,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA;MACA7hP,SAAS,EAAE,CAAC,CAAC,KAAKk9O;IANM,CAA5B;EAQH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI8U,EAAE,CAACx0R,KAAD,EAAQ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I,EAAE0D;IAAR,CAApJ,CAAP;EAAkL,CAN5N;AAAA;;AAOA,SAASkxT,gBAAT,CAA0Bje,QAA1B,EAAoC;EAChC,KAAK,IAAI/1S,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+1S,QAAQ,CAACr2S,MAA7B,EAAqCM,CAAC,EAAtC,EAA0C;IACtC,MAAMw4S,GAAG,GAAGzC,QAAQ,CAAC/1S,CAAD,CAApB;;IACA,IAAIw4S,GAAG,IAAI,IAAX,EAAiB;MACb,MAAM,IAAIzwO,2DAAJ,CAAkB;MAAK;MAAvB,EAA+DmnP,aAAa,IAAK,+BAA8B1W,GAAI,qBAAoBx4S,CAAE,EAAzI,CAAN;IACH;EACJ;AACJ;;AACD,SAAS+xT,4BAAT,CAAsCp7P,MAAtC,EAA8C;EAC1C,OAAOA,MAAM,KAAK,YAAlB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMt3C,UAAN,CAAiB;EACbtiB,WAAW,CAACgQ,MAAD,EAASgE,KAAT,EAAgB6jT,iBAAhB,EAAmC5hO,QAAnC,EAA6C/1F,EAA7C,EAAiD;IACxD,KAAK8P,MAAL,GAAcA,MAAd;IACA,KAAKgE,KAAL,GAAaA,KAAb;IACA,KAAK6jT,iBAAL,GAAyBA,iBAAzB;IACA,KAAK5hO,QAAL,GAAgBA,QAAhB;IACA,KAAK/1F,EAAL,GAAUA,EA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","sources":["./node_modules/@ionic/angular/fesm2015/ionic-angular.js","./node_modules/@ionic/core/dist/esm/animation-e5036198.js","./node_modules/@ionic/core/dist/esm/app-globals-275fb4c9.js","./node_modules/@ionic/core/dist/esm/cubic-bezier-c313947a.js","./node_modules/@ionic/core/dist/esm/gesture-controller-17060b7c.js","./node_modules/@ionic/core/dist/esm/hardware-back-button-490df115.js","./node_modules/@ionic/core/dist/esm/helpers-2914b3be.js","./node_modules/@ionic/core/dist/esm/index-32d8f55c.js","./node_modules/@ionic/core/dist/esm/index-33ffec25.js","./node_modules/@ionic/core/dist/esm/index-8e692445.js","./node_modules/@ionic/core/dist/esm/index-dff497fb.js","./node_modules/@ionic/core/dist/esm/index-f8d8aa5a.js","./node_modules/@ionic/core/dist/esm/index-fbafcf43.js","./node_modules/@ionic/core/dist/esm/index.js","./node_modules/@ionic/core/dist/esm/ionic-global-c95cf239.js","./node_modules/@ionic/core/dist/esm/ios.transition-add97167.js","./node_modules/@ionic/core/dist/esm/loader.js","./node_modules/@ionic/core/dist/esm/md.transition-41d5d0e3.js","./node_modules/@ionic/core/dist/esm/overlays-6ab11907.js","./node_modules/@ionic/core/dist/esm/polyfills/index.js","./node_modules/@ionic/core/loader/index.es2017.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/compiler/fesm2015/compiler.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/platform-browser-dynamic/fesm2015/platform-browser-dynamic.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Directive, HostListener, Component, ChangeDetectionStrategy, Injectable, Injector, InjectionToken, Inject, Optional, EventEmitter, Attribute, SkipSelf, Input, Output, ViewChild, ContentChild, TemplateRef, APP_INITIALIZER, NgZone, NgModule } from '@angular/core';\nimport { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { __decorate, __awaiter } from 'tslib';\nimport { fromEvent, Subject, BehaviorSubject } from 'rxjs';\nimport * as i3 from '@angular/router';\nimport { NavigationStart, PRIMARY_OUTLET, ActivatedRoute, ChildrenOutletContexts } from '@angular/router';\nimport { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_UNLOAD, isPlatform, getPlatforms, componentOnReady, actionSheetController, alertController, loadingController, menuController, pickerController, modalController, popoverController, toastController, createAnimation, getTimeGivenProgression, createGesture, setupConfig } from '@ionic/core';\nexport { IonicSafeString, IonicSlides, IonicSwiper, createAnimation, createGesture, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation } from '@ionic/core';\nimport { filter, switchMap, distinctUntilChanged } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { applyPolyfills, defineCustomElements } from '@ionic/core/loader';\n\nconst raf = (h) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\nconst isComponentFactoryResolver = (item) => {\n return !!item.resolveComponentFactory;\n};\n\nclass ValueAccessor {\n constructor(injector, el) {\n this.injector = injector;\n this.el = el;\n this.onChange = () => {\n /**/\n };\n this.onTouched = () => {\n /**/\n };\n }\n writeValue(value) {\n /**\n * TODO for Ionic 6:\n * Change `value == null ? '' : value;`\n * to `value`. This was a fix for IE9, but IE9\n * is no longer supported; however, this change\n * is potentially a breaking change\n */\n this.el.nativeElement.value = this.lastValue = value == null ? '' : value;\n setIonicClasses(this.el);\n }\n handleChangeEvent(el, value) {\n if (el === this.el.nativeElement) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n setIonicClasses(this.el);\n }\n }\n _handleBlurEvent(el) {\n if (el === this.el.nativeElement) {\n this.onTouched();\n setIonicClasses(this.el);\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.el.nativeElement.disabled = isDisabled;\n }\n ngOnDestroy() {\n if (this.statusChanges) {\n this.statusChanges.unsubscribe();\n }\n }\n ngAfterViewInit() {\n let ngControl;\n try {\n ngControl = this.injector.get(NgControl);\n }\n catch (_a) {\n /* No FormControl or ngModel binding */\n }\n if (!ngControl) {\n return;\n }\n // Listen for changes in validity, disabled, or pending states\n if (ngControl.statusChanges) {\n this.statusChanges = ngControl.statusChanges.subscribe(() => setIonicClasses(this.el));\n }\n /**\n * TODO Remove this in favor of https://github.com/angular/angular/issues/10887\n * whenever it is implemented. Currently, Ionic's form status classes\n * do not react to changes when developers manually call\n * Angular form control methods such as markAsTouched.\n * This results in Ionic's form status classes being out\n * of sync with the ng form status classes.\n * This patches the methods to manually sync\n * the classes until this feature is implemented in Angular.\n */\n const formControl = ngControl.control;\n if (formControl) {\n const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];\n methodsToPatch.forEach((method) => {\n if (typeof formControl[method] !== 'undefined') {\n const oldFn = formControl[method].bind(formControl);\n formControl[method] = (...params) => {\n oldFn(...params);\n setIonicClasses(this.el);\n };\n }\n });\n }\n }\n}\n/** @nocollapse */ ValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: ValueAccessor, host: { listeners: { \"ionBlur\": \"_handleBlurEvent($event.target)\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ValueAccessor, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{\n type: HostListener,\n args: ['ionBlur', ['$event.target']]\n }] } });\nconst setIonicClasses = (element) => {\n raf(() => {\n const input = element.nativeElement;\n const hasValue = input.value != null && input.value.toString().length > 0;\n const classes = getClasses(input);\n setClasses(input, classes);\n const item = input.closest('ion-item');\n if (item) {\n if (hasValue) {\n setClasses(item, [...classes, 'item-has-value']);\n }\n else {\n setClasses(item, classes);\n }\n }\n });\n};\nconst getClasses = (element) => {\n const classList = element.classList;\n const classes = [];\n for (let i = 0; i < classList.length; i++) {\n const item = classList.item(i);\n if (item !== null && startsWith(item, 'ng-')) {\n classes.push(`ion-${item.substring(3)}`);\n }\n }\n return classes;\n};\nconst setClasses = (element, classes) => {\n const classList = element.classList;\n classList.remove('ion-valid', 'ion-invalid', 'ion-touched', 'ion-untouched', 'ion-dirty', 'ion-pristine');\n classList.add(...classes);\n};\nconst startsWith = (input, search) => {\n return input.substring(0, search.length) === search;\n};\n\nclass BooleanValueAccessorDirective extends ValueAccessor {\n constructor(injector, el) {\n super(injector, el);\n }\n writeValue(value) {\n this.el.nativeElement.checked = this.lastValue = value == null ? false : value;\n setIonicClasses(this.el);\n }\n _handleIonChange(el) {\n this.handleChangeEvent(el, el.checked);\n }\n}\n/** @nocollapse */ BooleanValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: BooleanValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ BooleanValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: BooleanValueAccessorDirective, selector: \"ion-checkbox,ion-toggle\", host: { listeners: { \"ionChange\": \"_handleIonChange($event.target)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BooleanValueAccessorDirective,\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: BooleanValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'ion-checkbox,ion-toggle',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BooleanValueAccessorDirective,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleIonChange: [{\n type: HostListener,\n args: ['ionChange', ['$event.target']]\n }] } });\n\nclass NumericValueAccessorDirective extends ValueAccessor {\n constructor(injector, el) {\n super(injector, el);\n }\n _handleIonChange(el) {\n this.handleChangeEvent(el, el.value);\n }\n registerOnChange(fn) {\n super.registerOnChange((value) => {\n fn(value === '' ? null : parseFloat(value));\n });\n }\n}\n/** @nocollapse */ NumericValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NumericValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ NumericValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: NumericValueAccessorDirective, selector: \"ion-input[type=number]\", host: { listeners: { \"ionChange\": \"_handleIonChange($event.target)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NumericValueAccessorDirective,\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NumericValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'ion-input[type=number]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NumericValueAccessorDirective,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleIonChange: [{\n type: HostListener,\n args: ['ionChange', ['$event.target']]\n }] } });\n\nclass RadioValueAccessorDirective extends ValueAccessor {\n constructor(injector, el) {\n super(injector, el);\n }\n _handleIonSelect(el) {\n this.handleChangeEvent(el, el.checked);\n }\n}\n/** @nocollapse */ RadioValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RadioValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ RadioValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: RadioValueAccessorDirective, selector: \"ion-radio\", host: { listeners: { \"ionSelect\": \"_handleIonSelect($event.target)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioValueAccessorDirective,\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RadioValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-radio',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioValueAccessorDirective,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleIonSelect: [{\n type: HostListener,\n args: ['ionSelect', ['$event.target']]\n }] } });\n\nclass SelectValueAccessorDirective extends ValueAccessor {\n constructor(injector, el) {\n super(injector, el);\n }\n _handleChangeEvent(el) {\n this.handleChangeEvent(el, el.value);\n }\n}\n/** @nocollapse */ SelectValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: SelectValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ SelectValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: SelectValueAccessorDirective, selector: \"ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime\", host: { listeners: { \"ionChange\": \"_handleChangeEvent($event.target)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SelectValueAccessorDirective,\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: SelectValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SelectValueAccessorDirective,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleChangeEvent: [{\n type: HostListener,\n args: ['ionChange', ['$event.target']]\n }] } });\n\nclass TextValueAccessorDirective extends ValueAccessor {\n constructor(injector, el) {\n super(injector, el);\n }\n _handleInputEvent(el) {\n this.handleChangeEvent(el, el.value);\n }\n}\n/** @nocollapse */ TextValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: TextValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ TextValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: TextValueAccessorDirective, selector: \"ion-input:not([type=number]),ion-textarea,ion-searchbar\", host: { listeners: { \"ionChange\": \"_handleInputEvent($event.target)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TextValueAccessorDirective,\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: TextValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-input:not([type=number]),ion-textarea,ion-searchbar',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TextValueAccessorDirective,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleInputEvent: [{\n type: HostListener,\n args: ['ionChange', ['$event.target']]\n }] } });\n\n/* eslint-disable */\nconst proxyInputs = (Cmp, inputs) => {\n const Prototype = Cmp.prototype;\n inputs.forEach(item => {\n Object.defineProperty(Prototype, item, {\n get() {\n return this.el[item];\n },\n set(val) {\n this.z.runOutsideAngular(() => (this.el[item] = val));\n }\n });\n });\n};\nconst proxyMethods = (Cmp, methods) => {\n const Prototype = Cmp.prototype;\n methods.forEach(methodName => {\n Prototype[methodName] = function () {\n const args = arguments;\n return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));\n };\n });\n};\nconst proxyOutputs = (instance, el, events) => {\n events.forEach(eventName => instance[eventName] = fromEvent(el, eventName));\n};\nconst defineCustomElement = (tagName, customElement) => {\n if (customElement !== undefined &&\n typeof customElements !== 'undefined' &&\n !customElements.get(tagName)) {\n customElements.define(tagName, customElement);\n }\n};\n// tslint:disable-next-line: only-arrow-functions\nfunction ProxyCmp(opts) {\n const decorator = function (cls) {\n const { defineCustomElementFn, inputs, methods } = opts;\n if (defineCustomElementFn !== undefined) {\n defineCustomElementFn();\n }\n if (inputs) {\n proxyInputs(cls, inputs);\n }\n if (methods) {\n proxyMethods(cls, methods);\n }\n return cls;\n };\n return decorator;\n}\n\nlet IonAccordion = class IonAccordion {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonAccordion, selector: \"ion-accordion\", inputs: { disabled: \"disabled\", mode: \"mode\", readonly: \"readonly\", toggleIcon: \"toggleIcon\", toggleIconSlot: \"toggleIconSlot\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonAccordion = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled', 'mode', 'readonly', 'toggleIcon', 'toggleIconSlot', 'value']\n })\n], IonAccordion);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAccordion, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled', 'mode', 'readonly', 'toggleIcon', 'toggleIconSlot', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonAccordionGroup = class IonAccordionGroup {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange']);\n }\n};\n/** @nocollapse */ IonAccordionGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAccordionGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonAccordionGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonAccordionGroup, selector: \"ion-accordion-group\", inputs: { animated: \"animated\", disabled: \"disabled\", expand: \"expand\", mode: \"mode\", multiple: \"multiple\", readonly: \"readonly\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonAccordionGroup = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['animated', 'disabled', 'expand', 'mode', 'multiple', 'readonly', 'value']\n })\n], IonAccordionGroup);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAccordionGroup, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-accordion-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['animated', 'disabled', 'expand', 'mode', 'multiple', 'readonly', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonApp = class IonApp {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonApp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonApp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonApp.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonApp, selector: \"ion-app\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonApp = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonApp);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonApp, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-app',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonAvatar = class IonAvatar {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonAvatar, selector: \"ion-avatar\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonAvatar = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonAvatar);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonAvatar, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonBackButton = class IonBackButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonBackButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonBackButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBackButton, selector: \"ion-back-button\", inputs: { color: \"color\", defaultHref: \"defaultHref\", disabled: \"disabled\", icon: \"icon\", mode: \"mode\", routerAnimation: \"routerAnimation\", text: \"text\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonBackButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'defaultHref', 'disabled', 'icon', 'mode', 'routerAnimation', 'text', 'type']\n })\n], IonBackButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-back-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'defaultHref', 'disabled', 'icon', 'mode', 'routerAnimation', 'text', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonBackdrop = class IonBackdrop {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionBackdropTap']);\n }\n};\n/** @nocollapse */ IonBackdrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackdrop, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonBackdrop.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBackdrop, selector: \"ion-backdrop\", inputs: { stopPropagation: \"stopPropagation\", tappable: \"tappable\", visible: \"visible\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonBackdrop = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['stopPropagation', 'tappable', 'visible']\n })\n], IonBackdrop);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackdrop, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-backdrop',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['stopPropagation', 'tappable', 'visible']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonBadge = class IonBadge {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonBadge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonBadge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBadge, selector: \"ion-badge\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonBadge = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonBadge);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBadge, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonBreadcrumb = class IonBreadcrumb {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonBreadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonBreadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBreadcrumb, selector: \"ion-breadcrumb\", inputs: { active: \"active\", color: \"color\", disabled: \"disabled\", download: \"download\", href: \"href\", mode: \"mode\", rel: \"rel\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\", separator: \"separator\", target: \"target\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonBreadcrumb = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['active', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'separator', 'target']\n })\n], IonBreadcrumb);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBreadcrumb, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['active', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'separator', 'target']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonBreadcrumbs = class IonBreadcrumbs {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionCollapsedClick']);\n }\n};\n/** @nocollapse */ IonBreadcrumbs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonBreadcrumbs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBreadcrumbs, selector: \"ion-breadcrumbs\", inputs: { color: \"color\", itemsAfterCollapse: \"itemsAfterCollapse\", itemsBeforeCollapse: \"itemsBeforeCollapse\", maxItems: \"maxItems\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonBreadcrumbs = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'maxItems', 'mode']\n })\n], IonBreadcrumbs);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBreadcrumbs, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-breadcrumbs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'maxItems', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonButton = class IonButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonButton, selector: \"ion-button\", inputs: { buttonType: \"buttonType\", color: \"color\", disabled: \"disabled\", download: \"download\", expand: \"expand\", fill: \"fill\", form: \"form\", href: \"href\", mode: \"mode\", rel: \"rel\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\", shape: \"shape\", size: \"size\", strong: \"strong\", target: \"target\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['buttonType', 'color', 'disabled', 'download', 'expand', 'fill', 'form', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'shape', 'size', 'strong', 'target', 'type']\n })\n], IonButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['buttonType', 'color', 'disabled', 'download', 'expand', 'fill', 'form', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'shape', 'size', 'strong', 'target', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonButtons = class IonButtons {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonButtons, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonButtons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonButtons, selector: \"ion-buttons\", inputs: { collapse: \"collapse\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonButtons = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['collapse']\n })\n], IonButtons);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonButtons, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-buttons',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['collapse']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCard = class IonCard {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCard, selector: \"ion-card\", inputs: { button: \"button\", color: \"color\", disabled: \"disabled\", download: \"download\", href: \"href\", mode: \"mode\", rel: \"rel\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\", target: \"target\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCard = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['button', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'target', 'type']\n })\n], IonCard);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCard, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['button', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'target', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCardContent = class IonCardContent {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCardContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCardContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCardContent, selector: \"ion-card-content\", inputs: { mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCardContent = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['mode']\n })\n], IonCardContent);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardContent, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-card-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCardHeader = class IonCardHeader {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCardHeader, selector: \"ion-card-header\", inputs: { color: \"color\", mode: \"mode\", translucent: \"translucent\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCardHeader = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode', 'translucent']\n })\n], IonCardHeader);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardHeader, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-card-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode', 'translucent']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCardSubtitle = class IonCardSubtitle {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCardSubtitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardSubtitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCardSubtitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCardSubtitle, selector: \"ion-card-subtitle\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCardSubtitle = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonCardSubtitle);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardSubtitle, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-card-subtitle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCardTitle = class IonCardTitle {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCardTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCardTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCardTitle, selector: \"ion-card-title\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCardTitle = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonCardTitle);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCardTitle, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-card-title',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCheckbox = class IonCheckbox {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCheckbox, selector: \"ion-checkbox\", inputs: { checked: \"checked\", color: \"color\", disabled: \"disabled\", indeterminate: \"indeterminate\", mode: \"mode\", name: \"name\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCheckbox = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['checked', 'color', 'disabled', 'indeterminate', 'mode', 'name', 'value']\n })\n], IonCheckbox);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['checked', 'color', 'disabled', 'indeterminate', 'mode', 'name', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonChip = class IonChip {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonChip, selector: \"ion-chip\", inputs: { color: \"color\", disabled: \"disabled\", mode: \"mode\", outline: \"outline\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonChip = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'disabled', 'mode', 'outline']\n })\n], IonChip);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonChip, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-chip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'disabled', 'mode', 'outline']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonCol = class IonCol {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonCol.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonCol.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonCol, selector: \"ion-col\", inputs: { offset: \"offset\", offsetLg: \"offsetLg\", offsetMd: \"offsetMd\", offsetSm: \"offsetSm\", offsetXl: \"offsetXl\", offsetXs: \"offsetXs\", pull: \"pull\", pullLg: \"pullLg\", pullMd: \"pullMd\", pullSm: \"pullSm\", pullXl: \"pullXl\", pullXs: \"pullXs\", push: \"push\", pushLg: \"pushLg\", pushMd: \"pushMd\", pushSm: \"pushSm\", pushXl: \"pushXl\", pushXs: \"pushXs\", size: \"size\", sizeLg: \"sizeLg\", sizeMd: \"sizeMd\", sizeSm: \"sizeSm\", sizeXl: \"sizeXl\", sizeXs: \"sizeXs\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonCol = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['offset', 'offsetLg', 'offsetMd', 'offsetSm', 'offsetXl', 'offsetXs', 'pull', 'pullLg', 'pullMd', 'pullSm', 'pullXl', 'pullXs', 'push', 'pushLg', 'pushMd', 'pushSm', 'pushXl', 'pushXs', 'size', 'sizeLg', 'sizeMd', 'sizeSm', 'sizeXl', 'sizeXs']\n })\n], IonCol);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonCol, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-col',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['offset', 'offsetLg', 'offsetMd', 'offsetSm', 'offsetXl', 'offsetXs', 'pull', 'pullLg', 'pullMd', 'pullSm', 'pullXl', 'pullXs', 'push', 'pushLg', 'pushMd', 'pushSm', 'pushXl', 'pushXs', 'size', 'sizeLg', 'sizeMd', 'sizeSm', 'sizeXl', 'sizeXs']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonContent = class IonContent {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionScrollStart', 'ionScroll', 'ionScrollEnd']);\n }\n};\n/** @nocollapse */ IonContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonContent, selector: \"ion-content\", inputs: { color: \"color\", forceOverscroll: \"forceOverscroll\", fullscreen: \"fullscreen\", scrollEvents: \"scrollEvents\", scrollX: \"scrollX\", scrollY: \"scrollY\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonContent = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'forceOverscroll', 'fullscreen', 'scrollEvents', 'scrollX', 'scrollY'],\n methods: ['getScrollElement', 'scrollToTop', 'scrollToBottom', 'scrollByPoint', 'scrollToPoint']\n })\n], IonContent);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonContent, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'forceOverscroll', 'fullscreen', 'scrollEvents', 'scrollX', 'scrollY']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonDatetime = class IonDatetime {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionCancel', 'ionChange', 'ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonDatetime.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonDatetime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonDatetime.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonDatetime, selector: \"ion-datetime\", inputs: { cancelText: \"cancelText\", clearText: \"clearText\", color: \"color\", dayValues: \"dayValues\", disabled: \"disabled\", doneText: \"doneText\", firstDayOfWeek: \"firstDayOfWeek\", hourCycle: \"hourCycle\", hourValues: \"hourValues\", isDateEnabled: \"isDateEnabled\", locale: \"locale\", max: \"max\", min: \"min\", minuteValues: \"minuteValues\", mode: \"mode\", monthValues: \"monthValues\", multiple: \"multiple\", name: \"name\", preferWheel: \"preferWheel\", presentation: \"presentation\", readonly: \"readonly\", showClearButton: \"showClearButton\", showDefaultButtons: \"showDefaultButtons\", showDefaultTimeLabel: \"showDefaultTimeLabel\", showDefaultTitle: \"showDefaultTitle\", size: \"size\", titleSelectedDatesFormatter: \"titleSelectedDatesFormatter\", value: \"value\", yearValues: \"yearValues\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonDatetime = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['cancelText', 'clearText', 'color', 'dayValues', 'disabled', 'doneText', 'firstDayOfWeek', 'hourCycle', 'hourValues', 'isDateEnabled', 'locale', 'max', 'min', 'minuteValues', 'mode', 'monthValues', 'multiple', 'name', 'preferWheel', 'presentation', 'readonly', 'showClearButton', 'showDefaultButtons', 'showDefaultTimeLabel', 'showDefaultTitle', 'size', 'titleSelectedDatesFormatter', 'value', 'yearValues'],\n methods: ['confirm', 'reset', 'cancel']\n })\n], IonDatetime);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonDatetime, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-datetime',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['cancelText', 'clearText', 'color', 'dayValues', 'disabled', 'doneText', 'firstDayOfWeek', 'hourCycle', 'hourValues', 'isDateEnabled', 'locale', 'max', 'min', 'minuteValues', 'mode', 'monthValues', 'multiple', 'name', 'preferWheel', 'presentation', 'readonly', 'showClearButton', 'showDefaultButtons', 'showDefaultTimeLabel', 'showDefaultTitle', 'size', 'titleSelectedDatesFormatter', 'value', 'yearValues']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonDatetimeButton = class IonDatetimeButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonDatetimeButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonDatetimeButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonDatetimeButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonDatetimeButton, selector: \"ion-datetime-button\", inputs: { color: \"color\", datetime: \"datetime\", disabled: \"disabled\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonDatetimeButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'datetime', 'disabled', 'mode']\n })\n], IonDatetimeButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonDatetimeButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-datetime-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'datetime', 'disabled', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonFab = class IonFab {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonFab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonFab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonFab, selector: \"ion-fab\", inputs: { activated: \"activated\", edge: \"edge\", horizontal: \"horizontal\", vertical: \"vertical\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonFab = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['activated', 'edge', 'horizontal', 'vertical'],\n methods: ['close']\n })\n], IonFab);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFab, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-fab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['activated', 'edge', 'horizontal', 'vertical']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonFabButton = class IonFabButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonFabButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFabButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonFabButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonFabButton, selector: \"ion-fab-button\", inputs: { activated: \"activated\", closeIcon: \"closeIcon\", color: \"color\", disabled: \"disabled\", download: \"download\", href: \"href\", mode: \"mode\", rel: \"rel\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\", show: \"show\", size: \"size\", target: \"target\", translucent: \"translucent\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonFabButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['activated', 'closeIcon', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'show', 'size', 'target', 'translucent', 'type']\n })\n], IonFabButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFabButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-fab-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['activated', 'closeIcon', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'show', 'size', 'target', 'translucent', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonFabList = class IonFabList {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonFabList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFabList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonFabList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonFabList, selector: \"ion-fab-list\", inputs: { activated: \"activated\", side: \"side\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonFabList = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['activated', 'side']\n })\n], IonFabList);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFabList, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-fab-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['activated', 'side']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonFooter = class IonFooter {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonFooter, selector: \"ion-footer\", inputs: { collapse: \"collapse\", mode: \"mode\", translucent: \"translucent\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonFooter = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['collapse', 'mode', 'translucent']\n })\n], IonFooter);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonFooter, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['collapse', 'mode', 'translucent']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonGrid = class IonGrid {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonGrid, selector: \"ion-grid\", inputs: { fixed: \"fixed\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonGrid = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['fixed']\n })\n], IonGrid);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonGrid, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['fixed']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonHeader = class IonHeader {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonHeader, selector: \"ion-header\", inputs: { collapse: \"collapse\", mode: \"mode\", translucent: \"translucent\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonHeader = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['collapse', 'mode', 'translucent']\n })\n], IonHeader);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonHeader, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['collapse', 'mode', 'translucent']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonIcon = class IonIcon {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonIcon, selector: \"ion-icon\", inputs: { color: \"color\", flipRtl: \"flipRtl\", icon: \"icon\", ios: \"ios\", lazy: \"lazy\", md: \"md\", mode: \"mode\", name: \"name\", sanitize: \"sanitize\", size: \"size\", src: \"src\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonIcon = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src']\n })\n], IonIcon);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonIcon, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-icon',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonImg = class IonImg {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionImgWillLoad', 'ionImgDidLoad', 'ionError']);\n }\n};\n/** @nocollapse */ IonImg.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonImg, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonImg.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonImg, selector: \"ion-img\", inputs: { alt: \"alt\", src: \"src\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonImg = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['alt', 'src']\n })\n], IonImg);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonImg, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-img',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['alt', 'src']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonInfiniteScroll = class IonInfiniteScroll {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionInfinite']);\n }\n};\n/** @nocollapse */ IonInfiniteScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInfiniteScroll, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonInfiniteScroll.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonInfiniteScroll, selector: \"ion-infinite-scroll\", inputs: { disabled: \"disabled\", position: \"position\", threshold: \"threshold\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonInfiniteScroll = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled', 'position', 'threshold'],\n methods: ['complete']\n })\n], IonInfiniteScroll);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInfiniteScroll, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-infinite-scroll',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled', 'position', 'threshold']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonInfiniteScrollContent = class IonInfiniteScrollContent {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonInfiniteScrollContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInfiniteScrollContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonInfiniteScrollContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonInfiniteScrollContent, selector: \"ion-infinite-scroll-content\", inputs: { loadingSpinner: \"loadingSpinner\", loadingText: \"loadingText\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonInfiniteScrollContent = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['loadingSpinner', 'loadingText']\n })\n], IonInfiniteScrollContent);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInfiniteScrollContent, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-infinite-scroll-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['loadingSpinner', 'loadingText']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonInput = class IonInput {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionBlur', 'ionFocus']);\n }\n};\n/** @nocollapse */ IonInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonInput, selector: \"ion-input\", inputs: { accept: \"accept\", autocapitalize: \"autocapitalize\", autocomplete: \"autocomplete\", autocorrect: \"autocorrect\", autofocus: \"autofocus\", clearInput: \"clearInput\", clearOnEdit: \"clearOnEdit\", color: \"color\", debounce: \"debounce\", disabled: \"disabled\", enterkeyhint: \"enterkeyhint\", inputmode: \"inputmode\", max: \"max\", maxlength: \"maxlength\", min: \"min\", minlength: \"minlength\", mode: \"mode\", multiple: \"multiple\", name: \"name\", pattern: \"pattern\", placeholder: \"placeholder\", readonly: \"readonly\", required: \"required\", size: \"size\", spellcheck: \"spellcheck\", step: \"step\", type: \"type\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonInput = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearInput', 'clearOnEdit', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'max', 'maxlength', 'min', 'minlength', 'mode', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'type', 'value'],\n methods: ['setFocus', 'getInputElement']\n })\n], IonInput);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonInput, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearInput', 'clearOnEdit', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'max', 'maxlength', 'min', 'minlength', 'mode', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'type', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItem = class IonItem {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItem, selector: \"ion-item\", inputs: { button: \"button\", color: \"color\", counter: \"counter\", counterFormatter: \"counterFormatter\", detail: \"detail\", detailIcon: \"detailIcon\", disabled: \"disabled\", download: \"download\", fill: \"fill\", href: \"href\", lines: \"lines\", mode: \"mode\", rel: \"rel\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\", shape: \"shape\", target: \"target\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItem = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['button', 'color', 'counter', 'counterFormatter', 'detail', 'detailIcon', 'disabled', 'download', 'fill', 'href', 'lines', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'shape', 'target', 'type']\n })\n], IonItem);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItem, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['button', 'color', 'counter', 'counterFormatter', 'detail', 'detailIcon', 'disabled', 'download', 'fill', 'href', 'lines', 'mode', 'rel', 'routerAnimation', 'routerDirection', 'shape', 'target', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItemDivider = class IonItemDivider {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonItemDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItemDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItemDivider, selector: \"ion-item-divider\", inputs: { color: \"color\", mode: \"mode\", sticky: \"sticky\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItemDivider = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode', 'sticky']\n })\n], IonItemDivider);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemDivider, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode', 'sticky']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItemGroup = class IonItemGroup {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonItemGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItemGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItemGroup, selector: \"ion-item-group\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItemGroup = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonItemGroup);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemGroup, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItemOption = class IonItemOption {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonItemOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItemOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItemOption, selector: \"ion-item-option\", inputs: { color: \"color\", disabled: \"disabled\", download: \"download\", expandable: \"expandable\", href: \"href\", mode: \"mode\", rel: \"rel\", target: \"target\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItemOption = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'disabled', 'download', 'expandable', 'href', 'mode', 'rel', 'target', 'type']\n })\n], IonItemOption);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemOption, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'disabled', 'download', 'expandable', 'href', 'mode', 'rel', 'target', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItemOptions = class IonItemOptions {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionSwipe']);\n }\n};\n/** @nocollapse */ IonItemOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemOptions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItemOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItemOptions, selector: \"ion-item-options\", inputs: { side: \"side\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItemOptions = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['side']\n })\n], IonItemOptions);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemOptions, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item-options',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['side']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonItemSliding = class IonItemSliding {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionDrag']);\n }\n};\n/** @nocollapse */ IonItemSliding.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemSliding, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonItemSliding.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonItemSliding, selector: \"ion-item-sliding\", inputs: { disabled: \"disabled\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonItemSliding = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled'],\n methods: ['getOpenAmount', 'getSlidingRatio', 'open', 'close', 'closeOpened']\n })\n], IonItemSliding);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonItemSliding, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-item-sliding',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonLabel = class IonLabel {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonLabel, selector: \"ion-label\", inputs: { color: \"color\", mode: \"mode\", position: \"position\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonLabel = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode', 'position']\n })\n], IonLabel);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonLabel, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-label',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode', 'position']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonList = class IonList {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonList, selector: \"ion-list\", inputs: { inset: \"inset\", lines: \"lines\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonList = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['inset', 'lines', 'mode'],\n methods: ['closeSlidingItems']\n })\n], IonList);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonList, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['inset', 'lines', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonListHeader = class IonListHeader {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonListHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonListHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonListHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonListHeader, selector: \"ion-list-header\", inputs: { color: \"color\", lines: \"lines\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonListHeader = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'lines', 'mode']\n })\n], IonListHeader);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonListHeader, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-list-header',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'lines', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonMenu = class IonMenu {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionWillOpen', 'ionWillClose', 'ionDidOpen', 'ionDidClose']);\n }\n};\n/** @nocollapse */ IonMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonMenu, selector: \"ion-menu\", inputs: { contentId: \"contentId\", disabled: \"disabled\", maxEdgeStart: \"maxEdgeStart\", menuId: \"menuId\", side: \"side\", swipeGesture: \"swipeGesture\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonMenu = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['contentId', 'disabled', 'maxEdgeStart', 'menuId', 'side', 'swipeGesture', 'type'],\n methods: ['isOpen', 'isActive', 'open', 'close', 'toggle', 'setOpen']\n })\n], IonMenu);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenu, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['contentId', 'disabled', 'maxEdgeStart', 'menuId', 'side', 'swipeGesture', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonMenuButton = class IonMenuButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonMenuButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenuButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonMenuButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonMenuButton, selector: \"ion-menu-button\", inputs: { autoHide: \"autoHide\", color: \"color\", disabled: \"disabled\", menu: \"menu\", mode: \"mode\", type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonMenuButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['autoHide', 'color', 'disabled', 'menu', 'mode', 'type']\n })\n], IonMenuButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenuButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-menu-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['autoHide', 'color', 'disabled', 'menu', 'mode', 'type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonMenuToggle = class IonMenuToggle {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonMenuToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenuToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonMenuToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonMenuToggle, selector: \"ion-menu-toggle\", inputs: { autoHide: \"autoHide\", menu: \"menu\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonMenuToggle = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['autoHide', 'menu']\n })\n], IonMenuToggle);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonMenuToggle, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-menu-toggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['autoHide', 'menu']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonNav = class IonNav {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionNavWillChange', 'ionNavDidChange']);\n }\n};\n/** @nocollapse */ IonNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNav, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonNav, selector: \"ion-nav\", inputs: { animated: \"animated\", animation: \"animation\", root: \"root\", rootParams: \"rootParams\", swipeGesture: \"swipeGesture\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonNav = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture'],\n methods: ['push', 'insert', 'insertPages', 'pop', 'popTo', 'popToRoot', 'removeIndex', 'setRoot', 'setPages', 'getActive', 'getByIndex', 'canGoBack', 'getPrevious']\n })\n], IonNav);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNav, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-nav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonNavLink = class IonNavLink {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNavLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonNavLink, selector: \"ion-nav-link\", inputs: { component: \"component\", componentProps: \"componentProps\", routerAnimation: \"routerAnimation\", routerDirection: \"routerDirection\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonNavLink = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['component', 'componentProps', 'routerAnimation', 'routerDirection']\n })\n], IonNavLink);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNavLink, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-nav-link',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['component', 'componentProps', 'routerAnimation', 'routerDirection']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonNote = class IonNote {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonNote.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNote, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonNote.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonNote, selector: \"ion-note\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonNote = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonNote);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonNote, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-note',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonProgressBar = class IonProgressBar {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonProgressBar, selector: \"ion-progress-bar\", inputs: { buffer: \"buffer\", color: \"color\", mode: \"mode\", reversed: \"reversed\", type: \"type\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonProgressBar = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['buffer', 'color', 'mode', 'reversed', 'type', 'value']\n })\n], IonProgressBar);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonProgressBar, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-progress-bar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['buffer', 'color', 'mode', 'reversed', 'type', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRadio = class IonRadio {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRadio, selector: \"ion-radio\", inputs: { color: \"color\", disabled: \"disabled\", mode: \"mode\", name: \"name\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRadio = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'disabled', 'mode', 'name', 'value']\n })\n], IonRadio);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRadio, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-radio',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'disabled', 'mode', 'name', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRadioGroup = class IonRadioGroup {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange']);\n }\n};\n/** @nocollapse */ IonRadioGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRadioGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRadioGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRadioGroup, selector: \"ion-radio-group\", inputs: { allowEmptySelection: \"allowEmptySelection\", name: \"name\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRadioGroup = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['allowEmptySelection', 'name', 'value']\n })\n], IonRadioGroup);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRadioGroup, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-radio-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['allowEmptySelection', 'name', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRange = class IonRange {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur', 'ionKnobMoveStart', 'ionKnobMoveEnd']);\n }\n};\n/** @nocollapse */ IonRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRange, selector: \"ion-range\", inputs: { activeBarStart: \"activeBarStart\", color: \"color\", debounce: \"debounce\", disabled: \"disabled\", dualKnobs: \"dualKnobs\", max: \"max\", min: \"min\", mode: \"mode\", name: \"name\", pin: \"pin\", pinFormatter: \"pinFormatter\", snaps: \"snaps\", step: \"step\", ticks: \"ticks\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRange = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value']\n })\n], IonRange);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRange, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-range',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['activeBarStart', 'color', 'debounce', 'disabled', 'dualKnobs', 'max', 'min', 'mode', 'name', 'pin', 'pinFormatter', 'snaps', 'step', 'ticks', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRefresher = class IonRefresher {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionRefresh', 'ionPull', 'ionStart']);\n }\n};\n/** @nocollapse */ IonRefresher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRefresher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRefresher.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRefresher, selector: \"ion-refresher\", inputs: { closeDuration: \"closeDuration\", disabled: \"disabled\", pullFactor: \"pullFactor\", pullMax: \"pullMax\", pullMin: \"pullMin\", snapbackDuration: \"snapbackDuration\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRefresher = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['closeDuration', 'disabled', 'pullFactor', 'pullMax', 'pullMin', 'snapbackDuration'],\n methods: ['complete', 'cancel', 'getProgress']\n })\n], IonRefresher);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRefresher, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-refresher',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['closeDuration', 'disabled', 'pullFactor', 'pullMax', 'pullMin', 'snapbackDuration']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRefresherContent = class IonRefresherContent {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonRefresherContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRefresherContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRefresherContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRefresherContent, selector: \"ion-refresher-content\", inputs: { pullingIcon: \"pullingIcon\", pullingText: \"pullingText\", refreshingSpinner: \"refreshingSpinner\", refreshingText: \"refreshingText\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRefresherContent = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText']\n })\n], IonRefresherContent);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRefresherContent, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-refresher-content',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['pullingIcon', 'pullingText', 'refreshingSpinner', 'refreshingText']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonReorder = class IonReorder {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonReorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonReorder, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonReorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonReorder, selector: \"ion-reorder\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonReorder = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonReorder);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonReorder, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-reorder',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonReorderGroup = class IonReorderGroup {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionItemReorder']);\n }\n};\n/** @nocollapse */ IonReorderGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonReorderGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonReorderGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonReorderGroup, selector: \"ion-reorder-group\", inputs: { disabled: \"disabled\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonReorderGroup = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled'],\n methods: ['complete']\n })\n], IonReorderGroup);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonReorderGroup, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-reorder-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRippleEffect = class IonRippleEffect {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonRippleEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRippleEffect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRippleEffect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRippleEffect, selector: \"ion-ripple-effect\", inputs: { type: \"type\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRippleEffect = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['type'],\n methods: ['addRipple']\n })\n], IonRippleEffect);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRippleEffect, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-ripple-effect',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['type']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonRow = class IonRow {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRow, selector: \"ion-row\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonRow = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonRow);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRow, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-row',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSearchbar = class IonSearchbar {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionCancel', 'ionClear', 'ionBlur', 'ionFocus']);\n }\n};\n/** @nocollapse */ IonSearchbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSearchbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSearchbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSearchbar, selector: \"ion-searchbar\", inputs: { animated: \"animated\", autocomplete: \"autocomplete\", autocorrect: \"autocorrect\", cancelButtonIcon: \"cancelButtonIcon\", cancelButtonText: \"cancelButtonText\", clearIcon: \"clearIcon\", color: \"color\", debounce: \"debounce\", disabled: \"disabled\", enterkeyhint: \"enterkeyhint\", inputmode: \"inputmode\", mode: \"mode\", placeholder: \"placeholder\", searchIcon: \"searchIcon\", showCancelButton: \"showCancelButton\", showClearButton: \"showClearButton\", spellcheck: \"spellcheck\", type: \"type\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSearchbar = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value'],\n methods: ['setFocus', 'getInputElement']\n })\n], IonSearchbar);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSearchbar, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-searchbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', 'showClearButton', 'spellcheck', 'type', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSegment = class IonSegment {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange']);\n }\n};\n/** @nocollapse */ IonSegment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSegment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSegment, selector: \"ion-segment\", inputs: { color: \"color\", disabled: \"disabled\", mode: \"mode\", scrollable: \"scrollable\", selectOnFocus: \"selectOnFocus\", swipeGesture: \"swipeGesture\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSegment = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'disabled', 'mode', 'scrollable', 'selectOnFocus', 'swipeGesture', 'value']\n })\n], IonSegment);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSegment, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-segment',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'disabled', 'mode', 'scrollable', 'selectOnFocus', 'swipeGesture', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSegmentButton = class IonSegmentButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonSegmentButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSegmentButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSegmentButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSegmentButton, selector: \"ion-segment-button\", inputs: { disabled: \"disabled\", layout: \"layout\", mode: \"mode\", type: \"type\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSegmentButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled', 'layout', 'mode', 'type', 'value']\n })\n], IonSegmentButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSegmentButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-segment-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled', 'layout', 'mode', 'type', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSelect = class IonSelect {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionCancel', 'ionDismiss', 'ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSelect, selector: \"ion-select\", inputs: { cancelText: \"cancelText\", compareWith: \"compareWith\", disabled: \"disabled\", interface: \"interface\", interfaceOptions: \"interfaceOptions\", mode: \"mode\", multiple: \"multiple\", name: \"name\", okText: \"okText\", placeholder: \"placeholder\", selectedText: \"selectedText\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSelect = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['cancelText', 'compareWith', 'disabled', 'interface', 'interfaceOptions', 'mode', 'multiple', 'name', 'okText', 'placeholder', 'selectedText', 'value'],\n methods: ['open']\n })\n], IonSelect);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSelect, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['cancelText', 'compareWith', 'disabled', 'interface', 'interfaceOptions', 'mode', 'multiple', 'name', 'okText', 'placeholder', 'selectedText', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSelectOption = class IonSelectOption {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonSelectOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSelectOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSelectOption, selector: \"ion-select-option\", inputs: { disabled: \"disabled\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSelectOption = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled', 'value']\n })\n], IonSelectOption);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSelectOption, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-select-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSkeletonText = class IonSkeletonText {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonSkeletonText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSkeletonText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSkeletonText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSkeletonText, selector: \"ion-skeleton-text\", inputs: { animated: \"animated\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSkeletonText = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['animated']\n })\n], IonSkeletonText);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSkeletonText, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-skeleton-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['animated']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSlide = class IonSlide {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonSlide.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSlide, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSlide.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSlide, selector: \"ion-slide\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSlide = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonSlide);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSlide, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-slide',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSlides = class IonSlides {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionSlidesDidLoad', 'ionSlideTap', 'ionSlideDoubleTap', 'ionSlideWillChange', 'ionSlideDidChange', 'ionSlideNextStart', 'ionSlidePrevStart', 'ionSlideNextEnd', 'ionSlidePrevEnd', 'ionSlideTransitionStart', 'ionSlideTransitionEnd', 'ionSlideDrag', 'ionSlideReachStart', 'ionSlideReachEnd', 'ionSlideTouchStart', 'ionSlideTouchEnd']);\n }\n};\n/** @nocollapse */ IonSlides.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSlides, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSlides.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSlides, selector: \"ion-slides\", inputs: { mode: \"mode\", options: \"options\", pager: \"pager\", scrollbar: \"scrollbar\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSlides = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['mode', 'options', 'pager', 'scrollbar'],\n methods: ['update', 'updateAutoHeight', 'slideTo', 'slideNext', 'slidePrev', 'getActiveIndex', 'getPreviousIndex', 'length', 'isEnd', 'isBeginning', 'startAutoplay', 'stopAutoplay', 'lockSwipeToNext', 'lockSwipeToPrev', 'lockSwipes', 'getSwiper']\n })\n], IonSlides);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSlides, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-slides',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['mode', 'options', 'pager', 'scrollbar']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSpinner = class IonSpinner {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSpinner, selector: \"ion-spinner\", inputs: { color: \"color\", duration: \"duration\", name: \"name\", paused: \"paused\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSpinner = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'duration', 'name', 'paused']\n })\n], IonSpinner);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSpinner, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'duration', 'name', 'paused']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonSplitPane = class IonSplitPane {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionSplitPaneVisible']);\n }\n};\n/** @nocollapse */ IonSplitPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSplitPane, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonSplitPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonSplitPane, selector: \"ion-split-pane\", inputs: { contentId: \"contentId\", disabled: \"disabled\", when: \"when\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonSplitPane = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['contentId', 'disabled', 'when']\n })\n], IonSplitPane);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonSplitPane, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-split-pane',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['contentId', 'disabled', 'when']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonTabBar = class IonTabBar {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonTabBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonTabBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonTabBar, selector: \"ion-tab-bar\", inputs: { color: \"color\", mode: \"mode\", selectedTab: \"selectedTab\", translucent: \"translucent\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonTabBar = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode', 'selectedTab', 'translucent']\n })\n], IonTabBar);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabBar, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-tab-bar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode', 'selectedTab', 'translucent']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonTabButton = class IonTabButton {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonTabButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonTabButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonTabButton, selector: \"ion-tab-button\", inputs: { disabled: \"disabled\", download: \"download\", href: \"href\", layout: \"layout\", mode: \"mode\", rel: \"rel\", selected: \"selected\", tab: \"tab\", target: \"target\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonTabButton = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['disabled', 'download', 'href', 'layout', 'mode', 'rel', 'selected', 'tab', 'target']\n })\n], IonTabButton);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabButton, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-tab-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['disabled', 'download', 'href', 'layout', 'mode', 'rel', 'selected', 'tab', 'target']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonText = class IonText {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonText.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonText, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonText.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonText, selector: \"ion-text\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonText = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonText);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonText, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonTextarea = class IonTextarea {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionInput', 'ionBlur', 'ionFocus']);\n }\n};\n/** @nocollapse */ IonTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonTextarea, selector: \"ion-textarea\", inputs: { autoGrow: \"autoGrow\", autocapitalize: \"autocapitalize\", autofocus: \"autofocus\", clearOnEdit: \"clearOnEdit\", color: \"color\", cols: \"cols\", debounce: \"debounce\", disabled: \"disabled\", enterkeyhint: \"enterkeyhint\", inputmode: \"inputmode\", maxlength: \"maxlength\", minlength: \"minlength\", mode: \"mode\", name: \"name\", placeholder: \"placeholder\", readonly: \"readonly\", required: \"required\", rows: \"rows\", spellcheck: \"spellcheck\", value: \"value\", wrap: \"wrap\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonTextarea = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['autoGrow', 'autocapitalize', 'autofocus', 'clearOnEdit', 'color', 'cols', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'maxlength', 'minlength', 'mode', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'value', 'wrap'],\n methods: ['setFocus', 'getInputElement']\n })\n], IonTextarea);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTextarea, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['autoGrow', 'autocapitalize', 'autofocus', 'clearOnEdit', 'color', 'cols', 'debounce', 'disabled', 'enterkeyhint', 'inputmode', 'maxlength', 'minlength', 'mode', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'value', 'wrap']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonThumbnail = class IonThumbnail {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonThumbnail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonThumbnail, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonThumbnail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonThumbnail, selector: \"ion-thumbnail\", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonThumbnail = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined\n })\n], IonThumbnail);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonThumbnail, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-thumbnail',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonTitle = class IonTitle {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonTitle, selector: \"ion-title\", inputs: { color: \"color\", size: \"size\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonTitle = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'size']\n })\n], IonTitle);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTitle, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-title',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'size']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonToggle = class IonToggle {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);\n }\n};\n/** @nocollapse */ IonToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonToggle, selector: \"ion-toggle\", inputs: { checked: \"checked\", color: \"color\", disabled: \"disabled\", enableOnOffLabels: \"enableOnOffLabels\", mode: \"mode\", name: \"name\", value: \"value\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonToggle = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['checked', 'color', 'disabled', 'enableOnOffLabels', 'mode', 'name', 'value']\n })\n], IonToggle);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonToggle, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-toggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['checked', 'color', 'disabled', 'enableOnOffLabels', 'mode', 'name', 'value']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\nlet IonToolbar = class IonToolbar {\n constructor(c, r, z) {\n this.z = z;\n c.detach();\n this.el = r.nativeElement;\n }\n};\n/** @nocollapse */ IonToolbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonToolbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonToolbar, selector: \"ion-toolbar\", inputs: { color: \"color\", mode: \"mode\" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonToolbar = __decorate([\n ProxyCmp({\n defineCustomElementFn: undefined,\n inputs: ['color', 'mode']\n })\n], IonToolbar);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonToolbar, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-toolbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n inputs: ['color', 'mode']\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });\n\n/**\n * @description\n * NavParams are an object that exists on a page and can contain data for that particular view.\n * Similar to how data was pass to a view in V1 with `$stateParams`, NavParams offer a much more flexible\n * option with a simple `get` method.\n *\n * @usage\n * ```ts\n * import { NavParams } from '@ionic/angular';\n *\n * export class MyClass{\n *\n * constructor(navParams: NavParams){\n * // userParams is an object we have in our nav-parameters\n * navParams.get('userParams');\n * }\n *\n * }\n * ```\n */\nclass NavParams {\n constructor(data = {}) {\n this.data = data;\n }\n /**\n * Get the value of a nav-parameter for the current view\n *\n * ```ts\n * import { NavParams } from 'ionic-angular';\n *\n * export class MyClass{\n * constructor(public navParams: NavParams){\n * // userParams is an object we have in our nav-parameters\n * this.navParams.get('userParams');\n * }\n * }\n * ```\n *\n * @param param Which param you want to look up\n */\n get(param) {\n return this.data[param];\n }\n}\n\nclass AngularDelegate {\n constructor(zone, appRef) {\n this.zone = zone;\n this.appRef = appRef;\n }\n create(resolverOrInjector, injector, location) {\n return new AngularFrameworkDelegate(resolverOrInjector, injector, location, this.appRef, this.zone);\n }\n}\n/** @nocollapse */ AngularDelegate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AngularDelegate, deps: [{ token: i0.NgZone }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ AngularDelegate.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AngularDelegate });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AngularDelegate, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ApplicationRef }]; } });\nclass AngularFrameworkDelegate {\n constructor(resolverOrInjector, injector, location, appRef, zone) {\n this.resolverOrInjector = resolverOrInjector;\n this.injector = injector;\n this.location = location;\n this.appRef = appRef;\n this.zone = zone;\n this.elRefMap = new WeakMap();\n this.elEventsMap = new WeakMap();\n }\n attachViewToDom(container, component, params, cssClasses) {\n return this.zone.run(() => {\n return new Promise((resolve) => {\n const el = attachView(this.zone, this.resolverOrInjector, this.injector, this.location, this.appRef, this.elRefMap, this.elEventsMap, container, component, params, cssClasses);\n resolve(el);\n });\n });\n }\n removeViewFromDom(_container, component) {\n return this.zone.run(() => {\n return new Promise((resolve) => {\n const componentRef = this.elRefMap.get(component);\n if (componentRef) {\n componentRef.destroy();\n this.elRefMap.delete(component);\n const unbindEvents = this.elEventsMap.get(component);\n if (unbindEvents) {\n unbindEvents();\n this.elEventsMap.delete(component);\n }\n }\n resolve();\n });\n });\n }\n}\nconst attachView = (zone, resolverOrInjector, injector, location, appRef, elRefMap, elEventsMap, container, component, params, cssClasses) => {\n let componentRef;\n const childInjector = Injector.create({\n providers: getProviders(params),\n parent: injector,\n });\n if (resolverOrInjector && isComponentFactoryResolver(resolverOrInjector)) {\n // Angular 13 and lower\n const factory = resolverOrInjector.resolveComponentFactory(component);\n componentRef = location\n ? location.createComponent(factory, location.length, childInjector)\n : factory.create(childInjector);\n }\n else if (location) {\n // Angular 14\n const environmentInjector = resolverOrInjector;\n componentRef = location.createComponent(component, {\n index: location.indexOf,\n injector: childInjector,\n environmentInjector,\n });\n }\n else {\n return null;\n }\n const instance = componentRef.instance;\n const hostElement = componentRef.location.nativeElement;\n if (params) {\n Object.assign(instance, params);\n }\n if (cssClasses) {\n for (const clazz of cssClasses) {\n hostElement.classList.add(clazz);\n }\n }\n const unbindEvents = bindLifecycleEvents(zone, instance, hostElement);\n container.appendChild(hostElement);\n if (!location) {\n appRef.attachView(componentRef.hostView);\n }\n componentRef.changeDetectorRef.reattach();\n elRefMap.set(hostElement, componentRef);\n elEventsMap.set(hostElement, unbindEvents);\n return hostElement;\n};\nconst LIFECYCLES = [\n LIFECYCLE_WILL_ENTER,\n LIFECYCLE_DID_ENTER,\n LIFECYCLE_WILL_LEAVE,\n LIFECYCLE_DID_LEAVE,\n LIFECYCLE_WILL_UNLOAD,\n];\nconst bindLifecycleEvents = (zone, instance, element) => {\n return zone.run(() => {\n const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === 'function').map((eventName) => {\n const handler = (ev) => instance[eventName](ev.detail);\n element.addEventListener(eventName, handler);\n return () => element.removeEventListener(eventName, handler);\n });\n return () => unregisters.forEach((fn) => fn());\n });\n};\nconst NavParamsToken = new InjectionToken('NavParamsToken');\nconst getProviders = (params) => {\n return [\n {\n provide: NavParamsToken,\n useValue: params,\n },\n {\n provide: NavParams,\n useFactory: provideNavParamsInjectable,\n deps: [NavParamsToken],\n },\n ];\n};\nconst provideNavParamsInjectable = (params) => {\n return new NavParams(params);\n};\n\nconst insertView = (views, view, direction) => {\n if (direction === 'root') {\n return setRoot(views, view);\n }\n else if (direction === 'forward') {\n return setForward(views, view);\n }\n else {\n return setBack(views, view);\n }\n};\nconst setRoot = (views, view) => {\n views = views.filter((v) => v.stackId !== view.stackId);\n views.push(view);\n return views;\n};\nconst setForward = (views, view) => {\n const index = views.indexOf(view);\n if (index >= 0) {\n views = views.filter((v) => v.stackId !== view.stackId || v.id <= view.id);\n }\n else {\n views.push(view);\n }\n return views;\n};\nconst setBack = (views, view) => {\n const index = views.indexOf(view);\n if (index >= 0) {\n return views.filter((v) => v.stackId !== view.stackId || v.id <= view.id);\n }\n else {\n return setRoot(views, view);\n }\n};\nconst getUrl = (router, activatedRoute) => {\n const urlTree = router.createUrlTree(['.'], { relativeTo: activatedRoute });\n return router.serializeUrl(urlTree);\n};\nconst isTabSwitch = (enteringView, leavingView) => {\n if (!leavingView) {\n return true;\n }\n return enteringView.stackId !== leavingView.stackId;\n};\nconst computeStackId = (prefixUrl, url) => {\n if (!prefixUrl) {\n return undefined;\n }\n const segments = toSegments(url);\n for (let i = 0; i < segments.length; i++) {\n if (i >= prefixUrl.length) {\n return segments[i];\n }\n if (segments[i] !== prefixUrl[i]) {\n return undefined;\n }\n }\n return undefined;\n};\nconst toSegments = (path) => {\n return path\n .split('/')\n .map((s) => s.trim())\n .filter((s) => s !== '');\n};\nconst destroyView = (view) => {\n if (view) {\n // TODO lifecycle event\n view.ref.destroy();\n view.unlistenEvents();\n }\n};\n\nclass StackController {\n constructor(tabsPrefix, containerEl, router, navCtrl, zone, location) {\n this.containerEl = containerEl;\n this.router = router;\n this.navCtrl = navCtrl;\n this.zone = zone;\n this.location = location;\n this.views = [];\n this.skipTransition = false;\n this.nextId = 0;\n this.tabsPrefix = tabsPrefix !== undefined ? toSegments(tabsPrefix) : undefined;\n }\n createView(ref, activatedRoute) {\n var _a;\n const url = getUrl(this.router, activatedRoute);\n const element = (_a = ref === null || ref === void 0 ? void 0 : ref.location) === null || _a === void 0 ? void 0 : _a.nativeElement;\n const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element);\n return {\n id: this.nextId++,\n stackId: computeStackId(this.tabsPrefix, url),\n unlistenEvents,\n element,\n ref,\n url,\n };\n }\n getExistingView(activatedRoute) {\n const activatedUrlKey = getUrl(this.router, activatedRoute);\n const view = this.views.find((vw) => vw.url === activatedUrlKey);\n if (view) {\n view.ref.changeDetectorRef.reattach();\n }\n return view;\n }\n setActive(enteringView) {\n var _a, _b;\n const consumeResult = this.navCtrl.consumeTransition();\n let { direction, animation, animationBuilder } = consumeResult;\n const leavingView = this.activeView;\n const tabSwitch = isTabSwitch(enteringView, leavingView);\n if (tabSwitch) {\n direction = 'back';\n animation = undefined;\n }\n const viewsSnapshot = this.views.slice();\n let currentNavigation;\n const router = this.router;\n // Angular >= 7.2.0\n if (router.getCurrentNavigation) {\n currentNavigation = router.getCurrentNavigation();\n // Angular < 7.2.0\n }\n else if ((_a = router.navigations) === null || _a === void 0 ? void 0 : _a.value) {\n currentNavigation = router.navigations.value;\n }\n /**\n * If the navigation action\n * sets `replaceUrl: true`\n * then we need to make sure\n * we remove the last item\n * from our views stack\n */\n if ((_b = currentNavigation === null || currentNavigation === void 0 ? void 0 : currentNavigation.extras) === null || _b === void 0 ? void 0 : _b.replaceUrl) {\n if (this.views.length > 0) {\n this.views.splice(-1, 1);\n }\n }\n const reused = this.views.includes(enteringView);\n const views = this.insertView(enteringView, direction);\n // Trigger change detection before transition starts\n // This will call ngOnInit() the first time too, just after the view\n // was attached to the dom, but BEFORE the transition starts\n if (!reused) {\n enteringView.ref.changeDetectorRef.detectChanges();\n }\n /**\n * If we are going back from a page that\n * was presented using a custom animation\n * we should default to using that\n * unless the developer explicitly\n * provided another animation.\n */\n const customAnimation = enteringView.animationBuilder;\n if (animationBuilder === undefined && direction === 'back' && !tabSwitch && customAnimation !== undefined) {\n animationBuilder = customAnimation;\n }\n /**\n * Save any custom animation so that navigating\n * back will use this custom animation by default.\n */\n if (leavingView) {\n leavingView.animationBuilder = animationBuilder;\n }\n // Wait until previous transitions finish\n return this.zone.runOutsideAngular(() => {\n return this.wait(() => {\n // disconnect leaving page from change detection to\n // reduce jank during the page transition\n if (leavingView) {\n leavingView.ref.changeDetectorRef.detach();\n }\n // In case the enteringView is the same as the leavingPage we need to reattach()\n enteringView.ref.changeDetectorRef.reattach();\n return this.transition(enteringView, leavingView, animation, this.canGoBack(1), false, animationBuilder)\n .then(() => cleanupAsync(enteringView, views, viewsSnapshot, this.location, this.zone))\n .then(() => ({\n enteringView,\n direction,\n animation,\n tabSwitch,\n }));\n });\n });\n }\n canGoBack(deep, stackId = this.getActiveStackId()) {\n return this.getStack(stackId).length > deep;\n }\n pop(deep, stackId = this.getActiveStackId()) {\n return this.zone.run(() => {\n var _a, _b;\n const views = this.getStack(stackId);\n if (views.length <= deep) {\n return Promise.resolve(false);\n }\n const view = views[views.length - deep - 1];\n let url = view.url;\n const viewSavedData = view.savedData;\n if (viewSavedData) {\n const primaryOutlet = viewSavedData.get('primary');\n if ((_b = (_a = primaryOutlet === null || primaryOutlet === void 0 ? void 0 : primaryOutlet.route) === null || _a === void 0 ? void 0 : _a._routerState) === null || _b === void 0 ? void 0 : _b.snapshot.url) {\n url = primaryOutlet.route._routerState.snapshot.url;\n }\n }\n const { animationBuilder } = this.navCtrl.consumeTransition();\n return this.navCtrl.navigateBack(url, Object.assign(Object.assign({}, view.savedExtras), { animation: animationBuilder })).then(() => true);\n });\n }\n startBackTransition() {\n const leavingView = this.activeView;\n if (leavingView) {\n const views = this.getStack(leavingView.stackId);\n const enteringView = views[views.length - 2];\n const customAnimation = enteringView.animationBuilder;\n return this.wait(() => {\n return this.transition(enteringView, // entering view\n leavingView, // leaving view\n 'back', this.canGoBack(2), true, customAnimation);\n });\n }\n return Promise.resolve();\n }\n endBackTransition(shouldComplete) {\n if (shouldComplete) {\n this.skipTransition = true;\n this.pop(1);\n }\n else if (this.activeView) {\n cleanup(this.activeView, this.views, this.views, this.location, this.zone);\n }\n }\n getLastUrl(stackId) {\n const views = this.getStack(stackId);\n return views.length > 0 ? views[views.length - 1] : undefined;\n }\n /**\n * @internal\n */\n getRootUrl(stackId) {\n const views = this.getStack(stackId);\n return views.length > 0 ? views[0] : undefined;\n }\n getActiveStackId() {\n return this.activeView ? this.activeView.stackId : undefined;\n }\n hasRunningTask() {\n return this.runningTask !== undefined;\n }\n destroy() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.containerEl = undefined;\n this.views.forEach(destroyView);\n this.activeView = undefined;\n this.views = [];\n }\n getStack(stackId) {\n return this.views.filter((v) => v.stackId === stackId);\n }\n insertView(enteringView, direction) {\n this.activeView = enteringView;\n this.views = insertView(this.views, enteringView, direction);\n return this.views.slice();\n }\n transition(enteringView, leavingView, direction, showGoBack, progressAnimation, animationBuilder) {\n if (this.skipTransition) {\n this.skipTransition = false;\n return Promise.resolve(false);\n }\n if (leavingView === enteringView) {\n return Promise.resolve(false);\n }\n const enteringEl = enteringView ? enteringView.element : undefined;\n const leavingEl = leavingView ? leavingView.element : undefined;\n const containerEl = this.containerEl;\n if (enteringEl && enteringEl !== leavingEl) {\n enteringEl.classList.add('ion-page');\n enteringEl.classList.add('ion-page-invisible');\n if (enteringEl.parentElement !== containerEl) {\n containerEl.appendChild(enteringEl);\n }\n if (containerEl.commit) {\n return containerEl.commit(enteringEl, leavingEl, {\n deepWait: true,\n duration: direction === undefined ? 0 : undefined,\n direction,\n showGoBack,\n progressAnimation,\n animationBuilder,\n });\n }\n }\n return Promise.resolve(false);\n }\n wait(task) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.runningTask !== undefined) {\n yield this.runningTask;\n this.runningTask = undefined;\n }\n const promise = (this.runningTask = task());\n promise.finally(() => (this.runningTask = undefined));\n return promise;\n });\n }\n}\nconst cleanupAsync = (activeRoute, views, viewsSnapshot, location, zone) => {\n if (typeof requestAnimationFrame === 'function') {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n cleanup(activeRoute, views, viewsSnapshot, location, zone);\n resolve();\n });\n });\n }\n return Promise.resolve();\n};\nconst cleanup = (activeRoute, views, viewsSnapshot, location, zone) => {\n /**\n * Re-enter the Angular zone when destroying page components. This will allow\n * lifecycle events (`ngOnDestroy`) to be run inside the Angular zone.\n */\n zone.run(() => viewsSnapshot.filter((view) => !views.includes(view)).forEach(destroyView));\n views.forEach((view) => {\n /**\n * In the event that a user navigated multiple\n * times in rapid succession, we want to make sure\n * we don't pre-emptively detach a view while\n * it is in mid-transition.\n *\n * In this instance we also do not care about query\n * params or fragments as it will be the same view regardless\n */\n const locationWithoutParams = location.path().split('?')[0];\n const locationWithoutFragment = locationWithoutParams.split('#')[0];\n if (view !== activeRoute && view.url !== locationWithoutFragment) {\n const element = view.element;\n element.setAttribute('aria-hidden', 'true');\n element.classList.add('ion-page-hidden');\n view.ref.changeDetectorRef.detach();\n }\n });\n};\n\nclass Config {\n get(key, fallback) {\n const c = getConfig();\n if (c) {\n return c.get(key, fallback);\n }\n return null;\n }\n getBoolean(key, fallback) {\n const c = getConfig();\n if (c) {\n return c.getBoolean(key, fallback);\n }\n return false;\n }\n getNumber(key, fallback) {\n const c = getConfig();\n if (c) {\n return c.getNumber(key, fallback);\n }\n return 0;\n }\n}\n/** @nocollapse */ Config.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Config, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ Config.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Config, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Config, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nconst ConfigToken = new InjectionToken('USERCONFIG');\nconst getConfig = () => {\n if (typeof window !== 'undefined') {\n const Ionic = window.Ionic;\n if (Ionic === null || Ionic === void 0 ? void 0 : Ionic.config) {\n return Ionic.config;\n }\n }\n return null;\n};\n\nclass Platform {\n constructor(doc, zone) {\n this.doc = doc;\n /**\n * @hidden\n */\n this.backButton = new Subject();\n /**\n * The keyboardDidShow event emits when the\n * on-screen keyboard is presented.\n */\n this.keyboardDidShow = new Subject();\n /**\n * The keyboardDidHide event emits when the\n * on-screen keyboard is hidden.\n */\n this.keyboardDidHide = new Subject();\n /**\n * The pause event emits when the native platform puts the application\n * into the background, typically when the user switches to a different\n * application. This event would emit when a Cordova app is put into\n * the background, however, it would not fire on a standard web browser.\n */\n this.pause = new Subject();\n /**\n * The resume event emits when the native platform pulls the application\n * out from the background. This event would emit when a Cordova app comes\n * out from the background, however, it would not fire on a standard web browser.\n */\n this.resume = new Subject();\n /**\n * The resize event emits when the browser window has changed dimensions. This\n * could be from a browser window being physically resized, or from a device\n * changing orientation.\n */\n this.resize = new Subject();\n zone.run(() => {\n var _a;\n this.win = doc.defaultView;\n this.backButton.subscribeWithPriority = function (priority, callback) {\n return this.subscribe((ev) => {\n return ev.register(priority, (processNextHandler) => zone.run(() => callback(processNextHandler)));\n });\n };\n proxyEvent(this.pause, doc, 'pause');\n proxyEvent(this.resume, doc, 'resume');\n proxyEvent(this.backButton, doc, 'ionBackButton');\n proxyEvent(this.resize, this.win, 'resize');\n proxyEvent(this.keyboardDidShow, this.win, 'ionKeyboardDidShow');\n proxyEvent(this.keyboardDidHide, this.win, 'ionKeyboardDidHide');\n let readyResolve;\n this._readyPromise = new Promise((res) => {\n readyResolve = res;\n });\n if ((_a = this.win) === null || _a === void 0 ? void 0 : _a['cordova']) {\n doc.addEventListener('deviceready', () => {\n readyResolve('cordova');\n }, { once: true });\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n readyResolve('dom');\n }\n });\n }\n /**\n * @returns returns true/false based on platform.\n * @description\n * Depending on the platform the user is on, `is(platformName)` will\n * return `true` or `false`. Note that the same app can return `true`\n * for more than one platform name. For example, an app running from\n * an iPad would return `true` for the platform names: `mobile`,\n * `ios`, `ipad`, and `tablet`. Additionally, if the app was running\n * from Cordova then `cordova` would be true, and if it was running\n * from a web browser on the iPad then `mobileweb` would be `true`.\n *\n * ```\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyPage {\n * constructor(public platform: Platform) {\n * if (this.platform.is('ios')) {\n * // This will only print when on iOS\n * console.log('I am an iOS device!');\n * }\n * }\n * }\n * ```\n *\n * | Platform Name | Description |\n * |-----------------|------------------------------------|\n * | android | on a device running Android. |\n * | capacitor | on a device running Capacitor. |\n * | cordova | on a device running Cordova. |\n * | ios | on a device running iOS. |\n * | ipad | on an iPad device. |\n * | iphone | on an iPhone device. |\n * | phablet | on a phablet device. |\n * | tablet | on a tablet device. |\n * | electron | in Electron on a desktop device. |\n * | pwa | as a PWA app. |\n * | mobile | on a mobile device. |\n * | mobileweb | on a mobile device in a browser. |\n * | desktop | on a desktop device. |\n * | hybrid | is a cordova or capacitor app. |\n *\n */\n is(platformName) {\n return isPlatform(this.win, platformName);\n }\n /**\n * @returns the array of platforms\n * @description\n * Depending on what device you are on, `platforms` can return multiple values.\n * Each possible value is a hierarchy of platforms. For example, on an iPhone,\n * it would return `mobile`, `ios`, and `iphone`.\n *\n * ```\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyPage {\n * constructor(public platform: Platform) {\n * // This will print an array of the current platforms\n * console.log(this.platform.platforms());\n * }\n * }\n * ```\n */\n platforms() {\n return getPlatforms(this.win);\n }\n /**\n * Returns a promise when the platform is ready and native functionality\n * can be called. If the app is running from within a web browser, then\n * the promise will resolve when the DOM is ready. When the app is running\n * from an application engine such as Cordova, then the promise will\n * resolve when Cordova triggers the `deviceready` event.\n *\n * The resolved value is the `readySource`, which states which platform\n * ready was used. For example, when Cordova is ready, the resolved ready\n * source is `cordova`. The default ready source value will be `dom`. The\n * `readySource` is useful if different logic should run depending on the\n * platform the app is running from. For example, only Cordova can execute\n * the status bar plugin, so the web should not run status bar plugin logic.\n *\n * ```\n * import { Component } from '@angular/core';\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyApp {\n * constructor(public platform: Platform) {\n * this.platform.ready().then((readySource) => {\n * console.log('Platform ready from', readySource);\n * // Platform now ready, execute any required native code\n * });\n * }\n * }\n * ```\n */\n ready() {\n return this._readyPromise;\n }\n /**\n * Returns if this app is using right-to-left language direction or not.\n * We recommend the app's `index.html` file already has the correct `dir`\n * attribute value set, such as `` or ``.\n * [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir)\n */\n get isRTL() {\n return this.doc.dir === 'rtl';\n }\n /**\n * Get the query string parameter\n */\n getQueryParam(key) {\n return readQueryParam(this.win.location.href, key);\n }\n /**\n * Returns `true` if the app is in landscape mode.\n */\n isLandscape() {\n return !this.isPortrait();\n }\n /**\n * Returns `true` if the app is in portrait mode.\n */\n isPortrait() {\n var _a, _b;\n return (_b = (_a = this.win).matchMedia) === null || _b === void 0 ? void 0 : _b.call(_a, '(orientation: portrait)').matches;\n }\n testUserAgent(expression) {\n const nav = this.win.navigator;\n return !!((nav === null || nav === void 0 ? void 0 : nav.userAgent) && nav.userAgent.indexOf(expression) >= 0);\n }\n /**\n * Get the current url.\n */\n url() {\n return this.win.location.href;\n }\n /**\n * Gets the width of the platform's viewport using `window.innerWidth`.\n */\n width() {\n return this.win.innerWidth;\n }\n /**\n * Gets the height of the platform's viewport using `window.innerHeight`.\n */\n height() {\n return this.win.innerHeight;\n }\n}\n/** @nocollapse */ Platform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Platform, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Platform, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }]; } });\nconst readQueryParam = (url, key) => {\n key = key.replace(/[[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp('[\\\\?&]' + key + '=([^&#]*)');\n const results = regex.exec(url);\n return results ? decodeURIComponent(results[1].replace(/\\+/g, ' ')) : null;\n};\nconst proxyEvent = (emitter, el, eventName) => {\n if (el) {\n el.addEventListener(eventName, (ev) => {\n // ?? cordova might emit \"null\" events\n emitter.next(ev != null ? ev.detail : undefined);\n });\n }\n};\n\nclass NavController {\n constructor(platform, location, serializer, router) {\n this.location = location;\n this.serializer = serializer;\n this.router = router;\n this.direction = DEFAULT_DIRECTION;\n this.animated = DEFAULT_ANIMATED;\n this.guessDirection = 'forward';\n this.lastNavId = -1;\n // Subscribe to router events to detect direction\n if (router) {\n router.events.subscribe((ev) => {\n if (ev instanceof NavigationStart) {\n const id = ev.restoredState ? ev.restoredState.navigationId : ev.id;\n this.guessDirection = id < this.lastNavId ? 'back' : 'forward';\n this.guessAnimation = !ev.restoredState ? this.guessDirection : undefined;\n this.lastNavId = this.guessDirection === 'forward' ? ev.id : id;\n }\n });\n }\n // Subscribe to backButton events\n platform.backButton.subscribeWithPriority(0, (processNextHandler) => {\n this.pop();\n processNextHandler();\n });\n }\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling `this.router.navigateByUrl()`, but it's explicit about the **direction** of the transition.\n *\n * Going **forward** means that a new page is going to be pushed to the stack of the outlet (ion-router-outlet),\n * and that it will show a \"forward\" animation by default.\n *\n * Navigating forward can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * Link\n * ```\n */\n navigateForward(url, options = {}) {\n this.setDirection('forward', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling:\n *\n * ```ts\n * this.navController.setDirection('back');\n * this.router.navigateByUrl(path);\n * ```\n *\n * Going **back** means that all the pages in the stack until the navigated page is found will be popped,\n * and that it will show a \"back\" animation by default.\n *\n * Navigating back can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * Link\n * ```\n */\n navigateBack(url, options = {}) {\n this.setDirection('back', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling:\n *\n * ```ts\n * this.navController.setDirection('root');\n * this.router.navigateByUrl(path);\n * ```\n *\n * Going **root** means that all existing pages in the stack will be removed,\n * and the navigated page will become the single page in the stack.\n *\n * Navigating root can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * Link\n * ```\n */\n navigateRoot(url, options = {}) {\n this.setDirection('root', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n /**\n * Same as [Location](https://angular.io/api/common/Location)'s back() method.\n * It will use the standard `window.history.back()` under the hood, but featuring a `back` animation\n * by default.\n */\n back(options = { animated: true, animationDirection: 'back' }) {\n this.setDirection('back', options.animated, options.animationDirection, options.animation);\n return this.location.back();\n }\n /**\n * This methods goes back in the context of Ionic's stack navigation.\n *\n * It recursively finds the top active `ion-router-outlet` and calls `pop()`.\n * This is the recommended way to go back when you are using `ion-router-outlet`.\n */\n pop() {\n return __awaiter(this, void 0, void 0, function* () {\n let outlet = this.topOutlet;\n while (outlet) {\n if (yield outlet.pop()) {\n break;\n }\n else {\n outlet = outlet.parentOutlet;\n }\n }\n });\n }\n /**\n * This methods specifies the direction of the next navigation performed by the Angular router.\n *\n * `setDirection()` does not trigger any transition, it just sets some flags to be consumed by `ion-router-outlet`.\n *\n * It's recommended to use `navigateForward()`, `navigateBack()` and `navigateRoot()` instead of `setDirection()`.\n */\n setDirection(direction, animated, animationDirection, animationBuilder) {\n this.direction = direction;\n this.animated = getAnimation(direction, animated, animationDirection);\n this.animationBuilder = animationBuilder;\n }\n /**\n * @internal\n */\n setTopOutlet(outlet) {\n this.topOutlet = outlet;\n }\n /**\n * @internal\n */\n consumeTransition() {\n let direction = 'root';\n let animation;\n const animationBuilder = this.animationBuilder;\n if (this.direction === 'auto') {\n direction = this.guessDirection;\n animation = this.guessAnimation;\n }\n else {\n animation = this.animated;\n direction = this.direction;\n }\n this.direction = DEFAULT_DIRECTION;\n this.animated = DEFAULT_ANIMATED;\n this.animationBuilder = undefined;\n return {\n direction,\n animation,\n animationBuilder,\n };\n }\n navigate(url, options) {\n if (Array.isArray(url)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.router.navigate(url, options);\n }\n else {\n /**\n * navigateByUrl ignores any properties that\n * would change the url, so things like queryParams\n * would be ignored unless we create a url tree\n * More Info: https://github.com/angular/angular/issues/18798\n */\n const urlTree = this.serializer.parse(url.toString());\n if (options.queryParams !== undefined) {\n urlTree.queryParams = Object.assign({}, options.queryParams);\n }\n if (options.fragment !== undefined) {\n urlTree.fragment = options.fragment;\n }\n /**\n * `navigateByUrl` will still apply `NavigationExtras` properties\n * that do not modify the url, such as `replaceUrl` which is why\n * `options` is passed in here.\n */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.router.navigateByUrl(urlTree, options);\n }\n }\n}\n/** @nocollapse */ NavController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NavController, deps: [{ token: Platform }, { token: i1.Location }, { token: i3.UrlSerializer }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ NavController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NavController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NavController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return [{ type: Platform }, { type: i1.Location }, { type: i3.UrlSerializer }, { type: i3.Router, decorators: [{\n type: Optional\n }] }]; } });\nconst getAnimation = (direction, animated, animationDirection) => {\n if (animated === false) {\n return undefined;\n }\n if (animationDirection !== undefined) {\n return animationDirection;\n }\n if (direction === 'forward' || direction === 'back') {\n return direction;\n }\n else if (direction === 'root' && animated === true) {\n return 'forward';\n }\n return undefined;\n};\nconst DEFAULT_DIRECTION = 'auto';\nconst DEFAULT_ANIMATED = undefined;\n\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nclass IonRouterOutlet {\n constructor(parentContexts, location, name, tabs, config, navCtrl, componentFactoryResolver, commonLocation, elementRef, router, zone, activatedRoute, parentOutlet) {\n this.parentContexts = parentContexts;\n this.location = location;\n this.config = config;\n this.navCtrl = navCtrl;\n this.componentFactoryResolver = componentFactoryResolver;\n this.parentOutlet = parentOutlet;\n this.activated = null;\n this.activatedView = null;\n this._activatedRoute = null;\n // Maintain map of activated route proxies for each component instance\n this.proxyMap = new WeakMap();\n // Keep the latest activated route in a subject for the proxy routes to switch map to\n this.currentActivatedRoute$ = new BehaviorSubject(null);\n this.stackEvents = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n this.activateEvents = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-rename\n this.deactivateEvents = new EventEmitter();\n this.nativeEl = elementRef.nativeElement;\n this.name = name || PRIMARY_OUTLET;\n this.tabsPrefix = tabs === 'true' ? getUrl(router, activatedRoute) : undefined;\n this.stackCtrl = new StackController(this.tabsPrefix, this.nativeEl, router, navCtrl, zone, commonLocation);\n parentContexts.onChildOutletCreated(this.name, this);\n }\n set animation(animation) {\n this.nativeEl.animation = animation;\n }\n set animated(animated) {\n this.nativeEl.animated = animated;\n }\n set swipeGesture(swipe) {\n this._swipeGesture = swipe;\n this.nativeEl.swipeHandler = swipe\n ? {\n canStart: () => this.stackCtrl.canGoBack(1) && !this.stackCtrl.hasRunningTask(),\n onStart: () => this.stackCtrl.startBackTransition(),\n onEnd: (shouldContinue) => this.stackCtrl.endBackTransition(shouldContinue),\n }\n : undefined;\n }\n ngOnDestroy() {\n this.stackCtrl.destroy();\n }\n getContext() {\n return this.parentContexts.getContext(this.name);\n }\n ngOnInit() {\n if (!this.activated) {\n // If the outlet was not instantiated at the time the route got activated we need to populate\n // the outlet when it is initialized (ie inside a NgIf)\n const context = this.getContext();\n if (context === null || context === void 0 ? void 0 : context.route) {\n this.activateWith(context.route, context.resolver || null);\n }\n }\n new Promise((resolve) => componentOnReady(this.nativeEl, resolve)).then(() => {\n if (this._swipeGesture === undefined) {\n this.swipeGesture = this.config.getBoolean('swipeBackEnabled', this.nativeEl.mode === 'ios');\n }\n });\n }\n get isActivated() {\n return !!this.activated;\n }\n get component() {\n if (!this.activated) {\n throw new Error('Outlet is not activated');\n }\n return this.activated.instance;\n }\n get activatedRoute() {\n if (!this.activated) {\n throw new Error('Outlet is not activated');\n }\n return this._activatedRoute;\n }\n get activatedRouteData() {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach() {\n throw new Error('incompatible reuse strategy');\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attach(_ref, _activatedRoute) {\n throw new Error('incompatible reuse strategy');\n }\n deactivate() {\n if (this.activated) {\n if (this.activatedView) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const context = this.getContext();\n this.activatedView.savedData = new Map(context.children['contexts']);\n /**\n * Angular v11.2.10 introduced a change\n * where this route context is cleared out when\n * a router-outlet is deactivated, However,\n * we need this route information in order to\n * return a user back to the correct tab when\n * leaving and then going back to the tab context.\n */\n const primaryOutlet = this.activatedView.savedData.get('primary');\n if (primaryOutlet && context.route) {\n primaryOutlet.route = Object.assign({}, context.route);\n }\n /**\n * Ensure we are saving the NavigationExtras\n * data otherwise it will be lost\n */\n this.activatedView.savedExtras = {};\n if (context.route) {\n const contextSnapshot = context.route.snapshot;\n this.activatedView.savedExtras.queryParams = contextSnapshot.queryParams;\n this.activatedView.savedExtras.fragment = contextSnapshot.fragment;\n }\n }\n const c = this.component;\n this.activatedView = null;\n this.activated = null;\n this._activatedRoute = null;\n this.deactivateEvents.emit(c);\n }\n }\n activateWith(activatedRoute, resolverOrInjector) {\n var _a;\n if (this.isActivated) {\n throw new Error('Cannot activate an already activated outlet');\n }\n this._activatedRoute = activatedRoute;\n let cmpRef;\n let enteringView = this.stackCtrl.getExistingView(activatedRoute);\n if (enteringView) {\n cmpRef = this.activated = enteringView.ref;\n const saved = enteringView.savedData;\n if (saved) {\n // self-restore\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const context = this.getContext();\n context.children['contexts'] = saved;\n }\n // Updated activated route proxy for this component\n this.updateActivatedRouteProxy(cmpRef.instance, activatedRoute);\n }\n else {\n const snapshot = activatedRoute._futureSnapshot;\n /**\n * Angular 14 introduces a new `loadComponent` property to the route config.\n * This function will assign a `component` property to the route snapshot.\n * We check for the presence of this property to determine if the route is\n * using standalone components.\n */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (snapshot.routeConfig.component == null && this.environmentInjector == null) {\n console.warn('[Ionic Warning]: You must supply an environmentInjector to use standalone components with routing:\\n\\n' +\n 'In your component class, add:\\n\\n' +\n ` import { EnvironmentInjector } from '@angular/core';\\n` +\n ' constructor(public environmentInjector: EnvironmentInjector) {}\\n' +\n '\\n' +\n 'In your router outlet template, add:\\n\\n' +\n ' \\n\\n' +\n 'Alternatively, if you are routing within ion-tabs:\\n\\n' +\n ' ');\n return;\n }\n const childContexts = this.parentContexts.getOrCreateContext(this.name).children;\n // We create an activated route proxy object that will maintain future updates for this component\n // over its lifecycle in the stack.\n const component$ = new BehaviorSubject(null);\n const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute);\n const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector);\n /**\n * The resolver is not always provided and is required in Angular 12.\n * Fallback to the class-level provider when the resolver is not set.\n */\n resolverOrInjector = resolverOrInjector || this.componentFactoryResolver;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const component = (_a = snapshot.routeConfig.component) !== null && _a !== void 0 ? _a : snapshot.component;\n if (resolverOrInjector && isComponentFactoryResolver(resolverOrInjector)) {\n // Backwards compatibility for Angular 13 and lower\n const factory = resolverOrInjector.resolveComponentFactory(component);\n cmpRef = this.activated = this.location.createComponent(factory, this.location.length, injector);\n }\n else {\n /**\n * Angular 14 and higher.\n *\n * TODO: FW-1641: Migrate once Angular 13 support is dropped.\n *\n * When we drop < Angular 14, we can replace the following code with:\n * ```ts\n const environmentInjector = resolverOrInjector ?? this.environmentInjector;\n cmpRef = this.activated = location.createComponent(component, {\n index: location.length,\n injector,\n environmentInjector,\n });\n * ```\n * where `this.environmentInjector` is a provider of `EnvironmentInjector` from @angular/core.\n */\n const environmentInjector = resolverOrInjector !== null && resolverOrInjector !== void 0 ? resolverOrInjector : this.environmentInjector;\n cmpRef = this.activated = this.location.createComponent(component, {\n index: this.location.length,\n injector,\n environmentInjector,\n });\n }\n // Once the component is created we can push it to our local subject supplied to the proxy\n component$.next(cmpRef.instance);\n // Calling `markForCheck` to make sure we will run the change detection when the\n // `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.\n enteringView = this.stackCtrl.createView(this.activated, activatedRoute);\n // Store references to the proxy by component\n this.proxyMap.set(cmpRef.instance, activatedRouteProxy);\n this.currentActivatedRoute$.next({ component: cmpRef.instance, activatedRoute });\n }\n this.activatedView = enteringView;\n /**\n * The top outlet is set prior to the entering view's transition completing,\n * so that when we have nested outlets (e.g. ion-tabs inside an ion-router-outlet),\n * the tabs outlet will be assigned as the top outlet when a view inside tabs is\n * activated.\n *\n * In this scenario, activeWith is called for both the tabs and the root router outlet.\n * To avoid a race condition, we assign the top outlet synchronously.\n */\n this.navCtrl.setTopOutlet(this);\n this.stackCtrl.setActive(enteringView).then((data) => {\n this.activateEvents.emit(cmpRef.instance);\n this.stackEvents.emit(data);\n });\n }\n /**\n * Returns `true` if there are pages in the stack to go back.\n */\n canGoBack(deep = 1, stackId) {\n return this.stackCtrl.canGoBack(deep, stackId);\n }\n /**\n * Resolves to `true` if it the outlet was able to sucessfully pop the last N pages.\n */\n pop(deep = 1, stackId) {\n return this.stackCtrl.pop(deep, stackId);\n }\n /**\n * Returns the URL of the active page of each stack.\n */\n getLastUrl(stackId) {\n const active = this.stackCtrl.getLastUrl(stackId);\n return active ? active.url : undefined;\n }\n /**\n * Returns the RouteView of the active page of each stack.\n * @internal\n */\n getLastRouteView(stackId) {\n return this.stackCtrl.getLastUrl(stackId);\n }\n /**\n * Returns the root view in the tab stack.\n * @internal\n */\n getRootView(stackId) {\n return this.stackCtrl.getRootUrl(stackId);\n }\n /**\n * Returns the active stack ID. In the context of ion-tabs, it means the active tab.\n */\n getActiveStackId() {\n return this.stackCtrl.getActiveStackId();\n }\n /**\n * Since the activated route can change over the life time of a component in an ion router outlet, we create\n * a proxy so that we can update the values over time as a user navigates back to components already in the stack.\n */\n createActivatedRouteProxy(component$, activatedRoute) {\n const proxy = new ActivatedRoute();\n proxy._futureSnapshot = activatedRoute._futureSnapshot;\n proxy._routerState = activatedRoute._routerState;\n proxy.snapshot = activatedRoute.snapshot;\n proxy.outlet = activatedRoute.outlet;\n proxy.component = activatedRoute.component;\n // Setup wrappers for the observables so consumers don't have to worry about switching to new observables as the state updates\n proxy._paramMap = this.proxyObservable(component$, 'paramMap');\n proxy._queryParamMap = this.proxyObservable(component$, 'queryParamMap');\n proxy.url = this.proxyObservable(component$, 'url');\n proxy.params = this.proxyObservable(component$, 'params');\n proxy.queryParams = this.proxyObservable(component$, 'queryParams');\n proxy.fragment = this.proxyObservable(component$, 'fragment');\n proxy.data = this.proxyObservable(component$, 'data');\n return proxy;\n }\n /**\n * Create a wrapped observable that will switch to the latest activated route matched by the given component\n */\n proxyObservable(component$, path) {\n return component$.pipe(\n // First wait until the component instance is pushed\n filter((component) => !!component), switchMap((component) => this.currentActivatedRoute$.pipe(filter((current) => current !== null && current.component === component), switchMap((current) => current && current.activatedRoute[path]), distinctUntilChanged())));\n }\n /**\n * Updates the activated route proxy for the given component to the new incoming router state\n */\n updateActivatedRouteProxy(component, activatedRoute) {\n const proxy = this.proxyMap.get(component);\n if (!proxy) {\n throw new Error(`Could not find activated route proxy for view`);\n }\n proxy._futureSnapshot = activatedRoute._futureSnapshot;\n proxy._routerState = activatedRoute._routerState;\n proxy.snapshot = activatedRoute.snapshot;\n proxy.outlet = activatedRoute.outlet;\n proxy.component = activatedRoute.component;\n this.currentActivatedRoute$.next({ component, activatedRoute });\n }\n}\n/** @nocollapse */ IonRouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRouterOutlet, deps: [{ token: i3.ChildrenOutletContexts }, { token: i0.ViewContainerRef }, { token: 'name', attribute: true }, { token: 'tabs', attribute: true, optional: true }, { token: Config }, { token: NavController }, { token: i0.ComponentFactoryResolver, optional: true }, { token: i1.Location }, { token: i0.ElementRef }, { token: i3.Router }, { token: i0.NgZone }, { token: i3.ActivatedRoute }, { token: IonRouterOutlet, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ IonRouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonRouterOutlet, selector: \"ion-router-outlet\", inputs: { animated: \"animated\", animation: \"animation\", mode: \"mode\", swipeGesture: \"swipeGesture\", environmentInjector: \"environmentInjector\" }, outputs: { stackEvents: \"stackEvents\", activateEvents: \"activate\", deactivateEvents: \"deactivate\" }, exportAs: [\"outlet\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonRouterOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: 'ion-router-outlet',\n exportAs: 'outlet',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['animated', 'animation', 'mode', 'swipeGesture'],\n }]\n }], ctorParameters: function () { return [{ type: i3.ChildrenOutletContexts }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['name']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Attribute,\n args: ['tabs']\n }] }, { type: Config }, { type: NavController }, { type: i0.ComponentFactoryResolver, decorators: [{\n type: Optional\n }] }, { type: i1.Location }, { type: i0.ElementRef }, { type: i3.Router }, { type: i0.NgZone }, { type: i3.ActivatedRoute }, { type: IonRouterOutlet, decorators: [{\n type: SkipSelf\n }, {\n type: Optional\n }] }]; }, propDecorators: { environmentInjector: [{\n type: Input\n }], stackEvents: [{\n type: Output\n }], activateEvents: [{\n type: Output,\n args: ['activate']\n }], deactivateEvents: [{\n type: Output,\n args: ['deactivate']\n }] } });\nclass OutletInjector {\n constructor(route, childContexts, parent) {\n this.route = route;\n this.childContexts = childContexts;\n this.parent = parent;\n }\n get(token, notFoundValue) {\n if (token === ActivatedRoute) {\n return this.route;\n }\n if (token === ChildrenOutletContexts) {\n return this.childContexts;\n }\n return this.parent.get(token, notFoundValue);\n }\n}\n\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nclass IonTabs {\n constructor(navCtrl) {\n this.navCtrl = navCtrl;\n this.ionTabsWillChange = new EventEmitter();\n this.ionTabsDidChange = new EventEmitter();\n }\n /**\n * @internal\n */\n onPageSelected(detail) {\n const stackId = detail.enteringView.stackId;\n if (detail.tabSwitch && stackId !== undefined) {\n this.ionTabsWillChange.emit({ tab: stackId });\n if (this.tabBar) {\n this.tabBar.selectedTab = stackId;\n }\n this.ionTabsDidChange.emit({ tab: stackId });\n }\n }\n /**\n * When a tab button is clicked, there are several scenarios:\n * 1. If the selected tab is currently active (the tab button has been clicked\n * again), then it should go to the root view for that tab.\n *\n * a. Get the saved root view from the router outlet. If the saved root view\n * matches the tabRootUrl, set the route view to this view including the\n * navigation extras.\n * b. If the saved root view from the router outlet does\n * not match, navigate to the tabRootUrl. No navigation extras are\n * included.\n *\n * 2. If the current tab tab is not currently selected, get the last route\n * view from the router outlet.\n *\n * a. If the last route view exists, navigate to that view including any\n * navigation extras\n * b. If the last route view doesn't exist, then navigate\n * to the default tabRootUrl\n */\n select(tabOrEvent) {\n const isTabString = typeof tabOrEvent === 'string';\n const tab = isTabString ? tabOrEvent : tabOrEvent.detail.tab;\n const alreadySelected = this.outlet.getActiveStackId() === tab;\n const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`;\n /**\n * If this is a nested tab, prevent the event\n * from bubbling otherwise the outer tabs\n * will respond to this event too, causing\n * the app to get directed to the wrong place.\n */\n if (!isTabString) {\n tabOrEvent.stopPropagation();\n }\n if (alreadySelected) {\n const activeStackId = this.outlet.getActiveStackId();\n const activeView = this.outlet.getLastRouteView(activeStackId);\n // If on root tab, do not navigate to root tab again\n if ((activeView === null || activeView === void 0 ? void 0 : activeView.url) === tabRootUrl) {\n return;\n }\n const rootView = this.outlet.getRootView(tab);\n const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;\n return this.navCtrl.navigateRoot(tabRootUrl, Object.assign(Object.assign({}, navigationExtras), { animated: true, animationDirection: 'back' }));\n }\n else {\n const lastRoute = this.outlet.getLastRouteView(tab);\n /**\n * If there is a lastRoute, goto that, otherwise goto the fallback url of the\n * selected tab\n */\n const url = (lastRoute === null || lastRoute === void 0 ? void 0 : lastRoute.url) || tabRootUrl;\n const navigationExtras = lastRoute === null || lastRoute === void 0 ? void 0 : lastRoute.savedExtras;\n return this.navCtrl.navigateRoot(url, Object.assign(Object.assign({}, navigationExtras), { animated: true, animationDirection: 'back' }));\n }\n }\n getSelected() {\n return this.outlet.getActiveStackId();\n }\n}\n/** @nocollapse */ IonTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabs, deps: [{ token: NavController }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonTabs, selector: \"ion-tabs\", inputs: { environmentInjector: \"environmentInjector\" }, outputs: { ionTabsWillChange: \"ionTabsWillChange\", ionTabsDidChange: \"ionTabsDidChange\" }, host: { listeners: { \"ionTabButtonClick\": \"select($event)\" } }, queries: [{ propertyName: \"tabBar\", first: true, predicate: IonTabBar, descendants: true }], viewQueries: [{ propertyName: \"outlet\", first: true, predicate: [\"outlet\"], descendants: true, read: IonRouterOutlet }], ngImport: i0, template: ` \n
\n \n
\n `, isInline: true, styles: [\"\\n :host {\\n display: flex;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n\\n flex-direction: column;\\n\\n width: 100%;\\n height: 100%;\\n\\n contain: layout size style;\\n z-index: $z-index-page-container;\\n }\\n .tabs-inner {\\n position: relative;\\n\\n flex: 1;\\n\\n contain: layout size style;\\n }\\n \"], directives: [{ type: IonRouterOutlet, selector: \"ion-router-outlet\", inputs: [\"animated\", \"animation\", \"mode\", \"swipeGesture\", \"environmentInjector\"], outputs: [\"stackEvents\", \"activate\", \"deactivate\"], exportAs: [\"outlet\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonTabs, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-tabs',\n template: ` \n
\n \n
\n `,\n styles: [\n `\n :host {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n flex-direction: column;\n\n width: 100%;\n height: 100%;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n }\n .tabs-inner {\n position: relative;\n\n flex: 1;\n\n contain: layout size style;\n }\n `,\n ],\n }]\n }], ctorParameters: function () { return [{ type: NavController }]; }, propDecorators: { outlet: [{\n type: ViewChild,\n args: ['outlet', { read: IonRouterOutlet, static: false }]\n }], tabBar: [{\n type: ContentChild,\n args: [IonTabBar, { static: false }]\n }], environmentInjector: [{\n type: Input\n }], ionTabsWillChange: [{\n type: Output\n }], ionTabsDidChange: [{\n type: Output\n }], select: [{\n type: HostListener,\n args: ['ionTabButtonClick', ['$event']]\n }] } });\n\nclass IonBackButtonDelegateDirective {\n constructor(routerOutlet, navCtrl, config) {\n this.routerOutlet = routerOutlet;\n this.navCtrl = navCtrl;\n this.config = config;\n }\n /**\n * @internal\n */\n onClick(ev) {\n var _a;\n const defaultHref = this.defaultHref || this.config.get('backButtonDefaultHref');\n if ((_a = this.routerOutlet) === null || _a === void 0 ? void 0 : _a.canGoBack()) {\n this.navCtrl.setDirection('back', undefined, undefined, this.routerAnimation);\n this.routerOutlet.pop();\n ev.preventDefault();\n }\n else if (defaultHref != null) {\n this.navCtrl.navigateBack(defaultHref, { animation: this.routerAnimation });\n ev.preventDefault();\n }\n }\n}\n/** @nocollapse */ IonBackButtonDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackButtonDelegateDirective, deps: [{ token: IonRouterOutlet, optional: true }, { token: NavController }, { token: Config }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ IonBackButtonDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonBackButtonDelegateDirective, selector: \"ion-back-button\", inputs: { defaultHref: \"defaultHref\", routerAnimation: \"routerAnimation\" }, host: { listeners: { \"click\": \"onClick($event)\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonBackButtonDelegateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'ion-back-button',\n }]\n }], ctorParameters: function () { return [{ type: IonRouterOutlet, decorators: [{\n type: Optional\n }] }, { type: NavController }, { type: Config }]; }, propDecorators: { defaultHref: [{\n type: Input\n }], routerAnimation: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n\nlet NavDelegate = class NavDelegate {\n constructor(ref, resolver, injector, angularDelegate, location) {\n this.el = ref.nativeElement;\n ref.nativeElement.delegate = angularDelegate.create(resolver, injector, location);\n proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);\n }\n};\n/** @nocollapse */ NavDelegate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NavDelegate, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: AngularDelegate }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ NavDelegate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: NavDelegate, selector: \"ion-nav\", ngImport: i0 });\nNavDelegate = __decorate([\n ProxyCmp({\n inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture'],\n methods: [\n 'push',\n 'insert',\n 'insertPages',\n 'pop',\n 'popTo',\n 'popToRoot',\n 'removeIndex',\n 'setRoot',\n 'setPages',\n 'getActive',\n 'getByIndex',\n 'canGoBack',\n 'getPrevious',\n ],\n })\n], NavDelegate);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: NavDelegate, decorators: [{\n type: Directive,\n args: [{\n selector: 'ion-nav',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: AngularDelegate }, { type: i0.ViewContainerRef }]; } });\n\n/**\n * Adds support for Ionic routing directions and animations to the base Angular router link directive.\n *\n * When the router link is clicked, the directive will assign the direction and\n * animation so that the routing integration will transition correctly.\n */\nclass RouterLinkDelegateDirective {\n constructor(locationStrategy, navCtrl, elementRef, router, routerLink) {\n this.locationStrategy = locationStrategy;\n this.navCtrl = navCtrl;\n this.elementRef = elementRef;\n this.router = router;\n this.routerLink = routerLink;\n this.routerDirection = 'forward';\n }\n ngOnInit() {\n this.updateTargetUrlAndHref();\n }\n ngOnChanges() {\n this.updateTargetUrlAndHref();\n }\n updateTargetUrlAndHref() {\n var _a;\n if ((_a = this.routerLink) === null || _a === void 0 ? void 0 : _a.urlTree) {\n const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree));\n this.elementRef.nativeElement.href = href;\n }\n }\n /**\n * @internal\n */\n onClick(ev) {\n this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);\n /**\n * This prevents the browser from\n * performing a page reload when pressing\n * an Ionic component with routerLink.\n * The page reload interferes with routing\n * and causes ion-back-button to disappear\n * since the local history is wiped on reload.\n */\n ev.preventDefault();\n }\n}\n/** @nocollapse */ RouterLinkDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RouterLinkDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ RouterLinkDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: RouterLinkDelegateDirective, selector: \":not(a):not(area)[routerLink]\", inputs: { routerDirection: \"routerDirection\", routerAnimation: \"routerAnimation\" }, host: { listeners: { \"click\": \"onClick($event)\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: ':not(a):not(area)[routerLink]',\n }]\n }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { routerDirection: [{\n type: Input\n }], routerAnimation: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\nclass RouterLinkWithHrefDelegateDirective {\n constructor(locationStrategy, navCtrl, elementRef, router, routerLink) {\n this.locationStrategy = locationStrategy;\n this.navCtrl = navCtrl;\n this.elementRef = elementRef;\n this.router = router;\n this.routerLink = routerLink;\n this.routerDirection = 'forward';\n }\n ngOnInit() {\n this.updateTargetUrlAndHref();\n }\n ngOnChanges() {\n this.updateTargetUrlAndHref();\n }\n updateTargetUrlAndHref() {\n var _a;\n if ((_a = this.routerLink) === null || _a === void 0 ? void 0 : _a.urlTree) {\n const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree));\n this.elementRef.nativeElement.href = href;\n }\n }\n /**\n * @internal\n */\n onClick() {\n this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);\n }\n}\n/** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: RouterLinkWithHrefDelegateDirective, selector: \"a[routerLink],area[routerLink]\", inputs: { routerDirection: \"routerDirection\", routerAnimation: \"routerAnimation\" }, host: { listeners: { \"click\": \"onClick()\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'a[routerLink],area[routerLink]',\n }]\n }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { routerDirection: [{\n type: Input\n }], routerAnimation: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\n/**\n * @hidden\n */\nclass VirtualFooter {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\n/** @nocollapse */ VirtualFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualFooter, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ VirtualFooter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: VirtualFooter, selector: \"[virtualFooter]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualFooter, decorators: [{\n type: Directive,\n args: [{ selector: '[virtualFooter]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n\n/**\n * @hidden\n */\nclass VirtualHeader {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\n/** @nocollapse */ VirtualHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualHeader, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ VirtualHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: VirtualHeader, selector: \"[virtualHeader]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualHeader, decorators: [{\n type: Directive,\n args: [{ selector: '[virtualHeader]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n\n/**\n * @hidden\n */\nclass VirtualItem {\n constructor(templateRef, viewContainer) {\n this.templateRef = templateRef;\n this.viewContainer = viewContainer;\n }\n}\n/** @nocollapse */ VirtualItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualItem, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ VirtualItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.10\", type: VirtualItem, selector: \"[virtualItem]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: VirtualItem, decorators: [{\n type: Directive,\n args: [{ selector: '[virtualItem]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });\n\nlet IonVirtualScroll = class IonVirtualScroll {\n constructor(z, iterableDiffers, elementRef) {\n this.z = z;\n this.iterableDiffers = iterableDiffers;\n this.refMap = new WeakMap();\n this.el = elementRef.nativeElement;\n this.el.nodeRender = this.nodeRender.bind(this);\n }\n ngOnChanges(changes) {\n if (this.trackBy && 'items' in changes) {\n // React on virtualScroll changes only once all inputs have been initialized\n const value = changes['items'].currentValue;\n if (this.differ === undefined && value != null) {\n try {\n this.differ = this.iterableDiffers.find(value).create(this.trackBy);\n }\n catch (e) {\n throw new Error(`Cannot find a differ supporting object '${value}'. VirtualScroll only supports binding to Iterables such as Arrays.`);\n }\n }\n }\n }\n ngDoCheck() {\n // and if there actually are changes\n const changes = this.differ !== undefined && this.items ? this.differ.diff(this.items) : null;\n if (changes === null) {\n return;\n }\n // TODO: optimize\n this.checkRange(0);\n }\n nodeRender(el, cell, index) {\n return this.z.run(() => {\n let node;\n if (!el) {\n node = this.itmTmp.viewContainer.createEmbeddedView(this.getComponent(cell.type), { $implicit: cell.value, index }, index);\n el = getElement(node);\n this.refMap.set(el, node);\n }\n else {\n node = this.refMap.get(el);\n const ctx = node.context;\n ctx.$implicit = cell.value;\n ctx.index = cell.index;\n }\n // run sync change detections\n node.detectChanges();\n return el;\n });\n }\n getComponent(type) {\n switch (type) {\n case 'item': return this.itmTmp.templateRef;\n case 'header': return this.hdrTmp.templateRef;\n case 'footer': return this.ftrTmp.templateRef;\n default: throw new Error('template for virtual item was not provided');\n }\n }\n};\n/** @nocollapse */ IonVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonVirtualScroll, deps: [{ token: i0.NgZone }, { token: i0.IterableDiffers }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonVirtualScroll.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonVirtualScroll, selector: \"ion-virtual-scroll\", inputs: { approxItemHeight: \"approxItemHeight\", approxHeaderHeight: \"approxHeaderHeight\", approxFooterHeight: \"approxFooterHeight\", headerFn: \"headerFn\", footerFn: \"footerFn\", items: \"items\", itemHeight: \"itemHeight\", headerHeight: \"headerHeight\", footerHeight: \"footerHeight\", trackBy: \"trackBy\" }, queries: [{ propertyName: \"itmTmp\", first: true, predicate: VirtualItem, descendants: true }, { propertyName: \"hdrTmp\", first: true, predicate: VirtualHeader, descendants: true }, { propertyName: \"ftrTmp\", first: true, predicate: VirtualFooter, descendants: true }], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonVirtualScroll = __decorate([\n ProxyCmp({\n inputs: ['approxItemHeight', 'approxHeaderHeight', 'approxFooterHeight', 'headerFn', 'footerFn', 'items', 'itemHeight', 'headerHeight', 'footerHeight'],\n methods: ['checkEnd', 'checkRange', 'positionForItem']\n })\n], IonVirtualScroll);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonVirtualScroll, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-virtual-scroll',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: [\n 'approxItemHeight',\n 'approxHeaderHeight',\n 'approxFooterHeight',\n 'headerFn',\n 'footerFn',\n 'items',\n 'itemHeight',\n 'headerHeight',\n 'footerHeight',\n 'trackBy'\n ]\n }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.IterableDiffers }, { type: i0.ElementRef }]; }, propDecorators: { itmTmp: [{\n type: ContentChild,\n args: [VirtualItem, { static: false }]\n }], hdrTmp: [{\n type: ContentChild,\n args: [VirtualHeader, { static: false }]\n }], ftrTmp: [{\n type: ContentChild,\n args: [VirtualFooter, { static: false }]\n }] } });\nconst getElement = (view) => {\n const rootNodes = view.rootNodes;\n for (let i = 0; i < rootNodes.length; i++) {\n if (rootNodes[i].nodeType === 1) {\n return rootNodes[i];\n }\n }\n throw new Error('virtual element was not created');\n};\n\nlet IonModal = class IonModal {\n constructor(c, r, z) {\n this.z = z;\n this.isCmpOpen = false;\n this.el = r.nativeElement;\n this.el.addEventListener('willPresent', () => {\n this.isCmpOpen = true;\n c.detectChanges();\n });\n this.el.addEventListener('didDismiss', () => {\n this.isCmpOpen = false;\n c.detectChanges();\n });\n proxyOutputs(this, this.el, [\n 'ionModalDidPresent',\n 'ionModalWillPresent',\n 'ionModalWillDismiss',\n 'ionModalDidDismiss',\n 'ionBreakpointDidChange',\n 'didPresent',\n 'willPresent',\n 'willDismiss',\n 'didDismiss',\n ]);\n }\n};\n/** @nocollapse */ IonModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonModal, selector: \"ion-modal\", inputs: { animated: \"animated\", keepContentsMounted: \"keepContentsMounted\", backdropBreakpoint: \"backdropBreakpoint\", backdropDismiss: \"backdropDismiss\", breakpoints: \"breakpoints\", canDismiss: \"canDismiss\", cssClass: \"cssClass\", enterAnimation: \"enterAnimation\", event: \"event\", handle: \"handle\", handleBehavior: \"handleBehavior\", initialBreakpoint: \"initialBreakpoint\", isOpen: \"isOpen\", keyboardClose: \"keyboardClose\", leaveAnimation: \"leaveAnimation\", mode: \"mode\", presentingElement: \"presentingElement\", showBackdrop: \"showBackdrop\", swipeToClose: \"swipeToClose\", translucent: \"translucent\", trigger: \"trigger\" }, queries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: `
\n \n
`, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonModal = __decorate([\n ProxyCmp({\n inputs: [\n 'animated',\n 'keepContentsMounted',\n 'backdropBreakpoint',\n 'backdropDismiss',\n 'breakpoints',\n 'canDismiss',\n 'cssClass',\n 'enterAnimation',\n 'event',\n 'handle',\n 'handleBehavior',\n 'initialBreakpoint',\n 'isOpen',\n 'keyboardClose',\n 'leaveAnimation',\n 'mode',\n 'presentingElement',\n 'showBackdrop',\n 'swipeToClose',\n 'translucent',\n 'trigger',\n ],\n methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss', 'setCurrentBreakpoint', 'getCurrentBreakpoint'],\n })\n], IonModal);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonModal, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-modal',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `
\n \n
`,\n inputs: [\n 'animated',\n 'keepContentsMounted',\n 'backdropBreakpoint',\n 'backdropDismiss',\n 'breakpoints',\n 'canDismiss',\n 'cssClass',\n 'enterAnimation',\n 'event',\n 'handle',\n 'handleBehavior',\n 'initialBreakpoint',\n 'isOpen',\n 'keyboardClose',\n 'leaveAnimation',\n 'mode',\n 'presentingElement',\n 'showBackdrop',\n 'swipeToClose',\n 'translucent',\n 'trigger',\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }] } });\n\nlet IonPopover = class IonPopover {\n constructor(c, r, z) {\n this.z = z;\n this.isCmpOpen = false;\n this.el = r.nativeElement;\n this.el.addEventListener('willPresent', () => {\n this.isCmpOpen = true;\n c.detectChanges();\n });\n this.el.addEventListener('didDismiss', () => {\n this.isCmpOpen = false;\n c.detectChanges();\n });\n proxyOutputs(this, this.el, [\n 'ionPopoverDidPresent',\n 'ionPopoverWillPresent',\n 'ionPopoverWillDismiss',\n 'ionPopoverDidDismiss',\n 'didPresent',\n 'willPresent',\n 'willDismiss',\n 'didDismiss',\n ]);\n }\n};\n/** @nocollapse */ IonPopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ IonPopover.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.10\", type: IonPopover, selector: \"ion-popover\", inputs: { alignment: \"alignment\", animated: \"animated\", arrow: \"arrow\", keepContentsMounted: \"keepContentsMounted\", backdropDismiss: \"backdropDismiss\", cssClass: \"cssClass\", dismissOnSelect: \"dismissOnSelect\", enterAnimation: \"enterAnimation\", event: \"event\", isOpen: \"isOpen\", keyboardClose: \"keyboardClose\", leaveAnimation: \"leaveAnimation\", mode: \"mode\", showBackdrop: \"showBackdrop\", translucent: \"translucent\", trigger: \"trigger\", triggerAction: \"triggerAction\", reference: \"reference\", size: \"size\", side: \"side\" }, queries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: ``, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\nIonPopover = __decorate([\n ProxyCmp({\n inputs: [\n 'alignment',\n 'animated',\n 'arrow',\n 'keepContentsMounted',\n 'backdropDismiss',\n 'cssClass',\n 'dismissOnSelect',\n 'enterAnimation',\n 'event',\n 'isOpen',\n 'keyboardClose',\n 'leaveAnimation',\n 'mode',\n 'showBackdrop',\n 'translucent',\n 'trigger',\n 'triggerAction',\n 'reference',\n 'size',\n 'side',\n ],\n methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'],\n })\n], IonPopover);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonPopover, decorators: [{\n type: Component,\n args: [{\n selector: 'ion-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ``,\n inputs: [\n 'alignment',\n 'animated',\n 'arrow',\n 'keepContentsMounted',\n 'backdropDismiss',\n 'cssClass',\n 'dismissOnSelect',\n 'enterAnimation',\n 'event',\n 'isOpen',\n 'keyboardClose',\n 'leaveAnimation',\n 'mode',\n 'showBackdrop',\n 'translucent',\n 'trigger',\n 'triggerAction',\n 'reference',\n 'size',\n 'side',\n ],\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }] } });\n\nclass OverlayBaseController {\n constructor(ctrl) {\n this.ctrl = ctrl;\n }\n /**\n * Creates a new overlay\n */\n create(opts) {\n // TODO: next major release opts is not optional\n return this.ctrl.create((opts || {}));\n }\n /**\n * When `id` is not provided, it dismisses the top overlay.\n */\n dismiss(data, role, id) {\n return this.ctrl.dismiss(data, role, id);\n }\n /**\n * Returns the top overlay.\n */\n getTop() {\n return this.ctrl.getTop();\n }\n}\n\nclass ActionSheetController extends OverlayBaseController {\n constructor() {\n super(actionSheetController);\n }\n}\n/** @nocollapse */ ActionSheetController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ActionSheetController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ ActionSheetController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ActionSheetController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ActionSheetController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return []; } });\n\nclass AlertController extends OverlayBaseController {\n constructor() {\n super(alertController);\n }\n}\n/** @nocollapse */ AlertController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AlertController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ AlertController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AlertController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AlertController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return []; } });\n\nclass LoadingController extends OverlayBaseController {\n constructor() {\n super(loadingController);\n }\n}\n/** @nocollapse */ LoadingController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: LoadingController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ LoadingController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: LoadingController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: LoadingController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return []; } });\n\nclass MenuController {\n /**\n * Programmatically open the Menu.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu is fully opened\n */\n open(menuId) {\n return menuController.open(menuId);\n }\n /**\n * Programmatically close the Menu. If no `menuId` is given as the first\n * argument then it'll close any menu which is open. If a `menuId`\n * is given then it'll close that exact menu.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu is fully closed\n */\n close(menuId) {\n return menuController.close(menuId);\n }\n /**\n * Toggle the menu. If it's closed, it will open, and if opened, it\n * will close.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu has been toggled\n */\n toggle(menuId) {\n return menuController.toggle(menuId);\n }\n /**\n * Used to enable or disable a menu. For example, there could be multiple\n * left menus, but only one of them should be able to be opened at the same\n * time. If there are multiple menus on the same side, then enabling one menu\n * will also automatically disable all the others that are on the same side.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu, which is useful for chaining.\n */\n enable(shouldEnable, menuId) {\n return menuController.enable(shouldEnable, menuId);\n }\n /**\n * Used to enable or disable the ability to swipe open the menu.\n * @param shouldEnable True if it should be swipe-able, false if not.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu, which is useful for chaining.\n */\n swipeGesture(shouldEnable, menuId) {\n return menuController.swipeGesture(shouldEnable, menuId);\n }\n /**\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns true if the specified menu is currently open, otherwise false.\n * If the menuId is not specified, it returns true if ANY menu is currenly open.\n */\n isOpen(menuId) {\n return menuController.isOpen(menuId);\n }\n /**\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns true if the menu is currently enabled, otherwise false.\n */\n isEnabled(menuId) {\n return menuController.isEnabled(menuId);\n }\n /**\n * Used to get a menu instance. If a `menuId` is not provided then it'll\n * return the first menu found. If a `menuId` is `left` or `right`, then\n * it'll return the enabled menu on that side. Otherwise, if a `menuId` is\n * provided, then it'll try to find the menu using the menu's `id`\n * property. If a menu is not found then it'll return `null`.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu if found, otherwise `null`.\n */\n get(menuId) {\n return menuController.get(menuId);\n }\n /**\n * @return Returns the instance of the menu already opened, otherwise `null`.\n */\n getOpen() {\n return menuController.getOpen();\n }\n /**\n * @return Returns an array of all menu instances.\n */\n getMenus() {\n return menuController.getMenus();\n }\n}\n/** @nocollapse */ MenuController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: MenuController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ MenuController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: MenuController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: MenuController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n\nclass PickerController extends OverlayBaseController {\n constructor() {\n super(pickerController);\n }\n}\n/** @nocollapse */ PickerController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PickerController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ PickerController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PickerController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PickerController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return []; } });\n\n/**\n * An `Injector` that's part of the environment injector hierarchy, which exists outside of the\n * component tree.\n *\n * @developerPreview\n */\nclass EnvironmentInjector {\n}\n\nclass ModalController extends OverlayBaseController {\n constructor(angularDelegate, resolver, injector, \n // TODO: FW-1641: Migrate to Angular's version once Angular 13 is dropped\n environmentInjector) {\n super(modalController);\n this.angularDelegate = angularDelegate;\n this.resolver = resolver;\n this.injector = injector;\n this.environmentInjector = environmentInjector;\n }\n create(opts) {\n var _a;\n return super.create(Object.assign(Object.assign({}, opts), { delegate: this.angularDelegate.create((_a = this.resolver) !== null && _a !== void 0 ? _a : this.environmentInjector, this.injector) }));\n }\n}\n/** @nocollapse */ ModalController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ModalController, deps: [{ token: AngularDelegate }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: EnvironmentInjector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ ModalController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ModalController });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ModalController, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: AngularDelegate }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: EnvironmentInjector, decorators: [{\n type: Optional\n }] }]; } });\n\nclass PopoverController extends OverlayBaseController {\n constructor(angularDelegate, resolver, injector, \n // TODO: FW-1641: Migrate to Angular's version once Angular 13 is dropped\n environmentInjector) {\n super(popoverController);\n this.angularDelegate = angularDelegate;\n this.resolver = resolver;\n this.injector = injector;\n this.environmentInjector = environmentInjector;\n }\n create(opts) {\n var _a;\n return super.create(Object.assign(Object.assign({}, opts), { delegate: this.angularDelegate.create((_a = this.resolver) !== null && _a !== void 0 ? _a : this.environmentInjector, this.injector) }));\n }\n}\n/** @nocollapse */ PopoverController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PopoverController, deps: [{ token: AngularDelegate }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: EnvironmentInjector, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ PopoverController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PopoverController });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: PopoverController, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: AngularDelegate }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: EnvironmentInjector, decorators: [{\n type: Optional\n }] }]; } });\n\nclass ToastController extends OverlayBaseController {\n constructor() {\n super(toastController);\n }\n}\n/** @nocollapse */ ToastController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ToastController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ ToastController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ToastController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: ToastController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return []; } });\n\nclass DomController {\n /**\n * Schedules a task to run during the READ phase of the next frame.\n * This task should only read the DOM, but never modify it.\n */\n read(cb) {\n getQueue().read(cb);\n }\n /**\n * Schedules a task to run during the WRITE phase of the next frame.\n * This task should write the DOM, but never READ it.\n */\n write(cb) {\n getQueue().write(cb);\n }\n}\n/** @nocollapse */ DomController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: DomController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ DomController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: DomController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: DomController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nconst getQueue = () => {\n const win = typeof window !== 'undefined' ? window : null;\n if (win != null) {\n const Ionic = win.Ionic;\n if (Ionic === null || Ionic === void 0 ? void 0 : Ionic.queue) {\n return Ionic.queue;\n }\n return {\n read: (cb) => win.requestAnimationFrame(cb),\n write: (cb) => win.requestAnimationFrame(cb),\n };\n }\n return {\n read: (cb) => cb(),\n write: (cb) => cb(),\n };\n};\n\nclass AnimationController {\n /**\n * Create a new animation\n */\n create(animationId) {\n return createAnimation(animationId);\n }\n /**\n * EXPERIMENTAL\n *\n * Given a progression and a cubic bezier function,\n * this utility returns the time value(s) at which the\n * cubic bezier reaches the given time progression.\n *\n * If the cubic bezier never reaches the progression\n * the result will be an empty array.\n *\n * This is most useful for switching between easing curves\n * when doing a gesture animation (i.e. going from linear easing\n * during a drag, to another easing when `progressEnd` is called)\n */\n easingTime(p0, p1, p2, p3, progression) {\n return getTimeGivenProgression(p0, p1, p2, p3, progression);\n }\n}\n/** @nocollapse */ AnimationController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AnimationController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ AnimationController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AnimationController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: AnimationController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n\nclass GestureController {\n constructor(zone) {\n this.zone = zone;\n }\n /**\n * Create a new gesture\n */\n create(opts, runInsideAngularZone = false) {\n if (runInsideAngularZone) {\n Object.getOwnPropertyNames(opts).forEach((key) => {\n if (typeof opts[key] === 'function') {\n const fn = opts[key];\n opts[key] = (...props) => this.zone.run(() => fn(...props));\n }\n });\n }\n return createGesture(opts);\n }\n}\n/** @nocollapse */ GestureController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: GestureController, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ GestureController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: GestureController, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: GestureController, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });\n\nclass IonicRouteStrategy {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldDetach(_route) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldAttach(_route) {\n return false;\n }\n store(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _route, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _detachedTree) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n retrieve(_route) {\n return null;\n }\n shouldReuseRoute(future, curr) {\n if (future.routeConfig !== curr.routeConfig) {\n return false;\n }\n // checking router params\n const futureParams = future.params;\n const currentParams = curr.params;\n const keysA = Object.keys(futureParams);\n const keysB = Object.keys(currentParams);\n if (keysA.length !== keysB.length) {\n return false;\n }\n // Test for A's keys different from B.\n for (const key of keysA) {\n if (currentParams[key] !== futureParams[key]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * https://ionicframework.com/docs/api/router-outlet#life-cycle-hooks\n */\n\nconst appInitialize = (config, doc, zone) => {\n return () => {\n const win = doc.defaultView;\n if (win && typeof window !== 'undefined') {\n setupConfig(Object.assign(Object.assign({}, config), { _zoneGate: (h) => zone.run(h) }));\n const aelFn = '__zone_symbol__addEventListener' in doc.body ? '__zone_symbol__addEventListener' : 'addEventListener';\n return applyPolyfills().then(() => {\n return defineCustomElements(win, {\n exclude: ['ion-tabs', 'ion-tab'],\n syncQueue: true,\n raf,\n jmp: (h) => zone.runOutsideAngular(h),\n ael(elm, eventName, cb, opts) {\n elm[aelFn](eventName, cb, opts);\n },\n rel(elm, eventName, cb, opts) {\n elm.removeEventListener(eventName, cb, opts);\n },\n });\n });\n }\n };\n};\n\nconst DIRECTIVES = [\n IonAccordion,\n IonAccordionGroup,\n IonApp,\n IonAvatar,\n IonBackButton,\n IonBackdrop,\n IonBadge,\n IonBreadcrumb,\n IonBreadcrumbs,\n IonButton,\n IonButtons,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardSubtitle,\n IonCardTitle,\n IonCheckbox,\n IonChip,\n IonCol,\n IonContent,\n IonDatetime,\n IonDatetimeButton,\n IonFab,\n IonFabButton,\n IonFabList,\n IonFooter,\n IonGrid,\n IonHeader,\n IonIcon,\n IonImg,\n IonInfiniteScroll,\n IonInfiniteScrollContent,\n IonInput,\n IonItem,\n IonItemDivider,\n IonItemGroup,\n IonItemOption,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n IonMenu,\n IonMenuButton,\n IonMenuToggle,\n IonNav,\n IonNavLink,\n IonNote,\n IonProgressBar,\n IonRadio,\n IonRadioGroup,\n IonRange,\n IonRefresher,\n IonRefresherContent,\n IonReorder,\n IonReorderGroup,\n IonRippleEffect,\n IonRow,\n IonSearchbar,\n IonSegment,\n IonSegmentButton,\n IonSelect,\n IonSelectOption,\n IonSkeletonText,\n IonSlide,\n IonSlides,\n IonSpinner,\n IonSplitPane,\n IonTabBar,\n IonTabButton,\n IonText,\n IonTextarea,\n IonThumbnail,\n IonTitle,\n IonToggle,\n IonToolbar,\n];\n\nconst DECLARATIONS = [\n // generated proxies\n ...DIRECTIVES,\n // manual proxies\n IonModal,\n IonPopover,\n // ngModel accessors\n BooleanValueAccessorDirective,\n NumericValueAccessorDirective,\n RadioValueAccessorDirective,\n SelectValueAccessorDirective,\n TextValueAccessorDirective,\n // navigation\n IonTabs,\n IonRouterOutlet,\n IonBackButtonDelegateDirective,\n NavDelegate,\n RouterLinkDelegateDirective,\n RouterLinkWithHrefDelegateDirective,\n // virtual scroll\n VirtualFooter,\n VirtualHeader,\n VirtualItem,\n IonVirtualScroll,\n];\nclass IonicModule {\n static forRoot(config) {\n return {\n ngModule: IonicModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: appInitialize,\n multi: true,\n deps: [ConfigToken, DOCUMENT, NgZone],\n },\n ],\n };\n }\n}\n/** @nocollapse */ IonicModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonicModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ IonicModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonicModule, declarations: [IonAccordion, IonAccordionGroup, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonNav, IonNavLink, IonNote, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSlide, IonSlides, IonSpinner, IonSplitPane, IonTabBar, IonTabButton, IonText, IonTextarea, IonThumbnail, IonTitle, IonToggle, IonToolbar, \n // manual proxies\n IonModal,\n IonPopover,\n // ngModel accessors\n BooleanValueAccessorDirective,\n NumericValueAccessorDirective,\n RadioValueAccessorDirective,\n SelectValueAccessorDirective,\n TextValueAccessorDirective,\n // navigation\n IonTabs,\n IonRouterOutlet,\n IonBackButtonDelegateDirective,\n NavDelegate,\n RouterLinkDelegateDirective,\n RouterLinkWithHrefDelegateDirective,\n // virtual scroll\n VirtualFooter,\n VirtualHeader,\n VirtualItem,\n IonVirtualScroll], imports: [CommonModule], exports: [IonAccordion, IonAccordionGroup, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonNav, IonNavLink, IonNote, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSlide, IonSlides, IonSpinner, IonSplitPane, IonTabBar, IonTabButton, IonText, IonTextarea, IonThumbnail, IonTitle, IonToggle, IonToolbar, \n // manual proxies\n IonModal,\n IonPopover,\n // ngModel accessors\n BooleanValueAccessorDirective,\n NumericValueAccessorDirective,\n RadioValueAccessorDirective,\n SelectValueAccessorDirective,\n TextValueAccessorDirective,\n // navigation\n IonTabs,\n IonRouterOutlet,\n IonBackButtonDelegateDirective,\n NavDelegate,\n RouterLinkDelegateDirective,\n RouterLinkWithHrefDelegateDirective,\n // virtual scroll\n VirtualFooter,\n VirtualHeader,\n VirtualItem,\n IonVirtualScroll] });\n/** @nocollapse */ IonicModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonicModule, providers: [AngularDelegate, ModalController, PopoverController], imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.10\", ngImport: i0, type: IonicModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: DECLARATIONS,\n exports: DECLARATIONS,\n providers: [AngularDelegate, ModalController, PopoverController],\n imports: [CommonModule],\n }]\n }] });\n\n// DIRECTIVES\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ActionSheetController, AlertController, AngularDelegate, AnimationController, BooleanValueAccessorDirective as BooleanValueAccessor, Config, DomController, GestureController, IonAccordion, IonAccordionGroup, IonApp, IonAvatar, IonBackButton, IonBackButtonDelegateDirective as IonBackButtonDelegate, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSlide, IonSlides, IonSpinner, IonSplitPane, IonTabBar, IonTabButton, IonTabs, IonText, IonTextarea, IonThumbnail, IonTitle, IonToggle, IonToolbar, IonVirtualScroll, IonicModule, IonicRouteStrategy, LoadingController, MenuController, ModalController, NavController, NavDelegate, NavParams, NumericValueAccessorDirective as NumericValueAccessor, PickerController, Platform, PopoverController, RadioValueAccessorDirective as RadioValueAccessor, RouterLinkDelegateDirective as RouterLinkDelegate, RouterLinkWithHrefDelegateDirective as RouterLinkWithHrefDelegate, SelectValueAccessorDirective as SelectValueAccessor, TextValueAccessorDirective as TextValueAccessor, ToastController, VirtualFooter, VirtualHeader, VirtualItem };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as raf } from './helpers-2914b3be.js';\nimport { w as win } from './index-33ffec25.js';\n\nlet animationPrefix;\n/**\n * Web Animations requires hyphenated CSS properties\n * to be written in camelCase when animating\n */\nconst processKeyframes = (keyframes) => {\n keyframes.forEach((keyframe) => {\n for (const key in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(key)) {\n const value = keyframe[key];\n if (key === 'easing') {\n const newKey = 'animation-timing-function';\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n else {\n const newKey = convertCamelCaseToHypen(key);\n if (newKey !== key) {\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n }\n }\n }\n });\n return keyframes;\n};\nconst convertCamelCaseToHypen = (str) => {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n};\nconst getAnimationPrefix = (el) => {\n if (animationPrefix === undefined) {\n const supportsUnprefixed = el.style.animationName !== undefined;\n const supportsWebkitPrefix = el.style.webkitAnimationName !== undefined;\n animationPrefix = !supportsUnprefixed && supportsWebkitPrefix ? '-webkit-' : '';\n }\n return animationPrefix;\n};\nconst setStyleProperty = (element, propertyName, value) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.setProperty(prefix + propertyName, value);\n};\nconst removeStyleProperty = (element, propertyName) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.removeProperty(prefix + propertyName);\n};\nconst animationEnd = (el, callback) => {\n let unRegTrans;\n const opts = { passive: true };\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.addEventListener('animationend', onTransitionEnd, opts);\n unRegTrans = () => {\n el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.removeEventListener('animationend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\nconst generateKeyframeRules = (keyframes = []) => {\n return keyframes\n .map((keyframe) => {\n const offset = keyframe.offset;\n const frameString = [];\n for (const property in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(property) && property !== 'offset') {\n frameString.push(`${property}: ${keyframe[property]};`);\n }\n }\n return `${offset * 100}% { ${frameString.join(' ')} }`;\n })\n .join(' ');\n};\nconst keyframeIds = [];\nconst generateKeyframeName = (keyframeRules) => {\n let index = keyframeIds.indexOf(keyframeRules);\n if (index < 0) {\n index = keyframeIds.push(keyframeRules) - 1;\n }\n return `ion-animation-${index}`;\n};\nconst getStyleContainer = (element) => {\n // getRootNode is not always available in SSR environments.\n const rootNode = element.getRootNode !== undefined ? element.getRootNode() : element;\n return rootNode.head || rootNode;\n};\nconst createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {\n var _a;\n const styleContainer = getStyleContainer(element);\n const keyframePrefix = getAnimationPrefix(element);\n const existingStylesheet = styleContainer.querySelector('#' + keyframeName);\n if (existingStylesheet) {\n return existingStylesheet;\n }\n const stylesheet = ((_a = element.ownerDocument) !== null && _a !== void 0 ? _a : document).createElement('style');\n stylesheet.id = keyframeName;\n stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;\n styleContainer.appendChild(stylesheet);\n return stylesheet;\n};\nconst addClassToArray = (classes = [], className) => {\n if (className !== undefined) {\n const classNameToAppend = Array.isArray(className) ? className : [className];\n return [...classes, ...classNameToAppend];\n }\n return classes;\n};\n\nconst createAnimation = (animationId) => {\n let _delay;\n let _duration;\n let _easing;\n let _iterations;\n let _fill;\n let _direction;\n let _keyframes = [];\n let beforeAddClasses = [];\n let beforeRemoveClasses = [];\n let initialized = false;\n let parentAnimation;\n let beforeStylesValue = {};\n let afterAddClasses = [];\n let afterRemoveClasses = [];\n let afterStylesValue = {};\n let numAnimationsRunning = 0;\n let shouldForceLinearEasing = false;\n let shouldForceSyncPlayback = false;\n let cssAnimationsTimerFallback;\n let forceDirectionValue;\n let forceDurationValue;\n let forceDelayValue;\n let willComplete = true;\n let finished = false;\n let shouldCalculateNumAnimations = true;\n let keyframeName;\n let ani;\n let paused = false;\n const id = animationId;\n const onFinishCallbacks = [];\n const onFinishOneTimeCallbacks = [];\n const elements = [];\n const childAnimations = [];\n const stylesheets = [];\n const _beforeAddReadFunctions = [];\n const _beforeAddWriteFunctions = [];\n const _afterAddReadFunctions = [];\n const _afterAddWriteFunctions = [];\n const webAnimations = [];\n const supportsAnimationEffect = typeof AnimationEffect === 'function' ||\n (win !== undefined && typeof win.AnimationEffect === 'function');\n const supportsWebAnimations = typeof Element === 'function' &&\n typeof Element.prototype.animate === 'function' &&\n supportsAnimationEffect;\n const ANIMATION_END_FALLBACK_PADDING_MS = 100;\n const getWebAnimations = () => {\n return webAnimations;\n };\n const destroy = (clearStyleSheets) => {\n childAnimations.forEach((childAnimation) => {\n childAnimation.destroy(clearStyleSheets);\n });\n cleanUp(clearStyleSheets);\n elements.length = 0;\n childAnimations.length = 0;\n _keyframes.length = 0;\n clearOnFinish();\n initialized = false;\n shouldCalculateNumAnimations = true;\n return ani;\n };\n /**\n * Cancels any Web Animations, removes\n * any animation properties from the\n * animation's elements, and removes the\n * animation's stylesheets from the DOM.\n */\n const cleanUp = (clearStyleSheets) => {\n cleanUpElements();\n if (clearStyleSheets) {\n cleanUpStyleSheets();\n }\n };\n const resetFlags = () => {\n shouldForceLinearEasing = false;\n shouldForceSyncPlayback = false;\n shouldCalculateNumAnimations = true;\n forceDirectionValue = undefined;\n forceDurationValue = undefined;\n forceDelayValue = undefined;\n numAnimationsRunning = 0;\n finished = false;\n willComplete = true;\n paused = false;\n };\n const isRunning = () => {\n return numAnimationsRunning !== 0 && !paused;\n };\n const onFinish = (callback, opts) => {\n const callbacks = (opts === null || opts === void 0 ? void 0 : opts.oneTimeCallback) ? onFinishOneTimeCallbacks : onFinishCallbacks;\n callbacks.push({ c: callback, o: opts });\n return ani;\n };\n const clearOnFinish = () => {\n onFinishCallbacks.length = 0;\n onFinishOneTimeCallbacks.length = 0;\n return ani;\n };\n /**\n * Cancels any Web Animations and removes\n * any animation properties from the\n * the animation's elements.\n */\n const cleanUpElements = () => {\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.cancel();\n });\n webAnimations.length = 0;\n }\n else {\n const elementsArray = elements.slice();\n raf(() => {\n elementsArray.forEach((element) => {\n removeStyleProperty(element, 'animation-name');\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-timing-function');\n removeStyleProperty(element, 'animation-iteration-count');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n removeStyleProperty(element, 'animation-fill-mode');\n removeStyleProperty(element, 'animation-direction');\n });\n });\n }\n };\n /**\n * Removes the animation's stylesheets\n * from the DOM.\n */\n const cleanUpStyleSheets = () => {\n stylesheets.forEach((stylesheet) => {\n /**\n * When sharing stylesheets, it's possible\n * for another animation to have already\n * cleaned up a particular stylesheet\n */\n if (stylesheet === null || stylesheet === void 0 ? void 0 : stylesheet.parentNode) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n });\n stylesheets.length = 0;\n };\n const beforeAddRead = (readFn) => {\n _beforeAddReadFunctions.push(readFn);\n return ani;\n };\n const beforeAddWrite = (writeFn) => {\n _beforeAddWriteFunctions.push(writeFn);\n return ani;\n };\n const afterAddRead = (readFn) => {\n _afterAddReadFunctions.push(readFn);\n return ani;\n };\n const afterAddWrite = (writeFn) => {\n _afterAddWriteFunctions.push(writeFn);\n return ani;\n };\n const beforeAddClass = (className) => {\n beforeAddClasses = addClassToArray(beforeAddClasses, className);\n return ani;\n };\n const beforeRemoveClass = (className) => {\n beforeRemoveClasses = addClassToArray(beforeRemoveClasses, className);\n return ani;\n };\n /**\n * Set CSS inline styles to the animation's\n * elements before the animation begins.\n */\n const beforeStyles = (styles = {}) => {\n beforeStylesValue = styles;\n return ani;\n };\n /**\n * Clear CSS inline styles from the animation's\n * elements before the animation begins.\n */\n const beforeClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n beforeStylesValue[property] = '';\n }\n return ani;\n };\n const afterAddClass = (className) => {\n afterAddClasses = addClassToArray(afterAddClasses, className);\n return ani;\n };\n const afterRemoveClass = (className) => {\n afterRemoveClasses = addClassToArray(afterRemoveClasses, className);\n return ani;\n };\n const afterStyles = (styles = {}) => {\n afterStylesValue = styles;\n return ani;\n };\n const afterClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n afterStylesValue[property] = '';\n }\n return ani;\n };\n const getFill = () => {\n if (_fill !== undefined) {\n return _fill;\n }\n if (parentAnimation) {\n return parentAnimation.getFill();\n }\n return 'both';\n };\n const getDirection = () => {\n if (forceDirectionValue !== undefined) {\n return forceDirectionValue;\n }\n if (_direction !== undefined) {\n return _direction;\n }\n if (parentAnimation) {\n return parentAnimation.getDirection();\n }\n return 'normal';\n };\n const getEasing = () => {\n if (shouldForceLinearEasing) {\n return 'linear';\n }\n if (_easing !== undefined) {\n return _easing;\n }\n if (parentAnimation) {\n return parentAnimation.getEasing();\n }\n return 'linear';\n };\n const getDuration = () => {\n if (shouldForceSyncPlayback) {\n return 0;\n }\n if (forceDurationValue !== undefined) {\n return forceDurationValue;\n }\n if (_duration !== undefined) {\n return _duration;\n }\n if (parentAnimation) {\n return parentAnimation.getDuration();\n }\n return 0;\n };\n const getIterations = () => {\n if (_iterations !== undefined) {\n return _iterations;\n }\n if (parentAnimation) {\n return parentAnimation.getIterations();\n }\n return 1;\n };\n const getDelay = () => {\n if (forceDelayValue !== undefined) {\n return forceDelayValue;\n }\n if (_delay !== undefined) {\n return _delay;\n }\n if (parentAnimation) {\n return parentAnimation.getDelay();\n }\n return 0;\n };\n const getKeyframes = () => {\n return _keyframes;\n };\n const direction = (animationDirection) => {\n _direction = animationDirection;\n update(true);\n return ani;\n };\n const fill = (animationFill) => {\n _fill = animationFill;\n update(true);\n return ani;\n };\n const delay = (animationDelay) => {\n _delay = animationDelay;\n update(true);\n return ani;\n };\n const easing = (animationEasing) => {\n _easing = animationEasing;\n update(true);\n return ani;\n };\n const duration = (animationDuration) => {\n /**\n * CSS Animation Durations of 0ms work fine on Chrome\n * but do not run on Safari, so force it to 1ms to\n * get it to run on both platforms.\n */\n if (!supportsWebAnimations && animationDuration === 0) {\n animationDuration = 1;\n }\n _duration = animationDuration;\n update(true);\n return ani;\n };\n const iterations = (animationIterations) => {\n _iterations = animationIterations;\n update(true);\n return ani;\n };\n const parent = (animation) => {\n parentAnimation = animation;\n return ani;\n };\n const addElement = (el) => {\n if (el != null) {\n if (el.nodeType === 1) {\n elements.push(el);\n }\n else if (el.length >= 0) {\n for (let i = 0; i < el.length; i++) {\n elements.push(el[i]);\n }\n }\n else {\n console.error('Invalid addElement value');\n }\n }\n return ani;\n };\n const addAnimation = (animationToAdd) => {\n if (animationToAdd != null) {\n if (Array.isArray(animationToAdd)) {\n for (const animation of animationToAdd) {\n animation.parent(ani);\n childAnimations.push(animation);\n }\n }\n else {\n animationToAdd.parent(ani);\n childAnimations.push(animationToAdd);\n }\n }\n return ani;\n };\n const keyframes = (keyframeValues) => {\n const different = _keyframes !== keyframeValues;\n _keyframes = keyframeValues;\n if (different) {\n updateKeyframes(_keyframes);\n }\n return ani;\n };\n const updateKeyframes = (keyframeValues) => {\n if (supportsWebAnimations) {\n getWebAnimations().forEach((animation) => {\n if (animation.effect.setKeyframes) {\n animation.effect.setKeyframes(keyframeValues);\n }\n else {\n const newEffect = new KeyframeEffect(animation.effect.target, keyframeValues, animation.effect.getTiming());\n animation.effect = newEffect;\n }\n });\n }\n else {\n initializeCSSAnimation();\n }\n };\n /**\n * Run all \"before\" animation hooks.\n */\n const beforeAnimation = () => {\n // Runs all before read callbacks\n _beforeAddReadFunctions.forEach((callback) => callback());\n // Runs all before write callbacks\n _beforeAddWriteFunctions.forEach((callback) => callback());\n // Updates styles and classes before animation runs\n const addClasses = beforeAddClasses;\n const removeClasses = beforeRemoveClasses;\n const styles = beforeStylesValue;\n elements.forEach((el) => {\n const elementClassList = el.classList;\n addClasses.forEach((c) => elementClassList.add(c));\n removeClasses.forEach((c) => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n };\n /**\n * Run all \"after\" animation hooks.\n */\n const afterAnimation = () => {\n clearCSSAnimationsTimeout();\n // Runs all after read callbacks\n _afterAddReadFunctions.forEach((callback) => callback());\n // Runs all after write callbacks\n _afterAddWriteFunctions.forEach((callback) => callback());\n // Updates styles and classes before animation ends\n const currentStep = willComplete ? 1 : 0;\n const addClasses = afterAddClasses;\n const removeClasses = afterRemoveClasses;\n const styles = afterStylesValue;\n elements.forEach((el) => {\n const elementClassList = el.classList;\n addClasses.forEach((c) => elementClassList.add(c));\n removeClasses.forEach((c) => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n onFinishCallbacks.forEach((onFinishCallback) => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.forEach((onFinishCallback) => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.length = 0;\n shouldCalculateNumAnimations = true;\n if (willComplete) {\n finished = true;\n }\n willComplete = true;\n };\n const animationFinish = () => {\n if (numAnimationsRunning === 0) {\n return;\n }\n numAnimationsRunning--;\n if (numAnimationsRunning === 0) {\n afterAnimation();\n if (parentAnimation) {\n parentAnimation.animationFinish();\n }\n }\n };\n const initializeCSSAnimation = (toggleAnimationName = true) => {\n cleanUpStyleSheets();\n const processedKeyframes = processKeyframes(_keyframes);\n elements.forEach((element) => {\n if (processedKeyframes.length > 0) {\n const keyframeRules = generateKeyframeRules(processedKeyframes);\n keyframeName = animationId !== undefined ? animationId : generateKeyframeName(keyframeRules);\n const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);\n stylesheets.push(stylesheet);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill());\n setStyleProperty(element, 'animation-direction', getDirection());\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n setStyleProperty(element, 'animation-play-state', 'paused');\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', stylesheet.id || null);\n });\n }\n });\n };\n const initializeWebAnimation = () => {\n elements.forEach((element) => {\n const animation = element.animate(_keyframes, {\n id,\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection(),\n });\n animation.pause();\n webAnimations.push(animation);\n });\n if (webAnimations.length > 0) {\n webAnimations[0].onfinish = () => {\n animationFinish();\n };\n }\n };\n const initializeAnimation = (toggleAnimationName = true) => {\n beforeAnimation();\n if (_keyframes.length > 0) {\n if (supportsWebAnimations) {\n initializeWebAnimation();\n }\n else {\n initializeCSSAnimation(toggleAnimationName);\n }\n }\n initialized = true;\n };\n const setAnimationStep = (step) => {\n step = Math.min(Math.max(step, 0), 0.9999);\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;\n animation.pause();\n });\n }\n else {\n const animationDuration = `-${getDuration() * step}ms`;\n elements.forEach((element) => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-delay', animationDuration);\n setStyleProperty(element, 'animation-play-state', 'paused');\n }\n });\n }\n };\n const updateWebAnimation = (step) => {\n webAnimations.forEach((animation) => {\n animation.effect.updateTiming({\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection(),\n });\n });\n if (step !== undefined) {\n setAnimationStep(step);\n }\n };\n const updateCSSAnimation = (toggleAnimationName = true, step) => {\n raf(() => {\n elements.forEach((element) => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', step !== undefined ? `-${step * getDuration()}ms` : `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill() || null);\n setStyleProperty(element, 'animation-direction', getDirection() || null);\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n });\n });\n });\n };\n const update = (deep = false, toggleAnimationName = true, step) => {\n if (deep) {\n childAnimations.forEach((animation) => {\n animation.update(deep, toggleAnimationName, step);\n });\n }\n if (supportsWebAnimations) {\n updateWebAnimation(step);\n }\n else {\n updateCSSAnimation(toggleAnimationName, step);\n }\n return ani;\n };\n const progressStart = (forceLinearEasing = false, step) => {\n childAnimations.forEach((animation) => {\n animation.progressStart(forceLinearEasing, step);\n });\n pauseAnimation();\n shouldForceLinearEasing = forceLinearEasing;\n if (!initialized) {\n initializeAnimation();\n }\n update(false, true, step);\n return ani;\n };\n const progressStep = (step) => {\n childAnimations.forEach((animation) => {\n animation.progressStep(step);\n });\n setAnimationStep(step);\n return ani;\n };\n const progressEnd = (playTo, step, dur) => {\n shouldForceLinearEasing = false;\n childAnimations.forEach((animation) => {\n animation.progressEnd(playTo, step, dur);\n });\n if (dur !== undefined) {\n forceDurationValue = dur;\n }\n finished = false;\n willComplete = true;\n if (playTo === 0) {\n forceDirectionValue = getDirection() === 'reverse' ? 'normal' : 'reverse';\n if (forceDirectionValue === 'reverse') {\n willComplete = false;\n }\n if (supportsWebAnimations) {\n update();\n setAnimationStep(1 - step);\n }\n else {\n forceDelayValue = (1 - step) * getDuration() * -1;\n update(false, false);\n }\n }\n else if (playTo === 1) {\n if (supportsWebAnimations) {\n update();\n setAnimationStep(step);\n }\n else {\n forceDelayValue = step * getDuration() * -1;\n update(false, false);\n }\n }\n if (playTo !== undefined) {\n onFinish(() => {\n forceDurationValue = undefined;\n forceDirectionValue = undefined;\n forceDelayValue = undefined;\n }, {\n oneTimeCallback: true,\n });\n if (!parentAnimation) {\n play();\n }\n }\n return ani;\n };\n const pauseAnimation = () => {\n if (initialized) {\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.pause();\n });\n }\n else {\n elements.forEach((element) => {\n setStyleProperty(element, 'animation-play-state', 'paused');\n });\n }\n paused = true;\n }\n };\n const pause = () => {\n childAnimations.forEach((animation) => {\n animation.pause();\n });\n pauseAnimation();\n return ani;\n };\n const onAnimationEndFallback = () => {\n cssAnimationsTimerFallback = undefined;\n animationFinish();\n };\n const clearCSSAnimationsTimeout = () => {\n if (cssAnimationsTimerFallback) {\n clearTimeout(cssAnimationsTimerFallback);\n }\n };\n const playCSSAnimations = () => {\n clearCSSAnimationsTimeout();\n raf(() => {\n elements.forEach((element) => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-play-state', 'running');\n }\n });\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n else {\n /**\n * This is a catchall in the event that a CSS Animation did not finish.\n * The Web Animations API has mechanisms in place for preventing this.\n * CSS Animations will not fire an `animationend` event\n * for elements with `display: none`. The Web Animations API\n * accounts for this, but using raw CSS Animations requires\n * this workaround.\n */\n const animationDelay = getDelay() || 0;\n const animationDuration = getDuration() || 0;\n const animationIterations = getIterations() || 1;\n // No need to set a timeout when animation has infinite iterations\n if (isFinite(animationIterations)) {\n cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + animationDuration * animationIterations + ANIMATION_END_FALLBACK_PADDING_MS);\n }\n animationEnd(elements[0], () => {\n clearCSSAnimationsTimeout();\n /**\n * Ensure that clean up\n * is always done a frame\n * before the onFinish handlers\n * are fired. Otherwise, there\n * may be flickering if a new\n * animation is started on the same\n * element too quickly\n *\n * TODO: Is there a cleaner way to do this?\n */\n raf(() => {\n clearCSSAnimationPlayState();\n raf(animationFinish);\n });\n });\n }\n };\n const clearCSSAnimationPlayState = () => {\n elements.forEach((element) => {\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n });\n };\n const playWebAnimations = () => {\n webAnimations.forEach((animation) => {\n animation.play();\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n };\n const resetAnimation = () => {\n if (supportsWebAnimations) {\n setAnimationStep(0);\n updateWebAnimation();\n }\n else {\n updateCSSAnimation();\n }\n };\n const play = (opts) => {\n return new Promise((resolve) => {\n if (opts === null || opts === void 0 ? void 0 : opts.sync) {\n shouldForceSyncPlayback = true;\n onFinish(() => (shouldForceSyncPlayback = false), { oneTimeCallback: true });\n }\n if (!initialized) {\n initializeAnimation();\n }\n if (finished) {\n resetAnimation();\n finished = false;\n }\n if (shouldCalculateNumAnimations) {\n numAnimationsRunning = childAnimations.length + 1;\n shouldCalculateNumAnimations = false;\n }\n onFinish(() => resolve(), { oneTimeCallback: true });\n childAnimations.forEach((animation) => {\n animation.play();\n });\n if (supportsWebAnimations) {\n playWebAnimations();\n }\n else {\n playCSSAnimations();\n }\n paused = false;\n });\n };\n const stop = () => {\n childAnimations.forEach((animation) => {\n animation.stop();\n });\n if (initialized) {\n cleanUpElements();\n initialized = false;\n }\n resetFlags();\n };\n const from = (property, value) => {\n const firstFrame = _keyframes[0];\n if (firstFrame !== undefined && (firstFrame.offset === undefined || firstFrame.offset === 0)) {\n firstFrame[property] = value;\n }\n else {\n _keyframes = [{ offset: 0, [property]: value }, ..._keyframes];\n }\n return ani;\n };\n const to = (property, value) => {\n const lastFrame = _keyframes[_keyframes.length - 1];\n if (lastFrame !== undefined && (lastFrame.offset === undefined || lastFrame.offset === 1)) {\n lastFrame[property] = value;\n }\n else {\n _keyframes = [..._keyframes, { offset: 1, [property]: value }];\n }\n return ani;\n };\n const fromTo = (property, fromValue, toValue) => {\n return from(property, fromValue).to(property, toValue);\n };\n return (ani = {\n parentAnimation,\n elements,\n childAnimations,\n id,\n animationFinish,\n from,\n to,\n fromTo,\n parent,\n play,\n pause,\n stop,\n destroy,\n keyframes,\n addAnimation,\n addElement,\n update,\n fill,\n direction,\n iterations,\n duration,\n easing,\n delay,\n getWebAnimations,\n getKeyframes,\n getFill,\n getDirection,\n getDelay,\n getIterations,\n getEasing,\n getDuration,\n afterAddRead,\n afterAddWrite,\n afterClearStyles,\n afterStyles,\n afterRemoveClass,\n afterAddClass,\n beforeAddRead,\n beforeAddWrite,\n beforeClearStyles,\n beforeStyles,\n beforeRemoveClass,\n beforeAddClass,\n onFinish,\n isRunning,\n progressStart,\n progressStep,\n progressEnd,\n });\n};\n\nexport { createAnimation as c };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { i as initialize } from './ionic-global-c95cf239.js';\n\nconst globalScripts = initialize;\n\nexport { globalScripts as g };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Based on:\n * https://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier\n * https://math.stackexchange.com/questions/26846/is-there-an-explicit-form-for-cubic-b%C3%A9zier-curves\n * TODO: Reduce rounding error\n */\n/**\n * EXPERIMENTAL\n * Given a cubic-bezier curve, get the x value (time) given\n * the y value (progression).\n * Ex: cubic-bezier(0.32, 0.72, 0, 1);\n * P0: (0, 0)\n * P1: (0.32, 0.72)\n * P2: (0, 1)\n * P3: (1, 1)\n *\n * If you give a cubic bezier curve that never reaches the\n * provided progression, this function will return an empty array.\n */\nconst getTimeGivenProgression = (p0, p1, p2, p3, progression) => {\n return solveCubicBezier(p0[1], p1[1], p2[1], p3[1], progression).map((tValue) => {\n return solveCubicParametricEquation(p0[0], p1[0], p2[0], p3[0], tValue);\n });\n};\n/**\n * Solve a cubic equation in one dimension (time)\n */\nconst solveCubicParametricEquation = (p0, p1, p2, p3, t) => {\n const partA = 3 * p1 * Math.pow(t - 1, 2);\n const partB = -3 * p2 * t + 3 * p2 + p3 * t;\n const partC = p0 * Math.pow(t - 1, 3);\n return t * (partA + t * partB) - partC;\n};\n/**\n * Find the `t` value for a cubic bezier using Cardano's formula\n */\nconst solveCubicBezier = (p0, p1, p2, p3, refPoint) => {\n p0 -= refPoint;\n p1 -= refPoint;\n p2 -= refPoint;\n p3 -= refPoint;\n const roots = solveCubicEquation(p3 - 3 * p2 + 3 * p1 - p0, 3 * p2 - 6 * p1 + 3 * p0, 3 * p1 - 3 * p0, p0);\n return roots.filter((root) => root >= 0 && root <= 1);\n};\nconst solveQuadraticEquation = (a, b, c) => {\n const discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n else {\n return [(-b + Math.sqrt(discriminant)) / (2 * a), (-b - Math.sqrt(discriminant)) / (2 * a)];\n }\n};\nconst solveCubicEquation = (a, b, c, d) => {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n b /= a;\n c /= a;\n d /= a;\n const p = (3 * c - b * b) / 3;\n const q = (2 * b * b * b - 9 * b * c + 27 * d) / 27;\n if (p === 0) {\n return [Math.pow(-q, 1 / 3)];\n }\n else if (q === 0) {\n return [Math.sqrt(-p), -Math.sqrt(-p)];\n }\n const discriminant = Math.pow(q / 2, 2) + Math.pow(p / 3, 3);\n if (discriminant === 0) {\n return [Math.pow(q / 2, 1 / 2) - b / 3];\n }\n else if (discriminant > 0) {\n return [\n Math.pow(-(q / 2) + Math.sqrt(discriminant), 1 / 3) - Math.pow(q / 2 + Math.sqrt(discriminant), 1 / 3) - b / 3,\n ];\n }\n const r = Math.sqrt(Math.pow(-(p / 3), 3));\n const phi = Math.acos(-(q / (2 * Math.sqrt(Math.pow(-(p / 3), 3)))));\n const s = 2 * Math.pow(r, 1 / 3);\n return [\n s * Math.cos(phi / 3) - b / 3,\n s * Math.cos((phi + 2 * Math.PI) / 3) - b / 3,\n s * Math.cos((phi + 4 * Math.PI) / 3) - b / 3,\n ];\n};\n\nexport { getTimeGivenProgression as g };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nclass GestureController {\n constructor() {\n this.gestureId = 0;\n this.requestedStart = new Map();\n this.disabledGestures = new Map();\n this.disabledScroll = new Set();\n }\n /**\n * Creates a gesture delegate based on the GestureConfig passed\n */\n createGesture(config) {\n var _a;\n return new GestureDelegate(this, this.newID(), config.name, (_a = config.priority) !== null && _a !== void 0 ? _a : 0, !!config.disableScroll);\n }\n /**\n * Creates a blocker that will block any other gesture events from firing. Set in the ion-gesture component.\n */\n createBlocker(opts = {}) {\n return new BlockerDelegate(this, this.newID(), opts.disable, !!opts.disableScroll);\n }\n start(gestureName, id, priority) {\n if (!this.canStart(gestureName)) {\n this.requestedStart.delete(id);\n return false;\n }\n this.requestedStart.set(id, priority);\n return true;\n }\n capture(gestureName, id, priority) {\n if (!this.start(gestureName, id, priority)) {\n return false;\n }\n const requestedStart = this.requestedStart;\n let maxPriority = -10000;\n requestedStart.forEach((value) => {\n maxPriority = Math.max(maxPriority, value);\n });\n if (maxPriority === priority) {\n this.capturedId = id;\n requestedStart.clear();\n const event = new CustomEvent('ionGestureCaptured', { detail: { gestureName } });\n document.dispatchEvent(event);\n return true;\n }\n requestedStart.delete(id);\n return false;\n }\n release(id) {\n this.requestedStart.delete(id);\n if (this.capturedId === id) {\n this.capturedId = undefined;\n }\n }\n disableGesture(gestureName, id) {\n let set = this.disabledGestures.get(gestureName);\n if (set === undefined) {\n set = new Set();\n this.disabledGestures.set(gestureName, set);\n }\n set.add(id);\n }\n enableGesture(gestureName, id) {\n const set = this.disabledGestures.get(gestureName);\n if (set !== undefined) {\n set.delete(id);\n }\n }\n disableScroll(id) {\n this.disabledScroll.add(id);\n if (this.disabledScroll.size === 1) {\n document.body.classList.add(BACKDROP_NO_SCROLL);\n }\n }\n enableScroll(id) {\n this.disabledScroll.delete(id);\n if (this.disabledScroll.size === 0) {\n document.body.classList.remove(BACKDROP_NO_SCROLL);\n }\n }\n canStart(gestureName) {\n if (this.capturedId !== undefined) {\n // a gesture already captured\n return false;\n }\n if (this.isDisabled(gestureName)) {\n return false;\n }\n return true;\n }\n isCaptured() {\n return this.capturedId !== undefined;\n }\n isScrollDisabled() {\n return this.disabledScroll.size > 0;\n }\n isDisabled(gestureName) {\n const disabled = this.disabledGestures.get(gestureName);\n if (disabled && disabled.size > 0) {\n return true;\n }\n return false;\n }\n newID() {\n this.gestureId++;\n return this.gestureId;\n }\n}\nclass GestureDelegate {\n constructor(ctrl, id, name, priority, disableScroll) {\n this.id = id;\n this.name = name;\n this.disableScroll = disableScroll;\n this.priority = priority * 1000000 + id;\n this.ctrl = ctrl;\n }\n canStart() {\n if (!this.ctrl) {\n return false;\n }\n return this.ctrl.canStart(this.name);\n }\n start() {\n if (!this.ctrl) {\n return false;\n }\n return this.ctrl.start(this.name, this.id, this.priority);\n }\n capture() {\n if (!this.ctrl) {\n return false;\n }\n const captured = this.ctrl.capture(this.name, this.id, this.priority);\n if (captured && this.disableScroll) {\n this.ctrl.disableScroll(this.id);\n }\n return captured;\n }\n release() {\n if (this.ctrl) {\n this.ctrl.release(this.id);\n if (this.disableScroll) {\n this.ctrl.enableScroll(this.id);\n }\n }\n }\n destroy() {\n this.release();\n this.ctrl = undefined;\n }\n}\nclass BlockerDelegate {\n constructor(ctrl, id, disable, disableScroll) {\n this.id = id;\n this.disable = disable;\n this.disableScroll = disableScroll;\n this.ctrl = ctrl;\n }\n block() {\n if (!this.ctrl) {\n return;\n }\n if (this.disable) {\n for (const gesture of this.disable) {\n this.ctrl.disableGesture(gesture, this.id);\n }\n }\n if (this.disableScroll) {\n this.ctrl.disableScroll(this.id);\n }\n }\n unblock() {\n if (!this.ctrl) {\n return;\n }\n if (this.disable) {\n for (const gesture of this.disable) {\n this.ctrl.enableGesture(gesture, this.id);\n }\n }\n if (this.disableScroll) {\n this.ctrl.enableScroll(this.id);\n }\n }\n destroy() {\n this.unblock();\n this.ctrl = undefined;\n }\n}\nconst BACKDROP_NO_SCROLL = 'backdrop-no-scroll';\nconst GESTURE_CONTROLLER = new GestureController();\n\nexport { GESTURE_CONTROLLER as G };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * When hardwareBackButton: false in config,\n * we need to make sure we also block the default\n * webview behavior. If we don't then it will be\n * possible for users to navigate backward while\n * an overlay is still open. Additionally, it will\n * give the appearance that the hardwareBackButton\n * config is not working as the page transition\n * will still happen.\n */\nconst blockHardwareBackButton = () => {\n document.addEventListener('backbutton', () => { }); // eslint-disable-line\n};\nconst startHardwareBackButton = () => {\n const doc = document;\n let busy = false;\n doc.addEventListener('backbutton', () => {\n if (busy) {\n return;\n }\n let index = 0;\n let handlers = [];\n const ev = new CustomEvent('ionBackButton', {\n bubbles: false,\n detail: {\n register(priority, handler) {\n handlers.push({ priority, handler, id: index++ });\n },\n },\n });\n doc.dispatchEvent(ev);\n const executeAction = async (handlerRegister) => {\n try {\n if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {\n const result = handlerRegister.handler(processHandlers);\n if (result != null) {\n await result;\n }\n }\n }\n catch (e) {\n console.error(e);\n }\n };\n const processHandlers = () => {\n if (handlers.length > 0) {\n let selectedHandler = {\n priority: Number.MIN_SAFE_INTEGER,\n handler: () => undefined,\n id: -1,\n };\n handlers.forEach((handler) => {\n if (handler.priority >= selectedHandler.priority) {\n selectedHandler = handler;\n }\n });\n busy = true;\n handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);\n executeAction(selectedHandler).then(() => (busy = false));\n }\n };\n processHandlers();\n });\n};\nconst OVERLAY_BACK_BUTTON_PRIORITY = 100;\nconst MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays\n\nexport { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, startHardwareBackButton };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst transitionEndAsync = (el, expectedDuration = 0) => {\n return new Promise((resolve) => {\n transitionEnd(el, expectedDuration, resolve);\n });\n};\n/**\n * Allows developer to wait for a transition\n * to finish and fallback to a timer if the\n * transition is cancelled or otherwise\n * never finishes. Also see transitionEndAsync\n * which is an await-able version of this.\n */\nconst transitionEnd = (el, expectedDuration = 0, callback) => {\n let unRegTrans;\n let animationTimeout;\n const opts = { passive: true };\n const ANIMATION_FALLBACK_TIMEOUT = 500;\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (ev === undefined || el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.addEventListener('transitionend', onTransitionEnd, opts);\n animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);\n unRegTrans = () => {\n if (animationTimeout) {\n clearTimeout(animationTimeout);\n animationTimeout = undefined;\n }\n el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.removeEventListener('transitionend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\n/**\n * Waits for a component to be ready for\n * both custom element and non-custom element builds.\n * If non-custom element build, el.componentOnReady\n * will be used.\n * For custom element builds, we wait a frame\n * so that the inner contents of the component\n * have a chance to render.\n *\n * Use this utility rather than calling\n * el.componentOnReady yourself.\n */\nconst componentOnReady = (el, callback) => {\n if (el.componentOnReady) {\n // eslint-disable-next-line custom-rules/no-component-on-ready-method\n el.componentOnReady().then((resolvedEl) => callback(resolvedEl));\n }\n else {\n raf(() => callback(el));\n }\n};\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach((attr) => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * List of available ARIA attributes + `role`.\n * Removed deprecated attributes.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes\n */\nconst ariaAttributes = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n/**\n * Returns an array of aria attributes that should be copied from\n * the shadow host element to a target within the light DOM.\n * @param el The element that the attributes should be copied from.\n */\nconst inheritAriaAttributes = (el) => {\n return inheritAttributes(el, ariaAttributes);\n};\nconst addEventListener = (el, eventName, callback, opts) => {\n var _a;\n if (typeof window !== 'undefined') {\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n const ael = config.get('_ael');\n if (ael) {\n return ael(el, eventName, callback, opts);\n }\n else if (config._ael) {\n return config._ael(el, eventName, callback, opts);\n }\n }\n }\n return el.addEventListener(eventName, callback, opts);\n};\nconst removeEventListener = (el, eventName, callback, opts) => {\n var _a;\n if (typeof window !== 'undefined') {\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n const rel = config.get('_rel');\n if (rel) {\n return rel(el, eventName, callback, opts);\n }\n else if (config._rel) {\n return config._rel(el, eventName, callback, opts);\n }\n }\n }\n return el.removeEventListener(eventName, callback, opts);\n};\n/**\n * Gets the root context of a shadow dom element\n * On newer browsers this will be the shadowRoot,\n * but for older browser this may just be the\n * element itself.\n *\n * Useful for whenever you need to explicitly\n * do \"myElement.shadowRoot!.querySelector(...)\".\n */\nconst getElementRoot = (el, fallback = el) => {\n return el.shadowRoot || fallback;\n};\n/**\n * Patched version of requestAnimationFrame that avoids ngzone\n * Use only when you know ngzone should not run\n */\nconst raf = (h) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\nconst hasShadowDom = (el) => {\n return !!el.shadowRoot && !!el.attachShadow;\n};\nconst findItemLabel = (componentEl) => {\n const itemEl = componentEl.closest('ion-item');\n if (itemEl) {\n return itemEl.querySelector('ion-label');\n }\n return null;\n};\nconst focusElement = (el) => {\n el.focus();\n /**\n * When programmatically focusing an element,\n * the focus-visible utility will not run because\n * it is expecting a keyboard event to have triggered this;\n * however, there are times when we need to manually control\n * this behavior so we call the `setFocus` method on ion-app\n * which will let us explicitly set the elements to focus.\n */\n if (el.classList.contains('ion-focusable')) {\n const app = el.closest('ion-app');\n if (app) {\n app.setFocus([el]);\n }\n }\n};\n/**\n * This method is used for Ionic's input components that use Shadow DOM. In\n * order to properly label the inputs to work with screen readers, we need\n * to get the text content of the label outside of the shadow root and pass\n * it to the input inside of the shadow root.\n *\n * Referencing label elements by id from outside of the component is\n * impossible due to the shadow boundary, read more here:\n * https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html\n *\n * @param componentEl The shadow element that needs the aria label\n * @param inputId The unique identifier for the input\n */\nconst getAriaLabel = (componentEl, inputId) => {\n let labelText;\n // If the user provides their own label via the aria-labelledby attr\n // we should use that instead of looking for an ion-label\n const labelledBy = componentEl.getAttribute('aria-labelledby');\n // Grab the id off of the component in case they are using\n // a custom label using the label element\n const componentId = componentEl.id;\n let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';\n let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : findItemLabel(componentEl);\n if (label) {\n if (labelledBy === null) {\n label.id = labelId;\n }\n labelText = label.textContent;\n label.setAttribute('aria-hidden', 'true');\n // if there is no label, check to see if the user has provided\n // one by setting an id on the component and using the label element\n }\n else if (componentId.trim() !== '') {\n label = document.querySelector(`label[for=\"${componentId}\"]`);\n if (label) {\n if (label.id !== '') {\n labelId = label.id;\n }\n else {\n label.id = labelId = `${componentId}-lbl`;\n }\n labelText = label.textContent;\n }\n }\n return { label, labelId, labelText };\n};\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nconst renderHiddenInput = (always, container, name, value, disabled) => {\n if (always || hasShadowDom(container)) {\n let input = container.querySelector('input.aux-input');\n if (!input) {\n input = container.ownerDocument.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n }\n};\nconst clamp = (min, n, max) => {\n return Math.max(min, Math.min(n, max));\n};\nconst assert = (actual, reason) => {\n if (!actual) {\n const message = 'ASSERT: ' + reason;\n console.error(message);\n debugger; // eslint-disable-line\n throw new Error(message);\n }\n};\nconst now = (ev) => {\n return ev.timeStamp || Date.now();\n};\nconst pointerCoord = (ev) => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n return { x: touch.clientX, y: touch.clientY };\n }\n if (ev.pageX !== undefined) {\n return { x: ev.pageX, y: ev.pageY };\n }\n }\n return { x: 0, y: 0 };\n};\n/**\n * @hidden\n * Given a side, return if it should be on the end\n * based on the value of dir\n * @param side the side\n * @param isRTL whether the application dir is rtl\n */\nconst isEndSide = (side) => {\n const isRTL = document.dir === 'rtl';\n switch (side) {\n case 'start':\n return isRTL;\n case 'end':\n return !isRTL;\n default:\n throw new Error(`\"${side}\" is not a valid value for [side]. Use \"start\" or \"end\" instead.`);\n }\n};\nconst debounceEvent = (event, wait) => {\n const original = event._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n };\n};\nconst debounce = (func, wait = 0) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n/**\n * Check whether the two string maps are shallow equal.\n *\n * undefined is treated as an empty map.\n *\n * @returns whether the keys are the same and the values are shallow equal.\n */\nconst shallowEqualStringMap = (map1, map2) => {\n map1 !== null && map1 !== void 0 ? map1 : (map1 = {});\n map2 !== null && map2 !== void 0 ? map2 : (map2 = {});\n if (map1 === map2) {\n return true;\n }\n const keys1 = Object.keys(map1);\n if (keys1.length !== Object.keys(map2).length) {\n return false;\n }\n for (const k1 of keys1) {\n if (!(k1 in map2)) {\n return false;\n }\n if (map1[k1] !== map2[k1]) {\n return false;\n }\n }\n return true;\n};\n\nexport { addEventListener as a, removeEventListener as b, componentOnReady as c, getAriaLabel as d, renderHiddenInput as e, focusElement as f, getElementRoot as g, debounceEvent as h, inheritAriaAttributes as i, inheritAttributes as j, findItemLabel as k, clamp as l, hasShadowDom as m, assert as n, isEndSide as o, pointerCoord as p, debounce as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t, now as u };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-490df115.js';\nimport { c as componentOnReady } from './helpers-2914b3be.js';\nimport { b as getIonMode } from './ionic-global-c95cf239.js';\nimport { c as createAnimation } from './animation-e5036198.js';\n\n/**\n * baseAnimation\n * Base class which is extended by the various types. Each\n * type will provide their own animations for open and close\n * and registers itself with Menu.\n */\nconst baseAnimation = (isIos) => {\n // https://material.io/guidelines/motion/movement.html#movement-movement-in-out-of-screen-bounds\n // https://material.io/guidelines/motion/duration-easing.html#duration-easing-natural-easing-curves\n /**\n * \"Apply the sharp curve to items temporarily leaving the screen that may return\n * from the same exit point. When they return, use the deceleration curve. On mobile,\n * this transition typically occurs over 300ms\" -- MD Motion Guide\n */\n return createAnimation().duration(isIos ? 400 : 300);\n};\n\n/**\n * Menu Overlay Type\n * The menu slides over the content. The content\n * itself, which is under the menu, does not move.\n */\nconst menuOverlayAnimation = (menu) => {\n let closedX;\n let openedX;\n const width = menu.width + 8;\n const menuAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n if (menu.isEndSide) {\n // right side\n closedX = width + 'px';\n openedX = '0px';\n }\n else {\n // left side\n closedX = -width + 'px';\n openedX = '0px';\n }\n menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);\n const mode = getIonMode(menu);\n const isIos = mode === 'ios';\n const opacity = isIos ? 0.2 : 0.25;\n backdropAnimation.addElement(menu.backdropEl).fromTo('opacity', 0.01, opacity);\n return baseAnimation(isIos).addAnimation([menuAnimation, backdropAnimation]);\n};\n\n/**\n * Menu Push Type\n * The content slides over to reveal the menu underneath.\n * The menu itself also slides over to reveal its bad self.\n */\nconst menuPushAnimation = (menu) => {\n let contentOpenedX;\n let menuClosedX;\n const mode = getIonMode(menu);\n const width = menu.width;\n if (menu.isEndSide) {\n contentOpenedX = -width + 'px';\n menuClosedX = width + 'px';\n }\n else {\n contentOpenedX = width + 'px';\n menuClosedX = -width + 'px';\n }\n const menuAnimation = createAnimation()\n .addElement(menu.menuInnerEl)\n .fromTo('transform', `translateX(${menuClosedX})`, 'translateX(0px)');\n const contentAnimation = createAnimation()\n .addElement(menu.contentEl)\n .fromTo('transform', 'translateX(0px)', `translateX(${contentOpenedX})`);\n const backdropAnimation = createAnimation().addElement(menu.backdropEl).fromTo('opacity', 0.01, 0.32);\n return baseAnimation(mode === 'ios').addAnimation([menuAnimation, contentAnimation, backdropAnimation]);\n};\n\n/**\n * Menu Reveal Type\n * The content slides over to reveal the menu underneath.\n * The menu itself, which is under the content, does not move.\n */\nconst menuRevealAnimation = (menu) => {\n const mode = getIonMode(menu);\n const openedX = menu.width * (menu.isEndSide ? -1 : 1) + 'px';\n const contentOpen = createAnimation()\n .addElement(menu.contentEl) // REVIEW\n .fromTo('transform', 'translateX(0px)', `translateX(${openedX})`);\n return baseAnimation(mode === 'ios').addAnimation(contentOpen);\n};\n\nconst createMenuController = () => {\n const menuAnimations = new Map();\n const menus = [];\n const open = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return menuEl.open();\n }\n return false;\n };\n const close = async (menu) => {\n const menuEl = await (menu !== undefined ? get(menu) : getOpen());\n if (menuEl !== undefined) {\n return menuEl.close();\n }\n return false;\n };\n const toggle = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return menuEl.toggle();\n }\n return false;\n };\n const enable = async (shouldEnable, menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n menuEl.disabled = !shouldEnable;\n }\n return menuEl;\n };\n const swipeGesture = async (shouldEnable, menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n menuEl.swipeGesture = shouldEnable;\n }\n return menuEl;\n };\n const isOpen = async (menu) => {\n if (menu != null) {\n const menuEl = await get(menu);\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n return menuEl !== undefined && menuEl.isOpen();\n }\n else {\n const menuEl = await getOpen();\n return menuEl !== undefined;\n }\n };\n const isEnabled = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return !menuEl.disabled;\n }\n return false;\n };\n const get = async (menu) => {\n await waitUntilReady();\n if (menu === 'start' || menu === 'end') {\n // there could be more than one menu on the same side\n // so first try to get the enabled one\n const menuRef = find((m) => m.side === menu && !m.disabled);\n if (menuRef) {\n return menuRef;\n }\n // didn't find a menu side that is enabled\n // so try to get the first menu side found\n return find((m) => m.side === menu);\n }\n else if (menu != null) {\n // the menuId was not left or right\n // so try to get the menu by its \"id\"\n return find((m) => m.menuId === menu);\n }\n // return the first enabled menu\n const menuEl = find((m) => !m.disabled);\n if (menuEl) {\n return menuEl;\n }\n // get the first menu in the array, if one exists\n return menus.length > 0 ? menus[0].el : undefined;\n };\n /**\n * Get the instance of the opened menu. Returns `null` if a menu is not found.\n */\n const getOpen = async () => {\n await waitUntilReady();\n return _getOpenSync();\n };\n /**\n * Get all menu instances.\n */\n const getMenus = async () => {\n await waitUntilReady();\n return getMenusSync();\n };\n /**\n * Get whether or not a menu is animating. Returns `true` if any\n * menu is currently animating.\n */\n const isAnimating = async () => {\n await waitUntilReady();\n return isAnimatingSync();\n };\n const registerAnimation = (name, animation) => {\n menuAnimations.set(name, animation);\n };\n const _register = (menu) => {\n if (menus.indexOf(menu) < 0) {\n if (!menu.disabled) {\n _setActiveMenu(menu);\n }\n menus.push(menu);\n }\n };\n const _unregister = (menu) => {\n const index = menus.indexOf(menu);\n if (index > -1) {\n menus.splice(index, 1);\n }\n };\n const _setActiveMenu = (menu) => {\n // if this menu should be enabled\n // then find all the other menus on this same side\n // and automatically disable other same side menus\n const side = menu.side;\n menus.filter((m) => m.side === side && m !== menu).forEach((m) => (m.disabled = true));\n };\n const _setOpen = async (menu, shouldOpen, animated) => {\n if (isAnimatingSync()) {\n return false;\n }\n if (shouldOpen) {\n const openedMenu = await getOpen();\n if (openedMenu && menu.el !== openedMenu) {\n await openedMenu.setOpen(false, false);\n }\n }\n return menu._setOpen(shouldOpen, animated);\n };\n const _createAnimation = (type, menuCmp) => {\n const animationBuilder = menuAnimations.get(type);\n if (!animationBuilder) {\n throw new Error('animation not registered');\n }\n const animation = animationBuilder(menuCmp);\n return animation;\n };\n const _getOpenSync = () => {\n return find((m) => m._isOpen);\n };\n const getMenusSync = () => {\n return menus.map((menu) => menu.el);\n };\n const isAnimatingSync = () => {\n return menus.some((menu) => menu.isAnimating);\n };\n const find = (predicate) => {\n const instance = menus.find(predicate);\n if (instance !== undefined) {\n return instance.el;\n }\n return undefined;\n };\n const waitUntilReady = () => {\n return Promise.all(Array.from(document.querySelectorAll('ion-menu')).map((menu) => new Promise((resolve) => componentOnReady(menu, resolve))));\n };\n registerAnimation('reveal', menuRevealAnimation);\n registerAnimation('push', menuPushAnimation);\n registerAnimation('overlay', menuOverlayAnimation);\n if (typeof document !== 'undefined') {\n document.addEventListener('ionBackButton', (ev) => {\n const openMenu = _getOpenSync();\n if (openMenu) {\n ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {\n return openMenu.close();\n });\n }\n });\n }\n return {\n registerAnimation,\n get,\n getMenus,\n getOpen,\n isEnabled,\n swipeGesture,\n isAnimating,\n isOpen,\n enable,\n toggle,\n close,\n open,\n _getOpenSync,\n _createAnimation,\n _register,\n _unregister,\n _setOpen,\n _setActiveMenu,\n };\n};\nconst menuController = /*@__PURE__*/ createMenuController();\n\nexport { menuController as m };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * When accessing the window, it is important\n * to account for SSR applications where the\n * window is not available. Code that accesses\n * window when it is not available will crash.\n * Even checking if `window === undefined` will cause\n * apps to crash in SSR.\n *\n * Use win below to access an SSR-safe version\n * of the window.\n *\n * Example 1:\n * Before:\n * if (window.innerWidth > 768) { ... }\n *\n * After:\n * import { win } from 'path/to/this/file';\n * if (win?.innerWidth > 768) { ... }\n *\n * Note: Code inside of this if-block will\n * not run in an SSR environment.\n */\nconst win = typeof window !== 'undefined' ? window : undefined;\n\nexport { win as w };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst NAMESPACE = 'ionic';\n\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet queuePending = false;\nconst win = typeof window !== 'undefined' ? window : {};\nconst doc = win.document || { head: {} };\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = true;\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n ;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (listeners) {\n listeners.map(([flags, name, method]) => {\n const target = getHostListenerTarget(elm, flags) ;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\nconst createTime = (fnName, tagName = '') => {\n {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$);\n if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\nconst isHost = (node) => node && node.$tag$ === Host;\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp ) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // // listens for \"click\"\n // // listens for \"Click\"\n // // listens for \"ionChange\"\n // // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in \n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n );\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before) );\n }\n }\n }\n};\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `

HEY

`\n * newVNode: `

THERE

`\n *\n * Then when comparing the children of the `
` tag we check the equality\n * of the VNodes corresponding to the `

` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `

`\n * newVNode: `
`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // \n // \n // \n // \n // \n // \n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime();\n Cstr = await Cstr;\n endLoad();\n }\n if (!Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n if (Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n ;\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (!hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = hostRef.$lazyInstance$ ;\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n {\n safeCall(instance, 'disconnectedCallback');\n }\n }\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$attrsToReflect$ = [];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n const tagName = cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n {\n {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n }\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (0, console.error)(e, el);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n const module = cmpModules.get(bundleId) ;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${''}`).then((importedModule) => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst flush = () => {\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nconst Build = {\n isDev: false,\n isBrowser: true,\n isServer: false,\n isTesting: false,\n};\n\nexport { Build as B, Host as H, NAMESPACE as N, setMode as a, bootstrapLazy as b, writeTask as c, doc as d, createEvent as e, readTask as f, getMode as g, h, getElement as i, forceUpdate as j, getAssetPath as k, promiseResolve as p, registerInstance as r, setPlatformHelpers as s, win as w };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Does a simple sanitization of all elements\n * in an untrusted string\n */\nconst sanitizeDOMString = (untrustedString) => {\n try {\n if (untrustedString instanceof IonicSafeString) {\n return untrustedString.value;\n }\n if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {\n return untrustedString;\n }\n /**\n * Create a document fragment\n * separate from the main DOM,\n * create a div to do our work in\n */\n const documentFragment = document.createDocumentFragment();\n const workingDiv = document.createElement('div');\n documentFragment.appendChild(workingDiv);\n workingDiv.innerHTML = untrustedString;\n /**\n * Remove any elements\n * that are blocked\n */\n blockedTags.forEach((blockedTag) => {\n const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);\n for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {\n const element = getElementsToRemove[elementIndex];\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n else {\n documentFragment.removeChild(element);\n }\n /**\n * We still need to sanitize\n * the children of this element\n * as they are left behind\n */\n const childElements = getElementChildren(element);\n /* eslint-disable-next-line */\n for (let childIndex = 0; childIndex < childElements.length; childIndex++) {\n sanitizeElement(childElements[childIndex]);\n }\n }\n });\n /**\n * Go through remaining elements and remove\n * non-allowed attribs\n */\n // IE does not support .children on document fragments, only .childNodes\n const dfChildren = getElementChildren(documentFragment);\n /* eslint-disable-next-line */\n for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {\n sanitizeElement(dfChildren[childIndex]);\n }\n // Append document fragment to div\n const fragmentDiv = document.createElement('div');\n fragmentDiv.appendChild(documentFragment);\n // First child is always the div we did our work in\n const getInnerDiv = fragmentDiv.querySelector('div');\n return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;\n }\n catch (err) {\n console.error(err);\n return '';\n }\n};\n/**\n * Clean up current element based on allowed attributes\n * and then recursively dig down into any child elements to\n * clean those up as well\n */\nconst sanitizeElement = (element) => {\n // IE uses childNodes, so ignore nodes that are not elements\n if (element.nodeType && element.nodeType !== 1) {\n return;\n }\n for (let i = element.attributes.length - 1; i >= 0; i--) {\n const attribute = element.attributes.item(i);\n const attributeName = attribute.name;\n // remove non-allowed attribs\n if (!allowedAttributes.includes(attributeName.toLowerCase())) {\n element.removeAttribute(attributeName);\n continue;\n }\n // clean up any allowed attribs\n // that attempt to do any JS funny-business\n const attributeValue = attribute.value;\n /* eslint-disable-next-line */\n if (attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) {\n element.removeAttribute(attributeName);\n }\n }\n /**\n * Sanitize any nested children\n */\n const childElements = getElementChildren(element);\n /* eslint-disable-next-line */\n for (let i = 0; i < childElements.length; i++) {\n sanitizeElement(childElements[i]);\n }\n};\n/**\n * IE doesn't always support .children\n * so we revert to .childNodes instead\n */\nconst getElementChildren = (el) => {\n return el.children != null ? el.children : el.childNodes;\n};\nconst isSanitizerEnabled = () => {\n var _a;\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n if (config.get) {\n return config.get('sanitizerEnabled', true);\n }\n else {\n return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;\n }\n }\n return true;\n};\nconst allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];\nconst blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];\nclass IonicSafeString {\n constructor(value) {\n this.value = value;\n }\n}\n\nexport { IonicSafeString as I, sanitizeDOMString as s };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { G as GESTURE_CONTROLLER } from './gesture-controller-17060b7c.js';\nexport { G as GESTURE_CONTROLLER } from './gesture-controller-17060b7c.js';\n\nconst addEventListener = (el, eventName, callback, opts) => {\n // use event listener options when supported\n // otherwise it's just a boolean for the \"capture\" arg\n const listenerOpts = supportsPassive(el)\n ? {\n capture: !!opts.capture,\n passive: !!opts.passive,\n }\n : !!opts.capture;\n let add;\n let remove;\n if (el['__zone_symbol__addEventListener']) {\n add = '__zone_symbol__addEventListener';\n remove = '__zone_symbol__removeEventListener';\n }\n else {\n add = 'addEventListener';\n remove = 'removeEventListener';\n }\n el[add](eventName, callback, listenerOpts);\n return () => {\n el[remove](eventName, callback, listenerOpts);\n };\n};\nconst supportsPassive = (node) => {\n if (_sPassive === undefined) {\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get: () => {\n _sPassive = true;\n },\n });\n node.addEventListener('optsTest', () => {\n return;\n }, opts);\n }\n catch (e) {\n _sPassive = false;\n }\n }\n return !!_sPassive;\n};\nlet _sPassive;\n\nconst MOUSE_WAIT = 2000;\nconst createPointerEvents = (el, pointerDown, pointerMove, pointerUp, options) => {\n let rmTouchStart;\n let rmTouchMove;\n let rmTouchEnd;\n let rmTouchCancel;\n let rmMouseStart;\n let rmMouseMove;\n let rmMouseUp;\n let lastTouchEvent = 0;\n const handleTouchStart = (ev) => {\n lastTouchEvent = Date.now() + MOUSE_WAIT;\n if (!pointerDown(ev)) {\n return;\n }\n if (!rmTouchMove && pointerMove) {\n rmTouchMove = addEventListener(el, 'touchmove', pointerMove, options);\n }\n /**\n * Events are dispatched on the element that is tapped and bubble up to\n * the reference element in the gesture. In the event that the element this\n * event was first dispatched on is removed from the DOM, the event will no\n * longer bubble up to our reference element. This leaves the gesture in an\n * unusable state. To account for this, the touchend and touchcancel listeners\n * should be added to the event target so that they still fire even if the target\n * is removed from the DOM.\n */\n if (!rmTouchEnd) {\n rmTouchEnd = addEventListener(ev.target, 'touchend', handleTouchEnd, options);\n }\n if (!rmTouchCancel) {\n rmTouchCancel = addEventListener(ev.target, 'touchcancel', handleTouchEnd, options);\n }\n };\n const handleMouseDown = (ev) => {\n if (lastTouchEvent > Date.now()) {\n return;\n }\n if (!pointerDown(ev)) {\n return;\n }\n if (!rmMouseMove && pointerMove) {\n rmMouseMove = addEventListener(getDocument(el), 'mousemove', pointerMove, options);\n }\n if (!rmMouseUp) {\n rmMouseUp = addEventListener(getDocument(el), 'mouseup', handleMouseUp, options);\n }\n };\n const handleTouchEnd = (ev) => {\n stopTouch();\n if (pointerUp) {\n pointerUp(ev);\n }\n };\n const handleMouseUp = (ev) => {\n stopMouse();\n if (pointerUp) {\n pointerUp(ev);\n }\n };\n const stopTouch = () => {\n if (rmTouchMove) {\n rmTouchMove();\n }\n if (rmTouchEnd) {\n rmTouchEnd();\n }\n if (rmTouchCancel) {\n rmTouchCancel();\n }\n rmTouchMove = rmTouchEnd = rmTouchCancel = undefined;\n };\n const stopMouse = () => {\n if (rmMouseMove) {\n rmMouseMove();\n }\n if (rmMouseUp) {\n rmMouseUp();\n }\n rmMouseMove = rmMouseUp = undefined;\n };\n const stop = () => {\n stopTouch();\n stopMouse();\n };\n const enable = (isEnabled = true) => {\n if (!isEnabled) {\n if (rmTouchStart) {\n rmTouchStart();\n }\n if (rmMouseStart) {\n rmMouseStart();\n }\n rmTouchStart = rmMouseStart = undefined;\n stop();\n }\n else {\n if (!rmTouchStart) {\n rmTouchStart = addEventListener(el, 'touchstart', handleTouchStart, options);\n }\n if (!rmMouseStart) {\n rmMouseStart = addEventListener(el, 'mousedown', handleMouseDown, options);\n }\n }\n };\n const destroy = () => {\n enable(false);\n pointerUp = pointerMove = pointerDown = undefined;\n };\n return {\n enable,\n stop,\n destroy,\n };\n};\nconst getDocument = (node) => {\n return node instanceof Document ? node : node.ownerDocument;\n};\n\nconst createPanRecognizer = (direction, thresh, maxAngle) => {\n const radians = maxAngle * (Math.PI / 180);\n const isDirX = direction === 'x';\n const maxCosine = Math.cos(radians);\n const threshold = thresh * thresh;\n let startX = 0;\n let startY = 0;\n let dirty = false;\n let isPan = 0;\n return {\n start(x, y) {\n startX = x;\n startY = y;\n isPan = 0;\n dirty = true;\n },\n detect(x, y) {\n if (!dirty) {\n return false;\n }\n const deltaX = x - startX;\n const deltaY = y - startY;\n const distance = deltaX * deltaX + deltaY * deltaY;\n if (distance < threshold) {\n return false;\n }\n const hypotenuse = Math.sqrt(distance);\n const cosine = (isDirX ? deltaX : deltaY) / hypotenuse;\n if (cosine > maxCosine) {\n isPan = 1;\n }\n else if (cosine < -maxCosine) {\n isPan = -1;\n }\n else {\n isPan = 0;\n }\n dirty = false;\n return true;\n },\n isGesture() {\n return isPan !== 0;\n },\n getDirection() {\n return isPan;\n },\n };\n};\n\nconst createGesture = (config) => {\n let hasCapturedPan = false;\n let hasStartedPan = false;\n let hasFiredStart = true;\n let isMoveQueued = false;\n const finalConfig = Object.assign({ disableScroll: false, direction: 'x', gesturePriority: 0, passive: true, maxAngle: 40, threshold: 10 }, config);\n const canStart = finalConfig.canStart;\n const onWillStart = finalConfig.onWillStart;\n const onStart = finalConfig.onStart;\n const onEnd = finalConfig.onEnd;\n const notCaptured = finalConfig.notCaptured;\n const onMove = finalConfig.onMove;\n const threshold = finalConfig.threshold;\n const passive = finalConfig.passive;\n const blurOnStart = finalConfig.blurOnStart;\n const detail = {\n type: 'pan',\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n event: undefined,\n data: undefined,\n };\n const pan = createPanRecognizer(finalConfig.direction, finalConfig.threshold, finalConfig.maxAngle);\n const gesture = GESTURE_CONTROLLER.createGesture({\n name: config.gestureName,\n priority: config.gesturePriority,\n disableScroll: config.disableScroll,\n });\n const pointerDown = (ev) => {\n const timeStamp = now(ev);\n if (hasStartedPan || !hasFiredStart) {\n return false;\n }\n updateDetail(ev, detail);\n detail.startX = detail.currentX;\n detail.startY = detail.currentY;\n detail.startTime = detail.currentTime = timeStamp;\n detail.velocityX = detail.velocityY = detail.deltaX = detail.deltaY = 0;\n detail.event = ev;\n // Check if gesture can start\n if (canStart && canStart(detail) === false) {\n return false;\n }\n // Release fallback\n gesture.release();\n // Start gesture\n if (!gesture.start()) {\n return false;\n }\n hasStartedPan = true;\n if (threshold === 0) {\n return tryToCapturePan();\n }\n pan.start(detail.startX, detail.startY);\n return true;\n };\n const pointerMove = (ev) => {\n // fast path, if gesture is currently captured\n // do minimum job to get user-land even dispatched\n if (hasCapturedPan) {\n if (!isMoveQueued && hasFiredStart) {\n isMoveQueued = true;\n calcGestureData(detail, ev);\n requestAnimationFrame(fireOnMove);\n }\n return;\n }\n // gesture is currently being detected\n calcGestureData(detail, ev);\n if (pan.detect(detail.currentX, detail.currentY)) {\n if (!pan.isGesture() || !tryToCapturePan()) {\n abortGesture();\n }\n }\n };\n const fireOnMove = () => {\n // Since fireOnMove is called inside a RAF, onEnd() might be called,\n // we must double check hasCapturedPan\n if (!hasCapturedPan) {\n return;\n }\n isMoveQueued = false;\n if (onMove) {\n onMove(detail);\n }\n };\n const tryToCapturePan = () => {\n if (!gesture.capture()) {\n return false;\n }\n hasCapturedPan = true;\n hasFiredStart = false;\n // reset start position since the real user-land event starts here\n // If the pan detector threshold is big, not resetting the start position\n // will cause a jump in the animation equal to the detector threshold.\n // the array of positions used to calculate the gesture velocity does not\n // need to be cleaned, more points in the positions array always results in a\n // more accurate value of the velocity.\n detail.startX = detail.currentX;\n detail.startY = detail.currentY;\n detail.startTime = detail.currentTime;\n if (onWillStart) {\n onWillStart(detail).then(fireOnStart);\n }\n else {\n fireOnStart();\n }\n return true;\n };\n const blurActiveElement = () => {\n if (typeof document !== 'undefined') {\n const activeElement = document.activeElement;\n if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) {\n activeElement.blur();\n }\n }\n };\n const fireOnStart = () => {\n if (blurOnStart) {\n blurActiveElement();\n }\n if (onStart) {\n onStart(detail);\n }\n hasFiredStart = true;\n };\n const reset = () => {\n hasCapturedPan = false;\n hasStartedPan = false;\n isMoveQueued = false;\n hasFiredStart = true;\n gesture.release();\n };\n // END *************************\n const pointerUp = (ev) => {\n const tmpHasCaptured = hasCapturedPan;\n const tmpHasFiredStart = hasFiredStart;\n reset();\n if (!tmpHasFiredStart) {\n return;\n }\n calcGestureData(detail, ev);\n // Try to capture press\n if (tmpHasCaptured) {\n if (onEnd) {\n onEnd(detail);\n }\n return;\n }\n // Not captured any event\n if (notCaptured) {\n notCaptured(detail);\n }\n };\n const pointerEvents = createPointerEvents(finalConfig.el, pointerDown, pointerMove, pointerUp, {\n capture: false,\n passive,\n });\n const abortGesture = () => {\n reset();\n pointerEvents.stop();\n if (notCaptured) {\n notCaptured(detail);\n }\n };\n return {\n enable(enable = true) {\n if (!enable) {\n if (hasCapturedPan) {\n pointerUp(undefined);\n }\n reset();\n }\n pointerEvents.enable(enable);\n },\n destroy() {\n gesture.destroy();\n pointerEvents.destroy();\n },\n };\n};\nconst calcGestureData = (detail, ev) => {\n if (!ev) {\n return;\n }\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n updateDetail(ev, detail);\n const currentX = detail.currentX;\n const currentY = detail.currentY;\n const timestamp = (detail.currentTime = now(ev));\n const timeDelta = timestamp - prevT;\n if (timeDelta > 0 && timeDelta < 100) {\n const velocityX = (currentX - prevX) / timeDelta;\n const velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n detail.event = ev;\n};\nconst updateDetail = (ev, detail) => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n let x = 0;\n let y = 0;\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n x = touch.clientX;\n y = touch.clientY;\n }\n else if (ev.pageX !== undefined) {\n x = ev.pageX;\n y = ev.pageY;\n }\n }\n detail.currentX = x;\n detail.currentY = y;\n};\nconst now = (ev) => {\n return ev.timeStamp || Date.now();\n};\n\nexport { createGesture };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as writeTask, B as Build } from './index-8e692445.js';\nimport { c as componentOnReady, r as raf } from './helpers-2914b3be.js';\n\nconst LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';\nconst LIFECYCLE_DID_ENTER = 'ionViewDidEnter';\nconst LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';\nconst LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';\nconst LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';\n\nconst iosTransitionAnimation = () => import('./ios.transition-add97167.js');\nconst mdTransitionAnimation = () => import('./md.transition-41d5d0e3.js');\nconst transition = (opts) => {\n return new Promise((resolve, reject) => {\n writeTask(() => {\n beforeTransition(opts);\n runTransition(opts).then((result) => {\n if (result.animation) {\n result.animation.destroy();\n }\n afterTransition(opts);\n resolve(result);\n }, (error) => {\n afterTransition(opts);\n reject(error);\n });\n });\n });\n};\nconst beforeTransition = (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n setZIndex(enteringEl, leavingEl, opts.direction);\n if (opts.showGoBack) {\n enteringEl.classList.add('can-go-back');\n }\n else {\n enteringEl.classList.remove('can-go-back');\n }\n setPageHidden(enteringEl, false);\n /**\n * When transitioning, the page should not\n * respond to click events. This resolves small\n * issues like users double tapping the ion-back-button.\n * These pointer events are removed in `afterTransition`.\n */\n enteringEl.style.setProperty('pointer-events', 'none');\n if (leavingEl) {\n setPageHidden(leavingEl, false);\n leavingEl.style.setProperty('pointer-events', 'none');\n }\n};\nconst runTransition = async (opts) => {\n const animationBuilder = await getAnimationBuilder(opts);\n const ani = animationBuilder && Build.isBrowser ? animation(animationBuilder, opts) : noAnimation(opts); // fast path for no animation\n return ani;\n};\nconst afterTransition = (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n enteringEl.classList.remove('ion-page-invisible');\n enteringEl.style.removeProperty('pointer-events');\n if (leavingEl !== undefined) {\n leavingEl.classList.remove('ion-page-invisible');\n leavingEl.style.removeProperty('pointer-events');\n }\n};\nconst getAnimationBuilder = async (opts) => {\n if (!opts.leavingEl || !opts.animated || opts.duration === 0) {\n return undefined;\n }\n if (opts.animationBuilder) {\n return opts.animationBuilder;\n }\n const getAnimation = opts.mode === 'ios'\n ? (await iosTransitionAnimation()).iosTransitionAnimation\n : (await mdTransitionAnimation()).mdTransitionAnimation;\n return getAnimation;\n};\nconst animation = async (animationBuilder, opts) => {\n await waitForReady(opts, true);\n const trans = animationBuilder(opts.baseEl, opts);\n fireWillEvents(opts.enteringEl, opts.leavingEl);\n const didComplete = await playTransition(trans, opts);\n if (opts.progressCallback) {\n opts.progressCallback(undefined);\n }\n if (didComplete) {\n fireDidEvents(opts.enteringEl, opts.leavingEl);\n }\n return {\n hasCompleted: didComplete,\n animation: trans,\n };\n};\nconst noAnimation = async (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n await waitForReady(opts, false);\n fireWillEvents(enteringEl, leavingEl);\n fireDidEvents(enteringEl, leavingEl);\n return {\n hasCompleted: true,\n };\n};\nconst waitForReady = async (opts, defaultDeep) => {\n const deep = opts.deepWait !== undefined ? opts.deepWait : defaultDeep;\n const promises = deep\n ? [deepReady(opts.enteringEl), deepReady(opts.leavingEl)]\n : [shallowReady(opts.enteringEl), shallowReady(opts.leavingEl)];\n await Promise.all(promises);\n await notifyViewReady(opts.viewIsReady, opts.enteringEl);\n};\nconst notifyViewReady = async (viewIsReady, enteringEl) => {\n if (viewIsReady) {\n await viewIsReady(enteringEl);\n }\n};\nconst playTransition = (trans, opts) => {\n const progressCallback = opts.progressCallback;\n const promise = new Promise((resolve) => {\n trans.onFinish((currentStep) => resolve(currentStep === 1));\n });\n // cool, let's do this, start the transition\n if (progressCallback) {\n // this is a swipe to go back, just get the transition progress ready\n // kick off the swipe animation start\n trans.progressStart(true);\n progressCallback(trans);\n }\n else {\n // only the top level transition should actually start \"play\"\n // kick it off and let it play through\n // ******** DOM WRITE ****************\n trans.play();\n }\n // create a callback for when the animation is done\n return promise;\n};\nconst fireWillEvents = (enteringEl, leavingEl) => {\n lifecycle(leavingEl, LIFECYCLE_WILL_LEAVE);\n lifecycle(enteringEl, LIFECYCLE_WILL_ENTER);\n};\nconst fireDidEvents = (enteringEl, leavingEl) => {\n lifecycle(enteringEl, LIFECYCLE_DID_ENTER);\n lifecycle(leavingEl, LIFECYCLE_DID_LEAVE);\n};\nconst lifecycle = (el, eventName) => {\n if (el) {\n const ev = new CustomEvent(eventName, {\n bubbles: false,\n cancelable: false,\n });\n el.dispatchEvent(ev);\n }\n};\nconst shallowReady = (el) => {\n if (el) {\n return new Promise((resolve) => componentOnReady(el, resolve));\n }\n return Promise.resolve();\n};\nconst deepReady = async (el) => {\n const element = el;\n if (element) {\n if (element.componentOnReady != null) {\n // eslint-disable-next-line custom-rules/no-component-on-ready-method\n const stencilEl = await element.componentOnReady();\n if (stencilEl != null) {\n return;\n }\n /**\n * Custom elements in Stencil will have __registerHost.\n */\n }\n else if (element.__registerHost != null) {\n /**\n * Non-lazy loaded custom elements need to wait\n * one frame for component to be loaded.\n */\n const waitForCustomElement = new Promise((resolve) => raf(resolve));\n await waitForCustomElement;\n return;\n }\n await Promise.all(Array.from(element.children).map(deepReady));\n }\n};\nconst setPageHidden = (el, hidden) => {\n if (hidden) {\n el.setAttribute('aria-hidden', 'true');\n el.classList.add('ion-page-hidden');\n }\n else {\n el.hidden = false;\n el.removeAttribute('aria-hidden');\n el.classList.remove('ion-page-hidden');\n }\n};\nconst setZIndex = (enteringEl, leavingEl, direction) => {\n if (enteringEl !== undefined) {\n enteringEl.style.zIndex = direction === 'back' ? '99' : '101';\n }\n if (leavingEl !== undefined) {\n leavingEl.style.zIndex = '100';\n }\n};\nconst getIonPageElement = (element) => {\n if (element.classList.contains('ion-page')) {\n return element;\n }\n const ionPage = element.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs');\n if (ionPage) {\n return ionPage;\n }\n // idk, return the original element so at least something animates and we don't have a null pointer\n return element;\n};\n\nexport { LIFECYCLE_WILL_ENTER as L, LIFECYCLE_DID_ENTER as a, LIFECYCLE_WILL_LEAVE as b, LIFECYCLE_DID_LEAVE as c, LIFECYCLE_WILL_UNLOAD as d, deepReady as e, getIonPageElement as g, lifecycle as l, setPageHidden as s, transition as t };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nexport { c as createAnimation } from './animation-e5036198.js';\nexport { iosTransitionAnimation } from './ios.transition-add97167.js';\nexport { mdTransitionAnimation } from './md.transition-41d5d0e3.js';\nexport { g as getTimeGivenProgression } from './cubic-bezier-c313947a.js';\nexport { createGesture } from './index-f8d8aa5a.js';\nexport { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-c95cf239.js';\nimport { a as addEventListener, r as raf, b as removeEventListener } from './helpers-2914b3be.js';\nexport { c as componentOnReady } from './helpers-2914b3be.js';\nexport { I as IonicSafeString } from './index-dff497fb.js';\nexport { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD } from './index-fbafcf43.js';\nexport { m as menuController } from './index-32d8f55c.js';\nexport { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-6ab11907.js';\nimport './index-33ffec25.js';\nimport './gesture-controller-17060b7c.js';\nimport './index-8e692445.js';\nimport './hardware-back-button-490df115.js';\n\nconst setupConfig = (config) => {\n const win = window;\n const Ionic = win.Ionic;\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (Ionic && Ionic.config && Ionic.config.constructor.name !== 'Object') {\n return;\n }\n win.Ionic = win.Ionic || {};\n win.Ionic.config = Object.assign(Object.assign({}, win.Ionic.config), config);\n return win.Ionic.config;\n};\nconst getMode = () => {\n var _a;\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n if (config.mode) {\n return config.mode;\n }\n else {\n return config.get('mode');\n }\n }\n return 'md';\n};\n\n/**\n * This is a plugin for Swiper that allows it to work\n * with Ionic Framework and the routing integrations.\n * Without this plugin, Swiper would be incapable of correctly\n * determining the dimensions of the slides component as\n * each view is initially hidden before transitioning in.\n */\nconst setupSwiperInIonic = (swiper, watchForIonPageChanges = true) => {\n if (typeof window === 'undefined') {\n return;\n }\n const swiperEl = swiper.el;\n const ionPage = swiperEl.closest('.ion-page');\n if (!ionPage) {\n if (watchForIonPageChanges) {\n /**\n * If no ion page found, it is possible\n * that we are in the overlay setup step\n * where the inner component has been\n * created but not attached to the DOM yet.\n * If so, wait for the .ion-page class to\n * appear on the root div and re-run setup.\n */\n const rootNode = swiperEl.getRootNode();\n if (rootNode.tagName === 'DIV') {\n const mo = new MutationObserver((m) => {\n const mutation = m[0];\n const wasEmpty = mutation.oldValue === null;\n const hasIonPage = rootNode.classList.contains('ion-page');\n /**\n * Now that we have an .ion-page class\n * we can safely attempt setup again.\n */\n if (wasEmpty && hasIonPage) {\n mo.disconnect();\n /**\n * Set false here so we do not\n * get infinite loops\n */\n setupSwiperInIonic(swiper, false);\n }\n });\n mo.observe(rootNode, {\n attributeFilter: ['class'],\n attributeOldValue: true,\n });\n }\n }\n return;\n }\n /**\n * If using slides in a modal or\n * popover we need to wait for the\n * overlay to be shown as these components\n * are hidden when they are initially created.\n */\n const modalOrPopover = swiperEl.closest('ion-modal, ion-popover');\n if (modalOrPopover) {\n const eventName = modalOrPopover.tagName === 'ION-MODAL' ? 'ionModalWillPresent' : 'ionPopoverWillPresent';\n const overlayCallback = () => {\n /**\n * We need an raf here so the update\n * is fired one tick after the overlay is shown.\n */\n raf(() => {\n swiperEl.swiper.update();\n removeEventListener(modalOrPopover, eventName, overlayCallback);\n });\n };\n addEventListener(modalOrPopover, eventName, overlayCallback);\n }\n else {\n /**\n * If using slides in a page\n * we need to wait for the ion-page-invisible\n * class to be removed so Swiper can correctly\n * compute the dimensions of the slides.\n */\n const mo = new MutationObserver((m) => {\n var _a;\n const mutation = m[0];\n const wasPageHidden = (_a = mutation.oldValue) === null || _a === void 0 ? void 0 : _a.includes('ion-page-invisible');\n const isPageHidden = ionPage.classList.contains('ion-page-invisible');\n /**\n * Only update Swiper if the page was\n * hidden but is no longer hidden.\n */\n if (!isPageHidden && isPageHidden !== wasPageHidden) {\n swiperEl.swiper.update();\n }\n });\n mo.observe(ionPage, {\n attributeFilter: ['class'],\n attributeOldValue: true,\n });\n }\n /**\n * We also need to listen for the appload event\n * which is emitted by Stencil in the\n * event that Swiper is being used on the\n * view that is rendered initially.\n */\n const onAppLoad = () => {\n swiperEl.swiper.update();\n removeEventListener(window, 'appload', onAppLoad);\n };\n addEventListener(window, 'appload', onAppLoad);\n};\nconst IonicSwiper = {\n name: 'ionic',\n on: {\n afterInit(swiper) {\n console.warn('[Deprecation Warning]: The IonicSwiper module has been deprecated in favor of the IonSlides module. This change was made to better support the Swiper 7 release. The IonicSwiper module will be removed in Ionic 7.0. See https://ionicframework.com/docs/api/slides#migration for revised migration steps.');\n setupSwiperInIonic(swiper);\n },\n },\n};\n\nconst IonicSlides = (opts) => {\n const { swiper, extendParams } = opts;\n const slidesParams = {\n effect: undefined,\n direction: 'horizontal',\n initialSlide: 0,\n loop: false,\n parallax: false,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 300,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0,\n slidesOffsetAfter: 0,\n touchEventsTarget: 'container',\n autoplay: false,\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n autoHeight: false,\n setWrapperSize: false,\n zoom: {\n maxRatio: 3,\n minRatio: 1,\n toggle: false,\n },\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n touchStartPreventDefault: false,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n resistance: true,\n resistanceRatio: 0.85,\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n loopAdditionalSlides: 0,\n noSwiping: true,\n runCallbacksOnInit: true,\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n fadeEffect: {\n crossFade: false,\n },\n a11y: {\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n },\n };\n if (swiper.pagination) {\n slidesParams.pagination = {\n type: 'bullets',\n clickable: false,\n hideOnClick: false,\n };\n }\n if (swiper.scrollbar) {\n slidesParams.scrollbar = {\n hide: true,\n };\n }\n extendParams(slidesParams);\n};\n\nexport { IonicSlides, IonicSwiper, getMode, setupConfig };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { s as setPlatformHelpers, g as getMode, a as setMode } from './index-8e692445.js';\n\nclass Config {\n constructor() {\n this.m = new Map();\n }\n reset(configObj) {\n this.m = new Map(Object.entries(configObj));\n }\n get(key, fallback) {\n const value = this.m.get(key);\n return value !== undefined ? value : fallback;\n }\n getBoolean(key, fallback = false) {\n const val = this.m.get(key);\n if (val === undefined) {\n return fallback;\n }\n if (typeof val === 'string') {\n return val === 'true';\n }\n return !!val;\n }\n getNumber(key, fallback) {\n const val = parseFloat(this.m.get(key));\n return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;\n }\n set(key, value) {\n this.m.set(key, value);\n }\n}\nconst config = /*@__PURE__*/ new Config();\nconst configFromSession = (win) => {\n try {\n const configStr = win.sessionStorage.getItem(IONIC_SESSION_KEY);\n return configStr !== null ? JSON.parse(configStr) : {};\n }\n catch (e) {\n return {};\n }\n};\nconst saveConfig = (win, c) => {\n try {\n win.sessionStorage.setItem(IONIC_SESSION_KEY, JSON.stringify(c));\n }\n catch (e) {\n return;\n }\n};\nconst configFromURL = (win) => {\n const configObj = {};\n win.location.search\n .slice(1)\n .split('&')\n .map((entry) => entry.split('='))\n .map(([key, value]) => [decodeURIComponent(key), decodeURIComponent(value)])\n .filter(([key]) => startsWith(key, IONIC_PREFIX))\n .map(([key, value]) => [key.slice(IONIC_PREFIX.length), value])\n .forEach(([key, value]) => {\n configObj[key] = value;\n });\n return configObj;\n};\nconst startsWith = (input, search) => {\n return input.substr(0, search.length) === search;\n};\nconst IONIC_PREFIX = 'ionic:';\nconst IONIC_SESSION_KEY = 'ionic-persist-config';\n\nconst getPlatforms = (win) => setupPlatforms(win);\nconst isPlatform = (winOrPlatform, platform) => {\n if (typeof winOrPlatform === 'string') {\n platform = winOrPlatform;\n winOrPlatform = undefined;\n }\n return getPlatforms(winOrPlatform).includes(platform);\n};\nconst setupPlatforms = (win = window) => {\n if (typeof win === 'undefined') {\n return [];\n }\n win.Ionic = win.Ionic || {};\n let platforms = win.Ionic.platforms;\n if (platforms == null) {\n platforms = win.Ionic.platforms = detectPlatforms(win);\n platforms.forEach((p) => win.document.documentElement.classList.add(`plt-${p}`));\n }\n return platforms;\n};\nconst detectPlatforms = (win) => {\n const customPlatformMethods = config.get('platform');\n return Object.keys(PLATFORMS_MAP).filter((p) => {\n const customMethod = customPlatformMethods === null || customPlatformMethods === void 0 ? void 0 : customPlatformMethods[p];\n return typeof customMethod === 'function' ? customMethod(win) : PLATFORMS_MAP[p](win);\n });\n};\nconst isMobileWeb = (win) => isMobile(win) && !isHybrid(win);\nconst isIpad = (win) => {\n // iOS 12 and below\n if (testUserAgent(win, /iPad/i)) {\n return true;\n }\n // iOS 13+\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\n return true;\n }\n return false;\n};\nconst isIphone = (win) => testUserAgent(win, /iPhone/i);\nconst isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\nconst isAndroid = (win) => testUserAgent(win, /android|sink/i);\nconst isAndroidTablet = (win) => {\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\n};\nconst isPhablet = (win) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;\n};\nconst isTablet = (win) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n return isIpad(win) || isAndroidTablet(win) || (smallest > 460 && smallest < 820 && largest > 780 && largest < 1400);\n};\nconst isMobile = (win) => matchMedia(win, '(any-pointer:coarse)');\nconst isDesktop = (win) => !isMobile(win);\nconst isHybrid = (win) => isCordova(win) || isCapacitorNative(win);\nconst isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\nconst isCapacitorNative = (win) => {\n const capacitor = win['Capacitor'];\n return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);\n};\nconst isElectron = (win) => testUserAgent(win, /electron/i);\nconst isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };\nconst testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);\nconst matchMedia = (win, query) => { var _a; return (_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, query).matches; };\nconst PLATFORMS_MAP = {\n ipad: isIpad,\n iphone: isIphone,\n ios: isIOS,\n android: isAndroid,\n phablet: isPhablet,\n tablet: isTablet,\n cordova: isCordova,\n capacitor: isCapacitorNative,\n electron: isElectron,\n pwa: isPWA,\n mobile: isMobile,\n mobileweb: isMobileWeb,\n desktop: isDesktop,\n hybrid: isHybrid,\n};\n\nlet defaultMode;\nconst getIonMode = (ref) => {\n return (ref && getMode(ref)) || defaultMode;\n};\nconst initialize = (userConfig = {}) => {\n if (typeof window === 'undefined') {\n return;\n }\n const doc = window.document;\n const win = window;\n const Ionic = (win.Ionic = win.Ionic || {});\n const platformHelpers = {};\n if (userConfig._ael) {\n platformHelpers.ael = userConfig._ael;\n }\n if (userConfig._rel) {\n platformHelpers.rel = userConfig._rel;\n }\n if (userConfig._ce) {\n platformHelpers.ce = userConfig._ce;\n }\n setPlatformHelpers(platformHelpers);\n // create the Ionic.config from raw config object (if it exists)\n // and convert Ionic.config into a ConfigApi that has a get() fn\n const configObj = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configFromSession(win)), { persistConfig: false }), Ionic.config), configFromURL(win)), userConfig);\n config.reset(configObj);\n if (config.getBoolean('persistConfig')) {\n saveConfig(win, configObj);\n }\n // Setup platforms\n setupPlatforms(win);\n // first see if the mode was set as an attribute on \n // which could have been set by the user, or by pre-rendering\n // otherwise get the mode via config settings, and fallback to md\n Ionic.config = config;\n Ionic.mode = defaultMode = config.get('mode', doc.documentElement.getAttribute('mode') || (isPlatform(win, 'ios') ? 'ios' : 'md'));\n config.set('mode', defaultMode);\n doc.documentElement.setAttribute('mode', defaultMode);\n doc.documentElement.classList.add(defaultMode);\n if (config.getBoolean('_testing')) {\n config.set('animated', false);\n }\n const isIonicElement = (elm) => { var _a; return (_a = elm.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('ION-'); };\n const isAllowedIonicModeValue = (elmMode) => ['ios', 'md'].includes(elmMode);\n setMode((elm) => {\n while (elm) {\n const elmMode = elm.mode || elm.getAttribute('mode');\n if (elmMode) {\n if (isAllowedIonicModeValue(elmMode)) {\n return elmMode;\n }\n else if (isIonicElement(elm)) {\n console.warn('Invalid ionic mode: \"' + elmMode + '\", expected: \"ios\" or \"md\"');\n }\n }\n elm = elm.parentElement;\n }\n return defaultMode;\n });\n};\n\nexport { isPlatform as a, getIonMode as b, config as c, getPlatforms as g, initialize as i };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as createAnimation } from './animation-e5036198.js';\nimport { g as getIonPageElement } from './index-fbafcf43.js';\nimport './helpers-2914b3be.js';\nimport './index-33ffec25.js';\nimport './index-8e692445.js';\n\nconst DURATION = 540;\nconst getClonedElement = (tagName) => {\n return document.querySelector(`${tagName}.ion-cloned-element`);\n};\nconst shadow = (el) => {\n return el.shadowRoot || el;\n};\nconst getLargeTitle = (refEl) => {\n const tabs = refEl.tagName === 'ION-TABS' ? refEl : refEl.querySelector('ion-tabs');\n const query = 'ion-content ion-header:not(.header-collapse-condense-inactive) ion-title.title-large';\n if (tabs != null) {\n const activeTab = tabs.querySelector('ion-tab:not(.tab-hidden), .ion-page:not(.ion-page-hidden)');\n return activeTab != null ? activeTab.querySelector(query) : null;\n }\n return refEl.querySelector(query);\n};\nconst getBackButton = (refEl, backDirection) => {\n const tabs = refEl.tagName === 'ION-TABS' ? refEl : refEl.querySelector('ion-tabs');\n let buttonsList = [];\n if (tabs != null) {\n const activeTab = tabs.querySelector('ion-tab:not(.tab-hidden), .ion-page:not(.ion-page-hidden)');\n if (activeTab != null) {\n buttonsList = activeTab.querySelectorAll('ion-buttons');\n }\n }\n else {\n buttonsList = refEl.querySelectorAll('ion-buttons');\n }\n for (const buttons of buttonsList) {\n const parentHeader = buttons.closest('ion-header');\n const activeHeader = parentHeader && !parentHeader.classList.contains('header-collapse-condense-inactive');\n const backButton = buttons.querySelector('ion-back-button');\n const buttonsCollapse = buttons.classList.contains('buttons-collapse');\n const startSlot = buttons.slot === 'start' || buttons.slot === '';\n if (backButton !== null && startSlot && ((buttonsCollapse && activeHeader && backDirection) || !buttonsCollapse)) {\n return backButton;\n }\n }\n return null;\n};\nconst createLargeTitleTransition = (rootAnimation, rtl, backDirection, enteringEl, leavingEl) => {\n const enteringBackButton = getBackButton(enteringEl, backDirection);\n const leavingLargeTitle = getLargeTitle(leavingEl);\n const enteringLargeTitle = getLargeTitle(enteringEl);\n const leavingBackButton = getBackButton(leavingEl, backDirection);\n const shouldAnimationForward = enteringBackButton !== null && leavingLargeTitle !== null && !backDirection;\n const shouldAnimationBackward = enteringLargeTitle !== null && leavingBackButton !== null && backDirection;\n if (shouldAnimationForward) {\n const leavingLargeTitleBox = leavingLargeTitle.getBoundingClientRect();\n const enteringBackButtonBox = enteringBackButton.getBoundingClientRect();\n animateLargeTitle(rootAnimation, rtl, backDirection, leavingLargeTitle, leavingLargeTitleBox, enteringBackButtonBox);\n animateBackButton(rootAnimation, rtl, backDirection, enteringBackButton, leavingLargeTitleBox, enteringBackButtonBox);\n }\n else if (shouldAnimationBackward) {\n const enteringLargeTitleBox = enteringLargeTitle.getBoundingClientRect();\n const leavingBackButtonBox = leavingBackButton.getBoundingClientRect();\n animateLargeTitle(rootAnimation, rtl, backDirection, enteringLargeTitle, enteringLargeTitleBox, leavingBackButtonBox);\n animateBackButton(rootAnimation, rtl, backDirection, leavingBackButton, enteringLargeTitleBox, leavingBackButtonBox);\n }\n return {\n forward: shouldAnimationForward,\n backward: shouldAnimationBackward,\n };\n};\nconst animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, largeTitleBox, backButtonBox) => {\n const BACK_BUTTON_START_OFFSET = rtl ? `calc(100% - ${backButtonBox.right + 4}px)` : `${backButtonBox.left - 4}px`;\n const START_TEXT_TRANSLATE = rtl ? '7px' : '-7px';\n const END_TEXT_TRANSLATE = rtl ? '-4px' : '4px';\n const ICON_TRANSLATE = rtl ? '-4px' : '4px';\n const TEXT_ORIGIN_X = rtl ? 'right' : 'left';\n const ICON_ORIGIN_X = rtl ? 'left' : 'right';\n const FORWARD_TEXT_KEYFRAMES = [\n {\n offset: 0,\n opacity: 0,\n transform: `translate3d(${START_TEXT_TRANSLATE}, ${largeTitleBox.top - 40}px, 0) scale(2.1)`,\n },\n { offset: 1, opacity: 1, transform: `translate3d(${END_TEXT_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },\n ];\n const BACKWARD_TEXT_KEYFRAMES = [\n { offset: 0, opacity: 1, transform: `translate3d(${END_TEXT_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },\n { offset: 0.6, opacity: 0 },\n {\n offset: 1,\n opacity: 0,\n transform: `translate3d(${START_TEXT_TRANSLATE}, ${largeTitleBox.top - 40}px, 0) scale(2.1)`,\n },\n ];\n const TEXT_KEYFRAMES = backDirection ? BACKWARD_TEXT_KEYFRAMES : FORWARD_TEXT_KEYFRAMES;\n const FORWARD_ICON_KEYFRAMES = [\n { offset: 0, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },\n { offset: 1, opacity: 1, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },\n ];\n const BACKWARD_ICON_KEYFRAMES = [\n { offset: 0, opacity: 1, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },\n { offset: 0.2, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },\n { offset: 1, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },\n ];\n const ICON_KEYFRAMES = backDirection ? BACKWARD_ICON_KEYFRAMES : FORWARD_ICON_KEYFRAMES;\n const enteringBackButtonTextAnimation = createAnimation();\n const enteringBackButtonIconAnimation = createAnimation();\n const clonedBackButtonEl = getClonedElement('ion-back-button');\n const backButtonTextEl = shadow(clonedBackButtonEl).querySelector('.button-text');\n const backButtonIconEl = shadow(clonedBackButtonEl).querySelector('ion-icon');\n clonedBackButtonEl.text = backButtonEl.text;\n clonedBackButtonEl.mode = backButtonEl.mode;\n clonedBackButtonEl.icon = backButtonEl.icon;\n clonedBackButtonEl.color = backButtonEl.color;\n clonedBackButtonEl.disabled = backButtonEl.disabled;\n clonedBackButtonEl.style.setProperty('display', 'block');\n clonedBackButtonEl.style.setProperty('position', 'fixed');\n enteringBackButtonIconAnimation.addElement(backButtonIconEl);\n enteringBackButtonTextAnimation.addElement(backButtonTextEl);\n enteringBackButtonTextAnimation\n .beforeStyles({\n 'transform-origin': `${TEXT_ORIGIN_X} center`,\n })\n .beforeAddWrite(() => {\n backButtonEl.style.setProperty('display', 'none');\n clonedBackButtonEl.style.setProperty(TEXT_ORIGIN_X, BACK_BUTTON_START_OFFSET);\n })\n .afterAddWrite(() => {\n backButtonEl.style.setProperty('display', '');\n clonedBackButtonEl.style.setProperty('display', 'none');\n clonedBackButtonEl.style.removeProperty(TEXT_ORIGIN_X);\n })\n .keyframes(TEXT_KEYFRAMES);\n enteringBackButtonIconAnimation\n .beforeStyles({\n 'transform-origin': `${ICON_ORIGIN_X} center`,\n })\n .keyframes(ICON_KEYFRAMES);\n rootAnimation.addAnimation([enteringBackButtonTextAnimation, enteringBackButtonIconAnimation]);\n};\nconst animateLargeTitle = (rootAnimation, rtl, backDirection, largeTitleEl, largeTitleBox, backButtonBox) => {\n const TITLE_START_OFFSET = rtl ? `calc(100% - ${largeTitleBox.right}px)` : `${largeTitleBox.left}px`;\n const START_TRANSLATE = rtl ? '-18px' : '18px';\n const ORIGIN_X = rtl ? 'right' : 'left';\n const BACKWARDS_KEYFRAMES = [\n { offset: 0, opacity: 0, transform: `translate3d(${START_TRANSLATE}, ${backButtonBox.top - 4}px, 0) scale(0.49)` },\n { offset: 0.1, opacity: 0 },\n { offset: 1, opacity: 1, transform: `translate3d(0, ${largeTitleBox.top - 2}px, 0) scale(1)` },\n ];\n const FORWARDS_KEYFRAMES = [\n { offset: 0, opacity: 0.99, transform: `translate3d(0, ${largeTitleBox.top - 2}px, 0) scale(1)` },\n { offset: 0.6, opacity: 0 },\n { offset: 1, opacity: 0, transform: `translate3d(${START_TRANSLATE}, ${backButtonBox.top - 4}px, 0) scale(0.5)` },\n ];\n const KEYFRAMES = backDirection ? BACKWARDS_KEYFRAMES : FORWARDS_KEYFRAMES;\n const clonedTitleEl = getClonedElement('ion-title');\n const clonedLargeTitleAnimation = createAnimation();\n clonedTitleEl.innerText = largeTitleEl.innerText;\n clonedTitleEl.size = largeTitleEl.size;\n clonedTitleEl.color = largeTitleEl.color;\n clonedLargeTitleAnimation.addElement(clonedTitleEl);\n clonedLargeTitleAnimation\n .beforeStyles({\n 'transform-origin': `${ORIGIN_X} center`,\n height: '46px',\n display: '',\n position: 'relative',\n [ORIGIN_X]: TITLE_START_OFFSET,\n })\n .beforeAddWrite(() => {\n largeTitleEl.style.setProperty('display', 'none');\n })\n .afterAddWrite(() => {\n largeTitleEl.style.setProperty('display', '');\n clonedTitleEl.style.setProperty('display', 'none');\n })\n .keyframes(KEYFRAMES);\n rootAnimation.addAnimation(clonedLargeTitleAnimation);\n};\nconst iosTransitionAnimation = (navEl, opts) => {\n var _a;\n try {\n const EASING = 'cubic-bezier(0.32,0.72,0,1)';\n const OPACITY = 'opacity';\n const TRANSFORM = 'transform';\n const CENTER = '0%';\n const OFF_OPACITY = 0.8;\n const isRTL = navEl.ownerDocument.dir === 'rtl';\n const OFF_RIGHT = isRTL ? '-99.5%' : '99.5%';\n const OFF_LEFT = isRTL ? '33%' : '-33%';\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n const backDirection = opts.direction === 'back';\n const contentEl = enteringEl.querySelector(':scope > ion-content');\n const headerEls = enteringEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *');\n const enteringToolBarEls = enteringEl.querySelectorAll(':scope > ion-header > ion-toolbar');\n const rootAnimation = createAnimation();\n const enteringContentAnimation = createAnimation();\n rootAnimation\n .addElement(enteringEl)\n .duration(((_a = opts.duration) !== null && _a !== void 0 ? _a : 0) || DURATION)\n .easing(opts.easing || EASING)\n .fill('both')\n .beforeRemoveClass('ion-page-invisible');\n if (leavingEl && navEl !== null && navEl !== undefined) {\n const navDecorAnimation = createAnimation();\n navDecorAnimation.addElement(navEl);\n rootAnimation.addAnimation(navDecorAnimation);\n }\n if (!contentEl && enteringToolBarEls.length === 0 && headerEls.length === 0) {\n enteringContentAnimation.addElement(enteringEl.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs')); // REVIEW\n }\n else {\n enteringContentAnimation.addElement(contentEl); // REVIEW\n enteringContentAnimation.addElement(headerEls);\n }\n rootAnimation.addAnimation(enteringContentAnimation);\n if (backDirection) {\n enteringContentAnimation\n .beforeClearStyles([OPACITY])\n .fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`)\n .fromTo(OPACITY, OFF_OPACITY, 1);\n }\n else {\n // entering content, forward direction\n enteringContentAnimation\n .beforeClearStyles([OPACITY])\n .fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`);\n }\n if (contentEl) {\n const enteringTransitionEffectEl = shadow(contentEl).querySelector('.transition-effect');\n if (enteringTransitionEffectEl) {\n const enteringTransitionCoverEl = enteringTransitionEffectEl.querySelector('.transition-cover');\n const enteringTransitionShadowEl = enteringTransitionEffectEl.querySelector('.transition-shadow');\n const enteringTransitionEffect = createAnimation();\n const enteringTransitionCover = createAnimation();\n const enteringTransitionShadow = createAnimation();\n enteringTransitionEffect\n .addElement(enteringTransitionEffectEl)\n .beforeStyles({ opacity: '1', display: 'block' })\n .afterStyles({ opacity: '', display: '' });\n enteringTransitionCover\n .addElement(enteringTransitionCoverEl) // REVIEW\n .beforeClearStyles([OPACITY])\n .fromTo(OPACITY, 0, 0.1);\n enteringTransitionShadow\n .addElement(enteringTransitionShadowEl) // REVIEW\n .beforeClearStyles([OPACITY])\n .fromTo(OPACITY, 0.03, 0.7);\n enteringTransitionEffect.addAnimation([enteringTransitionCover, enteringTransitionShadow]);\n enteringContentAnimation.addAnimation([enteringTransitionEffect]);\n }\n }\n const enteringContentHasLargeTitle = enteringEl.querySelector('ion-header.header-collapse-condense');\n const { forward, backward } = createLargeTitleTransition(rootAnimation, isRTL, backDirection, enteringEl, leavingEl);\n enteringToolBarEls.forEach((enteringToolBarEl) => {\n const enteringToolBar = createAnimation();\n enteringToolBar.addElement(enteringToolBarEl);\n rootAnimation.addAnimation(enteringToolBar);\n const enteringTitle = createAnimation();\n enteringTitle.addElement(enteringToolBarEl.querySelector('ion-title')); // REVIEW\n const enteringToolBarButtons = createAnimation();\n const buttons = Array.from(enteringToolBarEl.querySelectorAll('ion-buttons,[menuToggle]'));\n const parentHeader = enteringToolBarEl.closest('ion-header');\n const inactiveHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.classList.contains('header-collapse-condense-inactive');\n let buttonsToAnimate;\n if (backDirection) {\n buttonsToAnimate = buttons.filter((button) => {\n const isCollapseButton = button.classList.contains('buttons-collapse');\n return (isCollapseButton && !inactiveHeader) || !isCollapseButton;\n });\n }\n else {\n buttonsToAnimate = buttons.filter((button) => !button.classList.contains('buttons-collapse'));\n }\n enteringToolBarButtons.addElement(buttonsToAnimate);\n const enteringToolBarItems = createAnimation();\n enteringToolBarItems.addElement(enteringToolBarEl.querySelectorAll(':scope > *:not(ion-title):not(ion-buttons):not([menuToggle])'));\n const enteringToolBarBg = createAnimation();\n enteringToolBarBg.addElement(shadow(enteringToolBarEl).querySelector('.toolbar-background')); // REVIEW\n const enteringBackButton = createAnimation();\n const backButtonEl = enteringToolBarEl.querySelector('ion-back-button');\n if (backButtonEl) {\n enteringBackButton.addElement(backButtonEl);\n }\n enteringToolBar.addAnimation([\n enteringTitle,\n enteringToolBarButtons,\n enteringToolBarItems,\n enteringToolBarBg,\n enteringBackButton,\n ]);\n enteringToolBarButtons.fromTo(OPACITY, 0.01, 1);\n enteringToolBarItems.fromTo(OPACITY, 0.01, 1);\n if (backDirection) {\n if (!inactiveHeader) {\n enteringTitle\n .fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`)\n .fromTo(OPACITY, 0.01, 1);\n }\n enteringToolBarItems.fromTo('transform', `translateX(${OFF_LEFT})`, `translateX(${CENTER})`);\n // back direction, entering page has a back button\n enteringBackButton.fromTo(OPACITY, 0.01, 1);\n }\n else {\n // entering toolbar, forward direction\n if (!enteringContentHasLargeTitle) {\n enteringTitle\n .fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`)\n .fromTo(OPACITY, 0.01, 1);\n }\n enteringToolBarItems.fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`);\n enteringToolBarBg.beforeClearStyles([OPACITY, 'transform']);\n const translucentHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.translucent;\n if (!translucentHeader) {\n enteringToolBarBg.fromTo(OPACITY, 0.01, 'var(--opacity)');\n }\n else {\n enteringToolBarBg.fromTo('transform', isRTL ? 'translateX(-100%)' : 'translateX(100%)', 'translateX(0px)');\n }\n // forward direction, entering page has a back button\n if (!forward) {\n enteringBackButton.fromTo(OPACITY, 0.01, 1);\n }\n if (backButtonEl && !forward) {\n const enteringBackBtnText = createAnimation();\n enteringBackBtnText\n .addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW\n .fromTo(`transform`, isRTL ? 'translateX(-100px)' : 'translateX(100px)', 'translateX(0px)');\n enteringToolBar.addAnimation(enteringBackBtnText);\n }\n }\n });\n // setup leaving view\n if (leavingEl) {\n const leavingContent = createAnimation();\n const leavingContentEl = leavingEl.querySelector(':scope > ion-content');\n const leavingToolBarEls = leavingEl.querySelectorAll(':scope > ion-header > ion-toolbar');\n const leavingHeaderEls = leavingEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *');\n if (!leavingContentEl && leavingToolBarEls.length === 0 && leavingHeaderEls.length === 0) {\n leavingContent.addElement(leavingEl.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs')); // REVIEW\n }\n else {\n leavingContent.addElement(leavingContentEl); // REVIEW\n leavingContent.addElement(leavingHeaderEls);\n }\n rootAnimation.addAnimation(leavingContent);\n if (backDirection) {\n // leaving content, back direction\n leavingContent\n .beforeClearStyles([OPACITY])\n .fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n const leavingPage = getIonPageElement(leavingEl);\n rootAnimation.afterAddWrite(() => {\n if (rootAnimation.getDirection() === 'normal') {\n leavingPage.style.setProperty('display', 'none');\n }\n });\n }\n else {\n // leaving content, forward direction\n leavingContent\n .fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`)\n .fromTo(OPACITY, 1, OFF_OPACITY);\n }\n if (leavingContentEl) {\n const leavingTransitionEffectEl = shadow(leavingContentEl).querySelector('.transition-effect');\n if (leavingTransitionEffectEl) {\n const leavingTransitionCoverEl = leavingTransitionEffectEl.querySelector('.transition-cover');\n const leavingTransitionShadowEl = leavingTransitionEffectEl.querySelector('.transition-shadow');\n const leavingTransitionEffect = createAnimation();\n const leavingTransitionCover = createAnimation();\n const leavingTransitionShadow = createAnimation();\n leavingTransitionEffect\n .addElement(leavingTransitionEffectEl)\n .beforeStyles({ opacity: '1', display: 'block' })\n .afterStyles({ opacity: '', display: '' });\n leavingTransitionCover\n .addElement(leavingTransitionCoverEl) // REVIEW\n .beforeClearStyles([OPACITY])\n .fromTo(OPACITY, 0.1, 0);\n leavingTransitionShadow\n .addElement(leavingTransitionShadowEl) // REVIEW\n .beforeClearStyles([OPACITY])\n .fromTo(OPACITY, 0.7, 0.03);\n leavingTransitionEffect.addAnimation([leavingTransitionCover, leavingTransitionShadow]);\n leavingContent.addAnimation([leavingTransitionEffect]);\n }\n }\n leavingToolBarEls.forEach((leavingToolBarEl) => {\n const leavingToolBar = createAnimation();\n leavingToolBar.addElement(leavingToolBarEl);\n const leavingTitle = createAnimation();\n leavingTitle.addElement(leavingToolBarEl.querySelector('ion-title')); // REVIEW\n const leavingToolBarButtons = createAnimation();\n const buttons = leavingToolBarEl.querySelectorAll('ion-buttons,[menuToggle]');\n const parentHeader = leavingToolBarEl.closest('ion-header');\n const inactiveHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.classList.contains('header-collapse-condense-inactive');\n const buttonsToAnimate = Array.from(buttons).filter((button) => {\n const isCollapseButton = button.classList.contains('buttons-collapse');\n return (isCollapseButton && !inactiveHeader) || !isCollapseButton;\n });\n leavingToolBarButtons.addElement(buttonsToAnimate);\n const leavingToolBarItems = createAnimation();\n const leavingToolBarItemEls = leavingToolBarEl.querySelectorAll(':scope > *:not(ion-title):not(ion-buttons):not([menuToggle])');\n if (leavingToolBarItemEls.length > 0) {\n leavingToolBarItems.addElement(leavingToolBarItemEls);\n }\n const leavingToolBarBg = createAnimation();\n leavingToolBarBg.addElement(shadow(leavingToolBarEl).querySelector('.toolbar-background')); // REVIEW\n const leavingBackButton = createAnimation();\n const backButtonEl = leavingToolBarEl.querySelector('ion-back-button');\n if (backButtonEl) {\n leavingBackButton.addElement(backButtonEl);\n }\n leavingToolBar.addAnimation([\n leavingTitle,\n leavingToolBarButtons,\n leavingToolBarItems,\n leavingBackButton,\n leavingToolBarBg,\n ]);\n rootAnimation.addAnimation(leavingToolBar);\n // fade out leaving toolbar items\n leavingBackButton.fromTo(OPACITY, 0.99, 0);\n leavingToolBarButtons.fromTo(OPACITY, 0.99, 0);\n leavingToolBarItems.fromTo(OPACITY, 0.99, 0);\n if (backDirection) {\n if (!inactiveHeader) {\n // leaving toolbar, back direction\n leavingTitle\n .fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)')\n .fromTo(OPACITY, 0.99, 0);\n }\n leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n leavingToolBarBg.beforeClearStyles([OPACITY, 'transform']);\n // leaving toolbar, back direction, and there's no entering toolbar\n // should just slide out, no fading out\n const translucentHeader = parentHeader === null || parentHeader === void 0 ? void 0 : parentHeader.translucent;\n if (!translucentHeader) {\n leavingToolBarBg.fromTo(OPACITY, 'var(--opacity)', 0);\n }\n else {\n leavingToolBarBg.fromTo('transform', 'translateX(0px)', isRTL ? 'translateX(-100%)' : 'translateX(100%)');\n }\n if (backButtonEl && !backward) {\n const leavingBackBtnText = createAnimation();\n leavingBackBtnText\n .addElement(shadow(backButtonEl).querySelector('.button-text')) // REVIEW\n .fromTo('transform', `translateX(${CENTER})`, `translateX(${(isRTL ? -124 : 124) + 'px'})`);\n leavingToolBar.addAnimation(leavingBackBtnText);\n }\n }\n else {\n // leaving toolbar, forward direction\n if (!inactiveHeader) {\n leavingTitle\n .fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`)\n .fromTo(OPACITY, 0.99, 0)\n .afterClearStyles([TRANSFORM, OPACITY]);\n }\n leavingToolBarItems\n .fromTo('transform', `translateX(${CENTER})`, `translateX(${OFF_LEFT})`)\n .afterClearStyles([TRANSFORM, OPACITY]);\n leavingBackButton.afterClearStyles([OPACITY]);\n leavingTitle.afterClearStyles([OPACITY]);\n leavingToolBarButtons.afterClearStyles([OPACITY]);\n }\n });\n }\n return rootAnimation;\n }\n catch (err) {\n throw err;\n }\n};\n\nexport { iosTransitionAnimation, shadow };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { p as promiseResolve, b as bootstrapLazy } from './index-8e692445.js';\nimport { g as globalScripts } from './app-globals-275fb4c9.js';\nimport './ionic-global-c95cf239.js';\n\n/*\n Stencil Client Patch Esm v2.18.0 | MIT Licensed | https://stenciljs.com\n */\nconst patchEsm = () => {\n return promiseResolve();\n};\n\nconst defineCustomElements = (win, options) => {\n if (typeof window === 'undefined') return Promise.resolve();\n return patchEsm().then(() => {\n globalScripts();\n return bootstrapLazy(JSON.parse(\"[[\\\"ion-menu_3\\\",[[33,\\\"ion-menu-button\\\",{\\\"color\\\":[513],\\\"disabled\\\":[4],\\\"menu\\\":[1],\\\"autoHide\\\":[4,\\\"auto-hide\\\"],\\\"type\\\":[1],\\\"visible\\\":[32]},[[16,\\\"ionMenuChange\\\",\\\"visibilityChanged\\\"],[16,\\\"ionSplitPaneVisible\\\",\\\"visibilityChanged\\\"]]],[33,\\\"ion-menu\\\",{\\\"contentId\\\":[513,\\\"content-id\\\"],\\\"menuId\\\":[513,\\\"menu-id\\\"],\\\"type\\\":[1025],\\\"disabled\\\":[1028],\\\"side\\\":[513],\\\"swipeGesture\\\":[4,\\\"swipe-gesture\\\"],\\\"maxEdgeStart\\\":[2,\\\"max-edge-start\\\"],\\\"isPaneVisible\\\":[32],\\\"isEndSide\\\":[32],\\\"isOpen\\\":[64],\\\"isActive\\\":[64],\\\"open\\\":[64],\\\"close\\\":[64],\\\"toggle\\\":[64],\\\"setOpen\\\":[64]},[[16,\\\"ionSplitPaneVisible\\\",\\\"onSplitPaneChanged\\\"],[2,\\\"click\\\",\\\"onBackdropClick\\\"],[0,\\\"keydown\\\",\\\"onKeydown\\\"]]],[1,\\\"ion-menu-toggle\\\",{\\\"menu\\\":[1],\\\"autoHide\\\":[4,\\\"auto-hide\\\"],\\\"visible\\\":[32]},[[16,\\\"ionMenuChange\\\",\\\"visibilityChanged\\\"],[16,\\\"ionSplitPaneVisible\\\",\\\"visibilityChanged\\\"]]]]],[\\\"ion-fab_3\\\",[[33,\\\"ion-fab-button\\\",{\\\"color\\\":[513],\\\"activated\\\":[4],\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16],\\\"target\\\":[1],\\\"show\\\":[4],\\\"translucent\\\":[4],\\\"type\\\":[1],\\\"size\\\":[1],\\\"closeIcon\\\":[1,\\\"close-icon\\\"]}],[1,\\\"ion-fab\\\",{\\\"horizontal\\\":[1],\\\"vertical\\\":[1],\\\"edge\\\":[4],\\\"activated\\\":[1028],\\\"close\\\":[64],\\\"toggle\\\":[64]}],[1,\\\"ion-fab-list\\\",{\\\"activated\\\":[4],\\\"side\\\":[1]}]]],[\\\"ion-refresher_2\\\",[[0,\\\"ion-refresher-content\\\",{\\\"pullingIcon\\\":[1025,\\\"pulling-icon\\\"],\\\"pullingText\\\":[1,\\\"pulling-text\\\"],\\\"refreshingSpinner\\\":[1025,\\\"refreshing-spinner\\\"],\\\"refreshingText\\\":[1,\\\"refreshing-text\\\"]}],[32,\\\"ion-refresher\\\",{\\\"pullMin\\\":[2,\\\"pull-min\\\"],\\\"pullMax\\\":[2,\\\"pull-max\\\"],\\\"closeDuration\\\":[1,\\\"close-duration\\\"],\\\"snapbackDuration\\\":[1,\\\"snapback-duration\\\"],\\\"pullFactor\\\":[2,\\\"pull-factor\\\"],\\\"disabled\\\":[4],\\\"nativeRefresher\\\":[32],\\\"state\\\":[32],\\\"complete\\\":[64],\\\"cancel\\\":[64],\\\"getProgress\\\":[64]}]]],[\\\"ion-back-button\\\",[[33,\\\"ion-back-button\\\",{\\\"color\\\":[513],\\\"defaultHref\\\":[1025,\\\"default-href\\\"],\\\"disabled\\\":[516],\\\"icon\\\":[1],\\\"text\\\":[1],\\\"type\\\":[1],\\\"routerAnimation\\\":[16]}]]],[\\\"ion-toast\\\",[[33,\\\"ion-toast\\\",{\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"color\\\":[513],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"duration\\\":[2],\\\"header\\\":[1],\\\"message\\\":[1],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"position\\\":[1],\\\"buttons\\\":[16],\\\"translucent\\\":[4],\\\"animated\\\":[4],\\\"icon\\\":[1],\\\"htmlAttributes\\\":[16],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64]}]]],[\\\"ion-card_5\\\",[[33,\\\"ion-card\\\",{\\\"color\\\":[513],\\\"button\\\":[4],\\\"type\\\":[1],\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16],\\\"target\\\":[1]}],[32,\\\"ion-card-content\\\"],[33,\\\"ion-card-header\\\",{\\\"color\\\":[513],\\\"translucent\\\":[4]}],[33,\\\"ion-card-subtitle\\\",{\\\"color\\\":[513]}],[33,\\\"ion-card-title\\\",{\\\"color\\\":[513]}]]],[\\\"ion-item-option_3\\\",[[33,\\\"ion-item-option\\\",{\\\"color\\\":[513],\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"expandable\\\":[4],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"target\\\":[1],\\\"type\\\":[1]}],[32,\\\"ion-item-options\\\",{\\\"side\\\":[1],\\\"fireSwipeEvent\\\":[64]}],[0,\\\"ion-item-sliding\\\",{\\\"disabled\\\":[4],\\\"state\\\":[32],\\\"getOpenAmount\\\":[64],\\\"getSlidingRatio\\\":[64],\\\"open\\\":[64],\\\"close\\\":[64],\\\"closeOpened\\\":[64]}]]],[\\\"ion-accordion_2\\\",[[49,\\\"ion-accordion\\\",{\\\"value\\\":[1],\\\"disabled\\\":[4],\\\"readonly\\\":[4],\\\"toggleIcon\\\":[1,\\\"toggle-icon\\\"],\\\"toggleIconSlot\\\":[1,\\\"toggle-icon-slot\\\"],\\\"state\\\":[32],\\\"isNext\\\":[32],\\\"isPrevious\\\":[32]}],[33,\\\"ion-accordion-group\\\",{\\\"animated\\\":[4],\\\"multiple\\\":[4],\\\"value\\\":[1025],\\\"disabled\\\":[4],\\\"readonly\\\":[4],\\\"expand\\\":[1],\\\"requestAccordionToggle\\\":[64],\\\"getAccordions\\\":[64]},[[0,\\\"keydown\\\",\\\"onKeydown\\\"]]]]],[\\\"ion-breadcrumb_2\\\",[[33,\\\"ion-breadcrumb\\\",{\\\"collapsed\\\":[4],\\\"last\\\":[4],\\\"showCollapsedIndicator\\\":[4,\\\"show-collapsed-indicator\\\"],\\\"color\\\":[1],\\\"active\\\":[4],\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"separator\\\":[4],\\\"target\\\":[1],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16]}],[33,\\\"ion-breadcrumbs\\\",{\\\"color\\\":[1],\\\"maxItems\\\":[2,\\\"max-items\\\"],\\\"itemsBeforeCollapse\\\":[2,\\\"items-before-collapse\\\"],\\\"itemsAfterCollapse\\\":[2,\\\"items-after-collapse\\\"],\\\"collapsed\\\":[32],\\\"activeChanged\\\":[32]},[[0,\\\"collapsedClick\\\",\\\"onCollapsedClick\\\"]]]]],[\\\"ion-infinite-scroll_2\\\",[[32,\\\"ion-infinite-scroll-content\\\",{\\\"loadingSpinner\\\":[1025,\\\"loading-spinner\\\"],\\\"loadingText\\\":[1,\\\"loading-text\\\"]}],[0,\\\"ion-infinite-scroll\\\",{\\\"threshold\\\":[1],\\\"disabled\\\":[4],\\\"position\\\":[1],\\\"isLoading\\\":[32],\\\"complete\\\":[64]}]]],[\\\"ion-reorder_2\\\",[[33,\\\"ion-reorder\\\",null,[[2,\\\"click\\\",\\\"onClick\\\"]]],[0,\\\"ion-reorder-group\\\",{\\\"disabled\\\":[4],\\\"state\\\":[32],\\\"complete\\\":[64]}]]],[\\\"ion-segment_2\\\",[[33,\\\"ion-segment-button\\\",{\\\"disabled\\\":[4],\\\"layout\\\":[1],\\\"type\\\":[1],\\\"value\\\":[1],\\\"checked\\\":[32]}],[33,\\\"ion-segment\\\",{\\\"color\\\":[513],\\\"disabled\\\":[4],\\\"scrollable\\\":[4],\\\"swipeGesture\\\":[4,\\\"swipe-gesture\\\"],\\\"value\\\":[1025],\\\"selectOnFocus\\\":[4,\\\"select-on-focus\\\"],\\\"activated\\\":[32]},[[0,\\\"keydown\\\",\\\"onKeyDown\\\"]]]]],[\\\"ion-tab-bar_2\\\",[[33,\\\"ion-tab-button\\\",{\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"layout\\\":[1025],\\\"selected\\\":[1028],\\\"tab\\\":[1],\\\"target\\\":[1]},[[8,\\\"ionTabBarChanged\\\",\\\"onTabBarChanged\\\"]]],[33,\\\"ion-tab-bar\\\",{\\\"color\\\":[513],\\\"selectedTab\\\":[1,\\\"selected-tab\\\"],\\\"translucent\\\":[4],\\\"keyboardVisible\\\":[32]}]]],[\\\"ion-chip\\\",[[1,\\\"ion-chip\\\",{\\\"color\\\":[513],\\\"outline\\\":[4],\\\"disabled\\\":[4]}]]],[\\\"ion-datetime-button\\\",[[33,\\\"ion-datetime-button\\\",{\\\"color\\\":[513],\\\"disabled\\\":[516],\\\"datetime\\\":[1],\\\"datetimePresentation\\\":[32],\\\"dateText\\\":[32],\\\"timeText\\\":[32],\\\"datetimeActive\\\":[32],\\\"selectedButton\\\":[32]}]]],[\\\"ion-searchbar\\\",[[34,\\\"ion-searchbar\\\",{\\\"color\\\":[513],\\\"animated\\\":[4],\\\"autocomplete\\\":[1],\\\"autocorrect\\\":[1],\\\"cancelButtonIcon\\\":[1,\\\"cancel-button-icon\\\"],\\\"cancelButtonText\\\":[1,\\\"cancel-button-text\\\"],\\\"clearIcon\\\":[1,\\\"clear-icon\\\"],\\\"debounce\\\":[2],\\\"disabled\\\":[4],\\\"inputmode\\\":[1],\\\"enterkeyhint\\\":[1],\\\"placeholder\\\":[1],\\\"searchIcon\\\":[1,\\\"search-icon\\\"],\\\"showCancelButton\\\":[1,\\\"show-cancel-button\\\"],\\\"showClearButton\\\":[1,\\\"show-clear-button\\\"],\\\"spellcheck\\\":[4],\\\"type\\\":[1],\\\"value\\\":[1025],\\\"focused\\\":[32],\\\"noAnimate\\\":[32],\\\"setFocus\\\":[64],\\\"getInputElement\\\":[64]}]]],[\\\"ion-toggle\\\",[[33,\\\"ion-toggle\\\",{\\\"color\\\":[513],\\\"name\\\":[1],\\\"checked\\\":[1028],\\\"disabled\\\":[4],\\\"value\\\":[1],\\\"enableOnOffLabels\\\":[4,\\\"enable-on-off-labels\\\"],\\\"activated\\\":[32]}]]],[\\\"ion-nav_2\\\",[[1,\\\"ion-nav\\\",{\\\"delegate\\\":[16],\\\"swipeGesture\\\":[1028,\\\"swipe-gesture\\\"],\\\"animated\\\":[4],\\\"animation\\\":[16],\\\"rootParams\\\":[16],\\\"root\\\":[1],\\\"push\\\":[64],\\\"insert\\\":[64],\\\"insertPages\\\":[64],\\\"pop\\\":[64],\\\"popTo\\\":[64],\\\"popToRoot\\\":[64],\\\"removeIndex\\\":[64],\\\"setRoot\\\":[64],\\\"setPages\\\":[64],\\\"setRouteId\\\":[64],\\\"getRouteId\\\":[64],\\\"getActive\\\":[64],\\\"getByIndex\\\":[64],\\\"canGoBack\\\":[64],\\\"getPrevious\\\":[64]}],[0,\\\"ion-nav-link\\\",{\\\"component\\\":[1],\\\"componentProps\\\":[16],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16]}]]],[\\\"ion-input\\\",[[34,\\\"ion-input\\\",{\\\"fireFocusEvents\\\":[4,\\\"fire-focus-events\\\"],\\\"color\\\":[513],\\\"accept\\\":[1],\\\"autocapitalize\\\":[1],\\\"autocomplete\\\":[1],\\\"autocorrect\\\":[1],\\\"autofocus\\\":[4],\\\"clearInput\\\":[4,\\\"clear-input\\\"],\\\"clearOnEdit\\\":[4,\\\"clear-on-edit\\\"],\\\"debounce\\\":[2],\\\"disabled\\\":[4],\\\"enterkeyhint\\\":[1],\\\"inputmode\\\":[1],\\\"max\\\":[8],\\\"maxlength\\\":[2],\\\"min\\\":[8],\\\"minlength\\\":[2],\\\"multiple\\\":[4],\\\"name\\\":[1],\\\"pattern\\\":[1],\\\"placeholder\\\":[1],\\\"readonly\\\":[4],\\\"required\\\":[4],\\\"spellcheck\\\":[4],\\\"step\\\":[1],\\\"size\\\":[2],\\\"type\\\":[1],\\\"value\\\":[1032],\\\"hasFocus\\\":[32],\\\"setFocus\\\":[64],\\\"setBlur\\\":[64],\\\"getInputElement\\\":[64]}]]],[\\\"ion-textarea\\\",[[34,\\\"ion-textarea\\\",{\\\"fireFocusEvents\\\":[4,\\\"fire-focus-events\\\"],\\\"color\\\":[513],\\\"autocapitalize\\\":[1],\\\"autofocus\\\":[4],\\\"clearOnEdit\\\":[1028,\\\"clear-on-edit\\\"],\\\"debounce\\\":[2],\\\"disabled\\\":[4],\\\"inputmode\\\":[1],\\\"enterkeyhint\\\":[1],\\\"maxlength\\\":[2],\\\"minlength\\\":[2],\\\"name\\\":[1],\\\"placeholder\\\":[1],\\\"readonly\\\":[4],\\\"required\\\":[4],\\\"spellcheck\\\":[4],\\\"cols\\\":[2],\\\"rows\\\":[2],\\\"wrap\\\":[1],\\\"autoGrow\\\":[516,\\\"auto-grow\\\"],\\\"value\\\":[1025],\\\"hasFocus\\\":[32],\\\"setFocus\\\":[64],\\\"setBlur\\\":[64],\\\"getInputElement\\\":[64]}]]],[\\\"ion-backdrop\\\",[[33,\\\"ion-backdrop\\\",{\\\"visible\\\":[4],\\\"tappable\\\":[4],\\\"stopPropagation\\\":[4,\\\"stop-propagation\\\"]},[[2,\\\"click\\\",\\\"onMouseDown\\\"]]]]],[\\\"ion-loading\\\",[[34,\\\"ion-loading\\\",{\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"message\\\":[1],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"duration\\\":[2],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"showBackdrop\\\":[4,\\\"show-backdrop\\\"],\\\"spinner\\\":[1025],\\\"translucent\\\":[4],\\\"animated\\\":[4],\\\"htmlAttributes\\\":[16],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64]}]]],[\\\"ion-modal\\\",[[33,\\\"ion-modal\\\",{\\\"hasController\\\":[4,\\\"has-controller\\\"],\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"delegate\\\":[16],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"breakpoints\\\":[16],\\\"initialBreakpoint\\\":[2,\\\"initial-breakpoint\\\"],\\\"backdropBreakpoint\\\":[2,\\\"backdrop-breakpoint\\\"],\\\"handle\\\":[4],\\\"handleBehavior\\\":[1,\\\"handle-behavior\\\"],\\\"component\\\":[1],\\\"componentProps\\\":[16],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"showBackdrop\\\":[4,\\\"show-backdrop\\\"],\\\"animated\\\":[4],\\\"swipeToClose\\\":[4,\\\"swipe-to-close\\\"],\\\"presentingElement\\\":[16],\\\"htmlAttributes\\\":[16],\\\"isOpen\\\":[4,\\\"is-open\\\"],\\\"trigger\\\":[1],\\\"keepContentsMounted\\\":[4,\\\"keep-contents-mounted\\\"],\\\"canDismiss\\\":[4,\\\"can-dismiss\\\"],\\\"presented\\\":[32],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64],\\\"setCurrentBreakpoint\\\":[64],\\\"getCurrentBreakpoint\\\":[64]}]]],[\\\"ion-route_4\\\",[[0,\\\"ion-route\\\",{\\\"url\\\":[1],\\\"component\\\":[1],\\\"componentProps\\\":[16],\\\"beforeLeave\\\":[16],\\\"beforeEnter\\\":[16]}],[0,\\\"ion-route-redirect\\\",{\\\"from\\\":[1],\\\"to\\\":[1]}],[0,\\\"ion-router\\\",{\\\"root\\\":[1],\\\"useHash\\\":[4,\\\"use-hash\\\"],\\\"canTransition\\\":[64],\\\"push\\\":[64],\\\"back\\\":[64],\\\"printDebug\\\":[64],\\\"navChanged\\\":[64]},[[8,\\\"popstate\\\",\\\"onPopState\\\"],[4,\\\"ionBackButton\\\",\\\"onBackButton\\\"]]],[1,\\\"ion-router-link\\\",{\\\"color\\\":[513],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16],\\\"target\\\":[1]}]]],[\\\"ion-avatar_3\\\",[[33,\\\"ion-avatar\\\"],[33,\\\"ion-badge\\\",{\\\"color\\\":[513]}],[1,\\\"ion-thumbnail\\\"]]],[\\\"ion-col_3\\\",[[1,\\\"ion-col\\\",{\\\"offset\\\":[1],\\\"offsetXs\\\":[1,\\\"offset-xs\\\"],\\\"offsetSm\\\":[1,\\\"offset-sm\\\"],\\\"offsetMd\\\":[1,\\\"offset-md\\\"],\\\"offsetLg\\\":[1,\\\"offset-lg\\\"],\\\"offsetXl\\\":[1,\\\"offset-xl\\\"],\\\"pull\\\":[1],\\\"pullXs\\\":[1,\\\"pull-xs\\\"],\\\"pullSm\\\":[1,\\\"pull-sm\\\"],\\\"pullMd\\\":[1,\\\"pull-md\\\"],\\\"pullLg\\\":[1,\\\"pull-lg\\\"],\\\"pullXl\\\":[1,\\\"pull-xl\\\"],\\\"push\\\":[1],\\\"pushXs\\\":[1,\\\"push-xs\\\"],\\\"pushSm\\\":[1,\\\"push-sm\\\"],\\\"pushMd\\\":[1,\\\"push-md\\\"],\\\"pushLg\\\":[1,\\\"push-lg\\\"],\\\"pushXl\\\":[1,\\\"push-xl\\\"],\\\"size\\\":[1],\\\"sizeXs\\\":[1,\\\"size-xs\\\"],\\\"sizeSm\\\":[1,\\\"size-sm\\\"],\\\"sizeMd\\\":[1,\\\"size-md\\\"],\\\"sizeLg\\\":[1,\\\"size-lg\\\"],\\\"sizeXl\\\":[1,\\\"size-xl\\\"]},[[9,\\\"resize\\\",\\\"onResize\\\"]]],[1,\\\"ion-grid\\\",{\\\"fixed\\\":[4]}],[1,\\\"ion-row\\\"]]],[\\\"ion-slide_2\\\",[[0,\\\"ion-slide\\\"],[36,\\\"ion-slides\\\",{\\\"options\\\":[8],\\\"pager\\\":[4],\\\"scrollbar\\\":[4],\\\"update\\\":[64],\\\"updateAutoHeight\\\":[64],\\\"slideTo\\\":[64],\\\"slideNext\\\":[64],\\\"slidePrev\\\":[64],\\\"getActiveIndex\\\":[64],\\\"getPreviousIndex\\\":[64],\\\"length\\\":[64],\\\"isEnd\\\":[64],\\\"isBeginning\\\":[64],\\\"startAutoplay\\\":[64],\\\"stopAutoplay\\\":[64],\\\"lockSwipeToNext\\\":[64],\\\"lockSwipeToPrev\\\":[64],\\\"lockSwipes\\\":[64],\\\"getSwiper\\\":[64]}]]],[\\\"ion-tab_2\\\",[[1,\\\"ion-tab\\\",{\\\"active\\\":[1028],\\\"delegate\\\":[16],\\\"tab\\\":[1],\\\"component\\\":[1],\\\"setActive\\\":[64]}],[1,\\\"ion-tabs\\\",{\\\"useRouter\\\":[1028,\\\"use-router\\\"],\\\"selectedTab\\\":[32],\\\"select\\\":[64],\\\"getTab\\\":[64],\\\"getSelected\\\":[64],\\\"setRouteId\\\":[64],\\\"getRouteId\\\":[64]}]]],[\\\"ion-img\\\",[[1,\\\"ion-img\\\",{\\\"alt\\\":[1],\\\"src\\\":[1],\\\"loadSrc\\\":[32],\\\"loadError\\\":[32]}]]],[\\\"ion-progress-bar\\\",[[33,\\\"ion-progress-bar\\\",{\\\"type\\\":[1],\\\"reversed\\\":[4],\\\"value\\\":[2],\\\"buffer\\\":[2],\\\"color\\\":[513]}]]],[\\\"ion-range\\\",[[33,\\\"ion-range\\\",{\\\"color\\\":[513],\\\"debounce\\\":[2],\\\"name\\\":[1],\\\"dualKnobs\\\":[4,\\\"dual-knobs\\\"],\\\"min\\\":[2],\\\"max\\\":[2],\\\"pin\\\":[4],\\\"pinFormatter\\\":[16],\\\"snaps\\\":[4],\\\"step\\\":[2],\\\"ticks\\\":[4],\\\"activeBarStart\\\":[1026,\\\"active-bar-start\\\"],\\\"disabled\\\":[4],\\\"value\\\":[1026],\\\"ratioA\\\":[32],\\\"ratioB\\\":[32],\\\"pressedKnob\\\":[32]}]]],[\\\"ion-split-pane\\\",[[33,\\\"ion-split-pane\\\",{\\\"contentId\\\":[513,\\\"content-id\\\"],\\\"disabled\\\":[4],\\\"when\\\":[8],\\\"visible\\\":[32]}]]],[\\\"ion-text\\\",[[1,\\\"ion-text\\\",{\\\"color\\\":[513]}]]],[\\\"ion-virtual-scroll\\\",[[0,\\\"ion-virtual-scroll\\\",{\\\"approxItemHeight\\\":[2,\\\"approx-item-height\\\"],\\\"approxHeaderHeight\\\":[2,\\\"approx-header-height\\\"],\\\"approxFooterHeight\\\":[2,\\\"approx-footer-height\\\"],\\\"headerFn\\\":[16],\\\"footerFn\\\":[16],\\\"items\\\":[16],\\\"itemHeight\\\":[16],\\\"headerHeight\\\":[16],\\\"footerHeight\\\":[16],\\\"renderItem\\\":[16],\\\"renderHeader\\\":[16],\\\"renderFooter\\\":[16],\\\"nodeRender\\\":[16],\\\"domRender\\\":[16],\\\"totalHeight\\\":[32],\\\"positionForItem\\\":[64],\\\"checkRange\\\":[64],\\\"checkEnd\\\":[64]},[[9,\\\"resize\\\",\\\"onResize\\\"]]]]],[\\\"ion-picker-column-internal\\\",[[33,\\\"ion-picker-column-internal\\\",{\\\"items\\\":[16],\\\"value\\\":[1032],\\\"color\\\":[513],\\\"numericInput\\\":[4,\\\"numeric-input\\\"],\\\"isActive\\\":[32],\\\"scrollActiveItemIntoView\\\":[64],\\\"setValue\\\":[64]}]]],[\\\"ion-picker-internal\\\",[[33,\\\"ion-picker-internal\\\",null,[[1,\\\"touchstart\\\",\\\"preventTouchStartPropagation\\\"]]]]],[\\\"ion-radio_2\\\",[[33,\\\"ion-radio\\\",{\\\"color\\\":[513],\\\"name\\\":[1],\\\"disabled\\\":[4],\\\"value\\\":[8],\\\"checked\\\":[32],\\\"buttonTabindex\\\":[32],\\\"setFocus\\\":[64],\\\"setButtonTabindex\\\":[64]}],[0,\\\"ion-radio-group\\\",{\\\"allowEmptySelection\\\":[4,\\\"allow-empty-selection\\\"],\\\"name\\\":[1],\\\"value\\\":[1032]},[[4,\\\"keydown\\\",\\\"onKeydown\\\"]]]]],[\\\"ion-ripple-effect\\\",[[1,\\\"ion-ripple-effect\\\",{\\\"type\\\":[1],\\\"addRipple\\\":[64]}]]],[\\\"ion-button_2\\\",[[33,\\\"ion-button\\\",{\\\"color\\\":[513],\\\"buttonType\\\":[1025,\\\"button-type\\\"],\\\"disabled\\\":[516],\\\"expand\\\":[513],\\\"fill\\\":[1537],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"routerAnimation\\\":[16],\\\"download\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"shape\\\":[513],\\\"size\\\":[513],\\\"strong\\\":[4],\\\"target\\\":[1],\\\"type\\\":[1],\\\"form\\\":[1]}],[1,\\\"ion-icon\\\",{\\\"mode\\\":[1025],\\\"color\\\":[1],\\\"ios\\\":[1],\\\"md\\\":[1],\\\"flipRtl\\\":[4,\\\"flip-rtl\\\"],\\\"name\\\":[513],\\\"src\\\":[1],\\\"icon\\\":[8],\\\"size\\\":[1],\\\"lazy\\\":[4],\\\"sanitize\\\":[4],\\\"svgContent\\\":[32],\\\"isVisible\\\":[32],\\\"ariaLabel\\\":[32]}]]],[\\\"ion-datetime_3\\\",[[33,\\\"ion-datetime\\\",{\\\"color\\\":[1],\\\"name\\\":[1],\\\"disabled\\\":[4],\\\"readonly\\\":[4],\\\"isDateEnabled\\\":[16],\\\"min\\\":[1025],\\\"max\\\":[1025],\\\"presentation\\\":[1],\\\"cancelText\\\":[1,\\\"cancel-text\\\"],\\\"doneText\\\":[1,\\\"done-text\\\"],\\\"clearText\\\":[1,\\\"clear-text\\\"],\\\"yearValues\\\":[8,\\\"year-values\\\"],\\\"monthValues\\\":[8,\\\"month-values\\\"],\\\"dayValues\\\":[8,\\\"day-values\\\"],\\\"hourValues\\\":[8,\\\"hour-values\\\"],\\\"minuteValues\\\":[8,\\\"minute-values\\\"],\\\"locale\\\":[1],\\\"firstDayOfWeek\\\":[2,\\\"first-day-of-week\\\"],\\\"titleSelectedDatesFormatter\\\":[16],\\\"multiple\\\":[4],\\\"value\\\":[1025],\\\"showDefaultTitle\\\":[4,\\\"show-default-title\\\"],\\\"showDefaultButtons\\\":[4,\\\"show-default-buttons\\\"],\\\"showClearButton\\\":[4,\\\"show-clear-button\\\"],\\\"showDefaultTimeLabel\\\":[4,\\\"show-default-time-label\\\"],\\\"hourCycle\\\":[1,\\\"hour-cycle\\\"],\\\"size\\\":[1],\\\"preferWheel\\\":[4,\\\"prefer-wheel\\\"],\\\"showMonthAndYear\\\":[32],\\\"activeParts\\\":[32],\\\"workingParts\\\":[32],\\\"isPresented\\\":[32],\\\"isTimePopoverOpen\\\":[32],\\\"confirm\\\":[64],\\\"reset\\\":[64],\\\"cancel\\\":[64]}],[34,\\\"ion-picker\\\",{\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"buttons\\\":[16],\\\"columns\\\":[16],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"duration\\\":[2],\\\"showBackdrop\\\":[4,\\\"show-backdrop\\\"],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"animated\\\":[4],\\\"htmlAttributes\\\":[16],\\\"presented\\\":[32],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64],\\\"getColumn\\\":[64]}],[32,\\\"ion-picker-column\\\",{\\\"col\\\":[16]}]]],[\\\"ion-action-sheet\\\",[[34,\\\"ion-action-sheet\\\",{\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"buttons\\\":[16],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"header\\\":[1],\\\"subHeader\\\":[1,\\\"sub-header\\\"],\\\"translucent\\\":[4],\\\"animated\\\":[4],\\\"htmlAttributes\\\":[16],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64]}]]],[\\\"ion-alert\\\",[[34,\\\"ion-alert\\\",{\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"header\\\":[1],\\\"subHeader\\\":[1,\\\"sub-header\\\"],\\\"message\\\":[1],\\\"buttons\\\":[16],\\\"inputs\\\":[1040],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"translucent\\\":[4],\\\"animated\\\":[4],\\\"htmlAttributes\\\":[16],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64]},[[4,\\\"keydown\\\",\\\"onKeydown\\\"]]]]],[\\\"ion-popover\\\",[[33,\\\"ion-popover\\\",{\\\"hasController\\\":[4,\\\"has-controller\\\"],\\\"delegate\\\":[16],\\\"overlayIndex\\\":[2,\\\"overlay-index\\\"],\\\"enterAnimation\\\":[16],\\\"leaveAnimation\\\":[16],\\\"component\\\":[1],\\\"componentProps\\\":[16],\\\"keyboardClose\\\":[4,\\\"keyboard-close\\\"],\\\"cssClass\\\":[1,\\\"css-class\\\"],\\\"backdropDismiss\\\":[4,\\\"backdrop-dismiss\\\"],\\\"event\\\":[8],\\\"showBackdrop\\\":[4,\\\"show-backdrop\\\"],\\\"translucent\\\":[4],\\\"animated\\\":[4],\\\"htmlAttributes\\\":[16],\\\"triggerAction\\\":[1,\\\"trigger-action\\\"],\\\"trigger\\\":[1],\\\"size\\\":[1],\\\"dismissOnSelect\\\":[4,\\\"dismiss-on-select\\\"],\\\"reference\\\":[1],\\\"side\\\":[1],\\\"alignment\\\":[1025],\\\"arrow\\\":[4],\\\"isOpen\\\":[4,\\\"is-open\\\"],\\\"keyboardEvents\\\":[4,\\\"keyboard-events\\\"],\\\"keepContentsMounted\\\":[4,\\\"keep-contents-mounted\\\"],\\\"presented\\\":[32],\\\"presentFromTrigger\\\":[64],\\\"present\\\":[64],\\\"dismiss\\\":[64],\\\"getParentPopover\\\":[64],\\\"onDidDismiss\\\":[64],\\\"onWillDismiss\\\":[64]}]]],[\\\"ion-checkbox\\\",[[33,\\\"ion-checkbox\\\",{\\\"color\\\":[513],\\\"name\\\":[1],\\\"checked\\\":[1028],\\\"indeterminate\\\":[1028],\\\"disabled\\\":[4],\\\"value\\\":[8]}]]],[\\\"ion-select_3\\\",[[33,\\\"ion-select\\\",{\\\"disabled\\\":[4],\\\"cancelText\\\":[1,\\\"cancel-text\\\"],\\\"okText\\\":[1,\\\"ok-text\\\"],\\\"placeholder\\\":[1],\\\"name\\\":[1],\\\"selectedText\\\":[1,\\\"selected-text\\\"],\\\"multiple\\\":[4],\\\"interface\\\":[1],\\\"interfaceOptions\\\":[8,\\\"interface-options\\\"],\\\"compareWith\\\":[1,\\\"compare-with\\\"],\\\"value\\\":[1032],\\\"isExpanded\\\":[32],\\\"open\\\":[64]}],[1,\\\"ion-select-option\\\",{\\\"disabled\\\":[4],\\\"value\\\":[8]}],[34,\\\"ion-select-popover\\\",{\\\"header\\\":[1],\\\"subHeader\\\":[1,\\\"sub-header\\\"],\\\"message\\\":[1],\\\"multiple\\\":[4],\\\"options\\\":[16]},[[0,\\\"ionChange\\\",\\\"onSelect\\\"]]]]],[\\\"ion-app_8\\\",[[0,\\\"ion-app\\\",{\\\"setFocus\\\":[64]}],[1,\\\"ion-content\\\",{\\\"color\\\":[513],\\\"fullscreen\\\":[4],\\\"forceOverscroll\\\":[1028,\\\"force-overscroll\\\"],\\\"scrollX\\\":[4,\\\"scroll-x\\\"],\\\"scrollY\\\":[4,\\\"scroll-y\\\"],\\\"scrollEvents\\\":[4,\\\"scroll-events\\\"],\\\"getScrollElement\\\":[64],\\\"getBackgroundElement\\\":[64],\\\"scrollToTop\\\":[64],\\\"scrollToBottom\\\":[64],\\\"scrollByPoint\\\":[64],\\\"scrollToPoint\\\":[64]},[[8,\\\"appload\\\",\\\"onAppLoad\\\"]]],[36,\\\"ion-footer\\\",{\\\"collapse\\\":[1],\\\"translucent\\\":[4],\\\"keyboardVisible\\\":[32]}],[36,\\\"ion-header\\\",{\\\"collapse\\\":[1],\\\"translucent\\\":[4]}],[1,\\\"ion-router-outlet\\\",{\\\"mode\\\":[1025],\\\"delegate\\\":[16],\\\"animated\\\":[4],\\\"animation\\\":[16],\\\"swipeHandler\\\":[16],\\\"commit\\\":[64],\\\"setRouteId\\\":[64],\\\"getRouteId\\\":[64]}],[33,\\\"ion-title\\\",{\\\"color\\\":[513],\\\"size\\\":[1]}],[33,\\\"ion-toolbar\\\",{\\\"color\\\":[513]},[[0,\\\"ionStyle\\\",\\\"childrenStyle\\\"]]],[34,\\\"ion-buttons\\\",{\\\"collapse\\\":[4]}]]],[\\\"ion-spinner\\\",[[1,\\\"ion-spinner\\\",{\\\"color\\\":[513],\\\"duration\\\":[2],\\\"name\\\":[1],\\\"paused\\\":[4]}]]],[\\\"ion-item_8\\\",[[33,\\\"ion-item-divider\\\",{\\\"color\\\":[513],\\\"sticky\\\":[4]}],[32,\\\"ion-item-group\\\"],[1,\\\"ion-skeleton-text\\\",{\\\"animated\\\":[4]}],[32,\\\"ion-list\\\",{\\\"lines\\\":[1],\\\"inset\\\":[4],\\\"closeSlidingItems\\\":[64]}],[33,\\\"ion-list-header\\\",{\\\"color\\\":[513],\\\"lines\\\":[1]}],[49,\\\"ion-item\\\",{\\\"color\\\":[513],\\\"button\\\":[4],\\\"detail\\\":[4],\\\"detailIcon\\\":[1,\\\"detail-icon\\\"],\\\"disabled\\\":[4],\\\"download\\\":[1],\\\"fill\\\":[1],\\\"shape\\\":[1],\\\"href\\\":[1],\\\"rel\\\":[1],\\\"lines\\\":[1],\\\"counter\\\":[4],\\\"routerAnimation\\\":[16],\\\"routerDirection\\\":[1,\\\"router-direction\\\"],\\\"target\\\":[1],\\\"type\\\":[1],\\\"counterFormatter\\\":[16],\\\"multipleInputs\\\":[32],\\\"focusable\\\":[32],\\\"counterString\\\":[32]},[[0,\\\"ionChange\\\",\\\"handleIonChange\\\"],[0,\\\"ionColor\\\",\\\"labelColorChanged\\\"],[0,\\\"ionStyle\\\",\\\"itemStyle\\\"]]],[34,\\\"ion-label\\\",{\\\"color\\\":[513],\\\"position\\\":[1],\\\"noAnimate\\\":[32]}],[33,\\\"ion-note\\\",{\\\"color\\\":[513]}]]]]\"), options);\n });\n};\n\nexport { defineCustomElements };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as createAnimation } from './animation-e5036198.js';\nimport { g as getIonPageElement } from './index-fbafcf43.js';\nimport './helpers-2914b3be.js';\nimport './index-33ffec25.js';\nimport './index-8e692445.js';\n\nconst mdTransitionAnimation = (_, opts) => {\n var _a, _b, _c;\n const OFF_BOTTOM = '40px';\n const CENTER = '0px';\n const backDirection = opts.direction === 'back';\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n const ionPageElement = getIonPageElement(enteringEl);\n const enteringToolbarEle = ionPageElement.querySelector('ion-toolbar');\n const rootTransition = createAnimation();\n rootTransition.addElement(ionPageElement).fill('both').beforeRemoveClass('ion-page-invisible');\n // animate the component itself\n if (backDirection) {\n rootTransition.duration(((_a = opts.duration) !== null && _a !== void 0 ? _a : 0) || 200).easing('cubic-bezier(0.47,0,0.745,0.715)');\n }\n else {\n rootTransition\n .duration(((_b = opts.duration) !== null && _b !== void 0 ? _b : 0) || 280)\n .easing('cubic-bezier(0.36,0.66,0.04,1)')\n .fromTo('transform', `translateY(${OFF_BOTTOM})`, `translateY(${CENTER})`)\n .fromTo('opacity', 0.01, 1);\n }\n // Animate toolbar if it's there\n if (enteringToolbarEle) {\n const enteringToolBar = createAnimation();\n enteringToolBar.addElement(enteringToolbarEle);\n rootTransition.addAnimation(enteringToolBar);\n }\n // setup leaving view\n if (leavingEl && backDirection) {\n // leaving content\n rootTransition.duration(((_c = opts.duration) !== null && _c !== void 0 ? _c : 0) || 200).easing('cubic-bezier(0.47,0,0.745,0.715)');\n const leavingPage = createAnimation();\n leavingPage\n .addElement(getIonPageElement(leavingEl))\n .onFinish((currentStep) => {\n if (currentStep === 1 && leavingPage.elements.length > 0) {\n leavingPage.elements[0].style.setProperty('display', 'none');\n }\n })\n .fromTo('transform', `translateY(${CENTER})`, `translateY(${OFF_BOTTOM})`)\n .fromTo('opacity', 1, 0);\n rootTransition.addAnimation(leavingPage);\n }\n return rootTransition;\n};\n\nexport { mdTransitionAnimation };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { b as getIonMode, c as config } from './ionic-global-c95cf239.js';\nimport { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button-490df115.js';\nimport { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-2914b3be.js';\n\nlet lastId = 0;\nconst activeAnimations = new WeakMap();\nconst createController = (tagName) => {\n return {\n create(options) {\n return createOverlay(tagName, options);\n },\n dismiss(data, role, id) {\n return dismissOverlay(document, data, role, tagName, id);\n },\n async getTop() {\n return getOverlay(document, tagName);\n },\n };\n};\nconst alertController = /*@__PURE__*/ createController('ion-alert');\nconst actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');\nconst loadingController = /*@__PURE__*/ createController('ion-loading');\nconst modalController = /*@__PURE__*/ createController('ion-modal');\nconst pickerController = /*@__PURE__*/ createController('ion-picker');\nconst popoverController = /*@__PURE__*/ createController('ion-popover');\nconst toastController = /*@__PURE__*/ createController('ion-toast');\nconst prepareOverlay = (el) => {\n if (typeof document !== 'undefined') {\n connectListeners(document);\n }\n const overlayIndex = lastId++;\n el.overlayIndex = overlayIndex;\n if (!el.hasAttribute('id')) {\n el.id = `ion-overlay-${overlayIndex}`;\n }\n};\nconst createOverlay = (tagName, opts) => {\n if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined') {\n return window.customElements.whenDefined(tagName).then(() => {\n const element = document.createElement(tagName);\n element.classList.add('overlay-hidden');\n /**\n * Convert the passed in overlay options into props\n * that get passed down into the new overlay.\n */\n Object.assign(element, Object.assign(Object.assign({}, opts), { hasController: true }));\n // append the overlay element to the document body\n getAppRoot(document).appendChild(element);\n return new Promise((resolve) => componentOnReady(element, resolve));\n });\n }\n return Promise.resolve();\n};\n/**\n * This query string selects elements that\n * are eligible to receive focus. We select\n * interactive elements that meet the following\n * criteria:\n * 1. Element does not have a negative tabindex\n * 2. Element does not have `hidden`\n * 3. Element does not have `disabled` for non-Ionic components.\n * 4. Element does not have `disabled` or `disabled=\"true\"` for Ionic components.\n * Note: We need this distinction because `disabled=\"false\"` is\n * valid usage for the disabled property on ion-button.\n */\nconst focusableQueryString = '[tabindex]:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^=\"-\"]):not([hidden]):not([disabled]), textarea:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), button:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), select:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable[disabled=\"false\"]:not([tabindex^=\"-\"]):not([hidden])';\nconst focusFirstDescendant = (ref, overlay) => {\n let firstInput = ref.querySelector(focusableQueryString);\n const shadowRoot = firstInput === null || firstInput === void 0 ? void 0 : firstInput.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n firstInput = shadowRoot.querySelector(focusableQueryString) || firstInput;\n }\n if (firstInput) {\n focusElement(firstInput);\n }\n else {\n // Focus overlay instead of letting focus escape\n overlay.focus();\n }\n};\nconst isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');\nconst focusLastDescendant = (ref, overlay) => {\n const inputs = Array.from(ref.querySelectorAll(focusableQueryString));\n let lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;\n const shadowRoot = lastInput === null || lastInput === void 0 ? void 0 : lastInput.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n lastInput = shadowRoot.querySelector(focusableQueryString) || lastInput;\n }\n if (lastInput) {\n lastInput.focus();\n }\n else {\n // Focus overlay instead of letting focus escape\n overlay.focus();\n }\n};\n/**\n * Traps keyboard focus inside of overlay components.\n * Based on https://w3c.github.io/aria-practices/examples/dialog-modal/alertdialog.html\n * This includes the following components: Action Sheet, Alert, Loading, Modal,\n * Picker, and Popover.\n * Should NOT include: Toast\n */\nconst trapKeyboardFocus = (ev, doc) => {\n const lastOverlay = getOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');\n const target = ev.target;\n /**\n * If no active overlay, ignore this event.\n *\n * If this component uses the shadow dom,\n * this global listener is pointless\n * since it will not catch the focus\n * traps as they are inside the shadow root.\n * We need to add a listener to the shadow root\n * itself to ensure the focus trap works.\n */\n if (!lastOverlay || !target) {\n return;\n }\n /**\n * If the ion-disable-focus-trap class\n * is present on an overlay, then this component\n * instance has opted out of focus trapping.\n * An example of this is when the sheet modal\n * has a backdrop that is disabled. The content\n * behind the sheet should be focusable until\n * the backdrop is enabled.\n */\n if (lastOverlay.classList.contains('ion-disable-focus-trap')) {\n return;\n }\n const trapScopedFocus = () => {\n /**\n * If we are focusing the overlay, clear\n * the last focused element so that hitting\n * tab activates the first focusable element\n * in the overlay wrapper.\n */\n if (lastOverlay === target) {\n lastOverlay.lastFocus = undefined;\n /**\n * Otherwise, we must be focusing an element\n * inside of the overlay. The two possible options\n * here are an input/button/etc or the ion-focus-trap\n * element. The focus trap element is used to prevent\n * the keyboard focus from leaving the overlay when\n * using Tab or screen assistants.\n */\n }\n else {\n /**\n * We do not want to focus the traps, so get the overlay\n * wrapper element as the traps live outside of the wrapper.\n */\n const overlayRoot = getElementRoot(lastOverlay);\n if (!overlayRoot.contains(target)) {\n return;\n }\n const overlayWrapper = overlayRoot.querySelector('.ion-overlay-wrapper');\n if (!overlayWrapper) {\n return;\n }\n /**\n * If the target is inside the wrapper, let the browser\n * focus as normal and keep a log of the last focused element.\n */\n if (overlayWrapper.contains(target)) {\n lastOverlay.lastFocus = target;\n }\n else {\n /**\n * Otherwise, we must have focused one of the focus traps.\n * We need to wrap the focus to either the first element\n * or the last element.\n */\n /**\n * Once we call `focusFirstDescendant` and focus the first\n * descendant, another focus event will fire which will\n * cause `lastOverlay.lastFocus` to be updated before\n * we can run the code after that. We will cache the value\n * here to avoid that.\n */\n const lastFocus = lastOverlay.lastFocus;\n // Focus the first element in the overlay wrapper\n focusFirstDescendant(overlayWrapper, lastOverlay);\n /**\n * If the cached last focused element is the\n * same as the active element, then we need\n * to wrap focus to the last descendant. This happens\n * when the first descendant is focused, and the user\n * presses Shift + Tab. The previous line will focus\n * the same descendant again (the first one), causing\n * last focus to equal the active element.\n */\n if (lastFocus === doc.activeElement) {\n focusLastDescendant(overlayWrapper, lastOverlay);\n }\n lastOverlay.lastFocus = doc.activeElement;\n }\n }\n };\n const trapShadowFocus = () => {\n /**\n * If the target is inside the wrapper, let the browser\n * focus as normal and keep a log of the last focused element.\n */\n if (lastOverlay.contains(target)) {\n lastOverlay.lastFocus = target;\n }\n else {\n /**\n * Otherwise, we are about to have focus\n * go out of the overlay. We need to wrap\n * the focus to either the first element\n * or the last element.\n */\n /**\n * Once we call `focusFirstDescendant` and focus the first\n * descendant, another focus event will fire which will\n * cause `lastOverlay.lastFocus` to be updated before\n * we can run the code after that. We will cache the value\n * here to avoid that.\n */\n const lastFocus = lastOverlay.lastFocus;\n // Focus the first element in the overlay wrapper\n focusFirstDescendant(lastOverlay, lastOverlay);\n /**\n * If the cached last focused element is the\n * same as the active element, then we need\n * to wrap focus to the last descendant. This happens\n * when the first descendant is focused, and the user\n * presses Shift + Tab. The previous line will focus\n * the same descendant again (the first one), causing\n * last focus to equal the active element.\n */\n if (lastFocus === doc.activeElement) {\n focusLastDescendant(lastOverlay, lastOverlay);\n }\n lastOverlay.lastFocus = doc.activeElement;\n }\n };\n if (lastOverlay.shadowRoot) {\n trapShadowFocus();\n }\n else {\n trapScopedFocus();\n }\n};\nconst connectListeners = (doc) => {\n if (lastId === 0) {\n lastId = 1;\n doc.addEventListener('focus', (ev) => {\n trapKeyboardFocus(ev, doc);\n }, true);\n // handle back-button click\n doc.addEventListener('ionBackButton', (ev) => {\n const lastOverlay = getOverlay(doc);\n if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {\n ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {\n return lastOverlay.dismiss(undefined, BACKDROP);\n });\n }\n });\n // handle ESC to close overlay\n doc.addEventListener('keyup', (ev) => {\n if (ev.key === 'Escape') {\n const lastOverlay = getOverlay(doc);\n if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {\n lastOverlay.dismiss(undefined, BACKDROP);\n }\n }\n });\n }\n};\nconst dismissOverlay = (doc, data, role, overlayTag, id) => {\n const overlay = getOverlay(doc, overlayTag, id);\n if (!overlay) {\n return Promise.reject('overlay does not exist');\n }\n return overlay.dismiss(data, role);\n};\nconst getOverlays = (doc, selector) => {\n if (selector === undefined) {\n selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';\n }\n return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);\n};\n/**\n * Returns an overlay element\n * @param doc The document to find the element within.\n * @param overlayTag The selector for the overlay, defaults to Ionic overlay components.\n * @param id The unique identifier for the overlay instance.\n * @returns The overlay element or `undefined` if no overlay element is found.\n */\nconst getOverlay = (doc, overlayTag, id) => {\n const overlays = getOverlays(doc, overlayTag).filter((o) => !isOverlayHidden(o));\n return id === undefined ? overlays[overlays.length - 1] : overlays.find((o) => o.id === id);\n};\n/**\n * When an overlay is presented, the main\n * focus is the overlay not the page content.\n * We need to remove the page content from the\n * accessibility tree otherwise when\n * users use \"read screen from top\" gestures with\n * TalkBack and VoiceOver, the screen reader will begin\n * to read the content underneath the overlay.\n *\n * We need a container where all page components\n * exist that is separate from where the overlays\n * are added in the DOM. For most apps, this element\n * is the top most ion-router-outlet. In the event\n * that devs are not using a router,\n * they will need to add the \"ion-view-container-root\"\n * id to the element that contains all of their views.\n *\n * TODO: If Framework supports having multiple top\n * level router outlets we would need to update this.\n * Example: One outlet for side menu and one outlet\n * for main content.\n */\nconst setRootAriaHidden = (hidden = false) => {\n const root = getAppRoot(document);\n const viewContainer = root.querySelector('ion-router-outlet, ion-nav, #ion-view-container-root');\n if (!viewContainer) {\n return;\n }\n if (hidden) {\n viewContainer.setAttribute('aria-hidden', 'true');\n }\n else {\n viewContainer.removeAttribute('aria-hidden');\n }\n};\nconst present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {\n var _a, _b;\n if (overlay.presented) {\n return;\n }\n setRootAriaHidden(true);\n overlay.presented = true;\n overlay.willPresent.emit();\n (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();\n const mode = getIonMode(overlay);\n // get the user's animation fn if one was provided\n const animationBuilder = overlay.enterAnimation\n ? overlay.enterAnimation\n : config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);\n const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);\n if (completed) {\n overlay.didPresent.emit();\n (_b = overlay.didPresentShorthand) === null || _b === void 0 ? void 0 : _b.emit();\n }\n /**\n * When an overlay that steals focus\n * is dismissed, focus should be returned\n * to the element that was focused\n * prior to the overlay opening. Toast\n * does not steal focus and is excluded\n * from returning focus as a result.\n */\n if (overlay.el.tagName !== 'ION-TOAST') {\n focusPreviousElementOnDismiss(overlay.el);\n }\n /**\n * If the focused element is already\n * inside the overlay component then\n * focus should not be moved from that\n * to the overlay container.\n */\n if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {\n overlay.el.focus();\n }\n};\n/**\n * When an overlay component is dismissed,\n * focus should be returned to the element\n * that presented the overlay. Otherwise\n * focus will be set on the body which\n * means that people using screen readers\n * or tabbing will need to re-navigate\n * to where they were before they\n * opened the overlay.\n */\nconst focusPreviousElementOnDismiss = async (overlayEl) => {\n let previousElement = document.activeElement;\n if (!previousElement) {\n return;\n }\n const shadowRoot = previousElement === null || previousElement === void 0 ? void 0 : previousElement.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n previousElement = shadowRoot.querySelector(focusableQueryString) || previousElement;\n }\n await overlayEl.onDidDismiss();\n previousElement.focus();\n};\nconst dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {\n var _a, _b;\n if (!overlay.presented) {\n return false;\n }\n setRootAriaHidden(false);\n overlay.presented = false;\n try {\n // Overlay contents should not be clickable during dismiss\n overlay.el.style.setProperty('pointer-events', 'none');\n overlay.willDismiss.emit({ data, role });\n (_a = overlay.willDismissShorthand) === null || _a === void 0 ? void 0 : _a.emit({ data, role });\n const mode = getIonMode(overlay);\n const animationBuilder = overlay.leaveAnimation\n ? overlay.leaveAnimation\n : config.get(name, mode === 'ios' ? iosLeaveAnimation : mdLeaveAnimation);\n // If dismissed via gesture, no need to play leaving animation again\n if (role !== 'gesture') {\n await overlayAnimation(overlay, animationBuilder, overlay.el, opts);\n }\n overlay.didDismiss.emit({ data, role });\n (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });\n activeAnimations.delete(overlay);\n /**\n * Make overlay hidden again in case it is being reused.\n * We can safely remove pointer-events: none as\n * overlay-hidden will set display: none.\n */\n overlay.el.classList.add('overlay-hidden');\n overlay.el.style.removeProperty('pointer-events');\n }\n catch (err) {\n console.error(err);\n }\n overlay.el.remove();\n return true;\n};\nconst getAppRoot = (doc) => {\n return doc.querySelector('ion-app') || doc.body;\n};\nconst overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {\n // Make overlay visible in case it's hidden\n baseEl.classList.remove('overlay-hidden');\n const aniRoot = overlay.el;\n const animation = animationBuilder(aniRoot, opts);\n if (!overlay.animated || !config.getBoolean('animated', true)) {\n animation.duration(0);\n }\n if (overlay.keyboardClose) {\n animation.beforeAddWrite(() => {\n const activeElement = baseEl.ownerDocument.activeElement;\n if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {\n activeElement.blur();\n }\n });\n }\n const activeAni = activeAnimations.get(overlay) || [];\n activeAnimations.set(overlay, [...activeAni, animation]);\n await animation.play();\n return true;\n};\nconst eventMethod = (element, eventName) => {\n let resolve;\n const promise = new Promise((r) => (resolve = r));\n onceEvent(element, eventName, (event) => {\n resolve(event.detail);\n });\n return promise;\n};\nconst onceEvent = (element, eventName, callback) => {\n const handler = (ev) => {\n removeEventListener(element, eventName, handler);\n callback(ev);\n };\n addEventListener(element, eventName, handler);\n};\nconst isCancel = (role) => {\n return role === 'cancel' || role === BACKDROP;\n};\nconst defaultGate = (h) => h();\n/**\n * Calls a developer provided method while avoiding\n * Angular Zones. Since the handler is provided by\n * the developer, we should throw any errors\n * received so that developer-provided bug\n * tracking software can log it.\n */\nconst safeCall = (handler, arg) => {\n if (typeof handler === 'function') {\n const jmp = config.get('_zoneGate', defaultGate);\n return jmp(() => {\n try {\n return handler(arg);\n }\n catch (e) {\n throw e;\n }\n });\n }\n return undefined;\n};\nconst BACKDROP = 'backdrop';\n\nexport { BACKDROP as B, alertController as a, actionSheetController as b, popoverController as c, present as d, prepareOverlay as e, dismiss as f, eventMethod as g, activeAnimations as h, isCancel as i, focusFirstDescendant as j, getOverlay as k, loadingController as l, modalController as m, pickerController as p, safeCall as s, toastController as t };\n","export function applyPolyfills() {\n var promises = [];\n if (typeof window !== 'undefined') {\n var win = window;\n\n if (!win.customElements ||\n (win.Element && (!win.Element.prototype.closest || !win.Element.prototype.matches || !win.Element.prototype.remove || !win.Element.prototype.getRootNode))) {\n promises.push(import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js'));\n }\n\n var checkIfURLIsSupported = function() {\n try {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n return (u.href === 'http://a/c%20d') && u.searchParams;\n } catch (e) {\n return false;\n }\n };\n\n if (\n 'function' !== typeof Object.assign || !Object.entries ||\n !Array.prototype.find || !Array.prototype.includes ||\n !String.prototype.startsWith || !String.prototype.endsWith ||\n (win.NodeList && !win.NodeList.prototype.forEach) ||\n !win.fetch ||\n !checkIfURLIsSupported() ||\n typeof WeakMap == 'undefined'\n ) {\n promises.push(import(/* webpackChunkName: \"polyfills-core-js\" */ './core-js.js'));\n }\n }\n return Promise.all(promises);\n}\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nexport * from '../dist/esm/polyfills/index.js';\nexport * from '../dist/esm/loader.js';\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n let subscription;\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n }\n catch (error) {\n innerSubscriber.error(error);\n }\n return subscription;\n}\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nconst NONE = {};\nexport function combineLatest(...observables) {\n let resultSelector = undefined;\n let scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nexport class CombineLatestOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class CombineLatestSubscriber extends OuterSubscriber {\n constructor(destination, resultSelector) {\n super(destination);\n this.resultSelector = resultSelector;\n this.active = 0;\n this.values = [];\n this.observables = [];\n }\n _next(observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n }\n notifyComplete(unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n }\n _tryResultSelector(values) {\n let result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat(...observables) {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(subscriber => {\n let input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin(...sources) {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nclass CatchOperator {\n constructor(selector) {\n this.selector = selector;\n }\n call(subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\nclass CatchSubscriber extends SimpleOuterSubscriber {\n constructor(destination, selector, caught) {\n super(destination);\n this.selector = selector;\n this.caught = caught;\n }\n error(err) {\n if (!this.isStopped) {\n let result;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\nclass DistinctUntilChangedOperator {\n constructor(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n call(subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n }\n}\nclass DistinctUntilChangedSubscriber extends Subscriber {\n constructor(destination, compare, keySelector) {\n super(destination);\n this.keySelector = keySelector;\n this.hasKey = false;\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n compare(x, y) {\n return x === y;\n }\n _next(value) {\n let key;\n try {\n const { keySelector } = this;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n let result = false;\n if (this.hasKey) {\n try {\n const { compare } = this;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return (source) => source.lift(new FinallyOperator(callback));\n}\nclass FinallyOperator {\n constructor(callback) {\n this.callback = callback;\n }\n call(subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\nclass FinallySubscriber extends Subscriber {\n constructor(destination, callback) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return (source) => source.lift(new MapToOperator(value));\n}\nclass MapToOperator {\n constructor(value) {\n this.value = value;\n }\n call(subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\nclass MapToSubscriber extends Subscriber {\n constructor(destination, value) {\n super(destination);\n this.value = value;\n }\n _next(x) {\n this.destination.next(this.value);\n }\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n let hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nclass ScanOperator {\n constructor(accumulator, seed, hasSeed = false) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n call(subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\nclass ScanSubscriber extends Subscriber {\n constructor(destination, accumulator, _seed, hasSeed) {\n super(destination);\n this.accumulator = accumulator;\n this._seed = _seed;\n this.hasSeed = hasSeed;\n this.index = 0;\n }\n get seed() {\n return this._seed;\n }\n set seed(value) {\n this.hasSeed = true;\n this._seed = value;\n }\n _next(value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n }\n _tryNext(value) {\n const index = this.index++;\n let result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith(...array) {\n const scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return (source) => concat(array, source, scheduler);\n }\n else {\n return (source) => concat(array, source);\n }\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n }\n _innerSub(result) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = undefined;\n }\n notifyComplete() {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nclass TakeLastOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\nclass TakeLastSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.ring = new Array();\n this.count = 0;\n }\n _next(value) {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n const index = count % total;\n ring[index] = value;\n }\n }\n _complete() {\n const destination = this.destination;\n let count = this.count;\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","export function identity(x) {\n return x;\n}\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, NgZone } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n var _a, _b, _c;\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref = (_c = (_a = href !== null && href !== void 0 ? href : this._platformLocation.getBaseHrefFromDOM()) !== null && _a !== void 0 ? _a : (_b = inject(DOCUMENT).location) === null || _b === void 0 ? void 0 : _b.origin) !== null && _c !== void 0 ? _c : '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const browserBaseHref = this._locationStrategy.getBaseHref();\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n var _a;\n (_a = this._urlChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._locationStrategy).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n return () => {\n var _a;\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n (_a = this._urlChangeSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (NG_DEV_MODE) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch (_a) {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n var _a;\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, (_a = timezone !== null && timezone !== void 0 ? timezone : this.defaultTimezone) !== null && _a !== void 0 ? _a : undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }];\n } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('14.2.5');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch (_a) {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch (_a) {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? (new URL(url)).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Multi-provider injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n * @developerPreview\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken('PRECONNECT_CHECK_BLOCKLIST');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, origin => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n throw new ɵRuntimeError(2957 /* RuntimeErrorCode.INVALID_PRECONNECT_CHECK_BLOCKLIST */, `The blocklist for the preconnect check was not provided as an array. ` +\n `Check that the \\`PRECONNECT_CHECK_BLOCKLIST\\` token is configured as a \\`multi: true\\` provider.`);\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head fo rthe\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n if (!this.preconnectLinks) {\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks = this.queryPreconnectLinks();\n }\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n var _a;\n (_a = this.preconnectLinks) === null || _a === void 0 ? void 0 : _a.clear();\n this.alreadySeen.clear();\n }\n}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_LOADER = new InjectionToken('ImageLoader', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path, options = { ensurePreconnect: true }) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, Object.assign(Object.assign({}, config), { src: normalizeSrc(config.src) }));\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n if (ngDevMode && options.ensurePreconnect === false) {\n providers.push({ provide: PRECONNECT_CHECK_BLOCKLIST, useValue: [path], multi: true });\n }\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n * @developerPreview\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode ?\n [\n 'https://res.cloudinary.com/mysite', 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com'\n ] :\n undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n let params = `tr:q-auto`; // applies the \"auto quality\" transformation\n if (config.width) {\n params += `,w-${config.width}`;\n }\n return `${path}/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @param options An object with extra configuration:\n * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive\n * should verify that there is a corresponding ``\n * present in the document's ``.\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n * @developerPreview\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n return url.href;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n var _a, _b;\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = (_b = (_a = lcpElement.element) === null || _a === void 0 ? void 0 : _a.src) !== null && _b !== void 0 ? _b : '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = .1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Asserting that there is a corresponding preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n * @developerPreview\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n this._priority = false;\n }\n /**\n * Previously, the `rawSrc` attribute was used to activate the directive.\n * The attribute was renamed to `ngSrc` and this input just produces an error,\n * suggesting to switch to `ngSrc` instead.\n *\n * This error should be removed in v15.\n *\n * @nodoc\n * @deprecated Use `ngSrc` instead.\n */\n set rawSrc(value) {\n if (ngDevMode) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(value, false)} the \\`rawSrc\\` attribute was used ` +\n `to activate the directive. Newer version of the directive uses the \\`ngSrc\\` ` +\n `attribute instead. Please replace \\`rawSrc\\` with \\`ngSrc\\` and ` +\n `\\`rawSrcset\\` with \\`ngSrcset\\` attributes in the template to ` +\n `enable image optimizations.`);\n }\n }\n /**\n * The intrinsic width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * The intrinsic height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n ngOnInit() {\n if (ngDevMode) {\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n assertNoConflictingSrcset(this);\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n assertNonEmptyWidthAndHeight(this);\n assertValidLoadingInput(this);\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n this.setHostAttribute('src', this.getRewrittenSrc());\n if (this.ngSrcset) {\n this.setHostAttribute('srcset', this.getRewrittenSrcset());\n }\n }\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, ['ngSrc', 'ngSrcset', 'width', 'height', 'priority']);\n }\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.imageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset.split(',').filter(src => src !== '').map(srcStr => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.imageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.5\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc],img[rawSrc]\", inputs: { rawSrc: \"rawSrc\", ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", src: \"src\", srcset: \"srcset\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.5\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc],img[rawSrc]',\n }]\n }], propDecorators: { rawSrc: [{\n type: Input\n }], ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value.split(',').every(num => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ` +\n `To fix this, switch \\`${inputName}\\` a static value or wrap the image element ` +\n `in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach(input => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value ` +\n `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n // TODO: `clientWidth`, `clientHeight`, `naturalWidth` and `naturalHeight`\n // are typed as number, but we run `parseFloat` (which accepts strings only).\n // Verify whether `parseFloat` is needed in the cases below.\n const renderedWidth = parseFloat(img.clientWidth);\n const renderedHeight = parseFloat(img.clientHeight);\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = parseFloat(img.naturalWidth);\n const intrinsicHeight = parseFloat(img.naturalHeight);\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${suppliedAspectRatio}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${renderedAspectRatio}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = (intrinsicWidth - recommendedWidth) >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = (intrinsicHeight - recommendedHeight) >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map(attr => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag.`);\n }\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v14.2.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar TagContentType;\n(function (TagContentType) {\n TagContentType[TagContentType[\"RAW_TEXT\"] = 0] = \"RAW_TEXT\";\n TagContentType[TagContentType[\"ESCAPABLE_RAW_TEXT\"] = 1] = \"ESCAPABLE_RAW_TEXT\";\n TagContentType[TagContentType[\"PARSABLE_DATA\"] = 2] = \"PARSABLE_DATA\";\n})(TagContentType || (TagContentType = {}));\nfunction splitNsName(elementName) {\n if (elementName[0] != ':') {\n return [null, elementName];\n }\n const colonIndex = elementName.indexOf(':', 1);\n if (colonIndex === -1) {\n throw new Error(`Unsupported format \"${elementName}\" expecting \":namespace:name\"`);\n }\n return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];\n}\n// `` tags work the same regardless the namespace\nfunction isNgContainer(tagName) {\n return splitNsName(tagName)[1] === 'ng-container';\n}\n// `` tags work the same regardless the namespace\nfunction isNgContent(tagName) {\n return splitNsName(tagName)[1] === 'ng-content';\n}\n// `` tags work the same regardless the namespace\nfunction isNgTemplate(tagName) {\n return splitNsName(tagName)[1] === 'ng-template';\n}\nfunction getNsPrefix(fullName) {\n return fullName === null ? null : splitNsName(fullName)[0];\n}\nfunction mergeNsAndName(prefix, localName) {\n return prefix ? `:${prefix}:${localName}` : localName;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass HtmlTagDefinition {\n constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false } = {}) {\n this.closedByChildren = {};\n this.closedByParent = false;\n this.canSelfClose = false;\n if (closedByChildren && closedByChildren.length > 0) {\n closedByChildren.forEach(tagName => this.closedByChildren[tagName] = true);\n }\n this.isVoid = isVoid;\n this.closedByParent = closedByParent || isVoid;\n this.implicitNamespacePrefix = implicitNamespacePrefix || null;\n this.contentType = contentType;\n this.ignoreFirstLf = ignoreFirstLf;\n this.preventNamespaceInheritance = preventNamespaceInheritance;\n }\n isClosedByChild(name) {\n return this.isVoid || name.toLowerCase() in this.closedByChildren;\n }\n getContentType(prefix) {\n if (typeof this.contentType === 'object') {\n const overrideType = prefix === undefined ? undefined : this.contentType[prefix];\n return overrideType !== null && overrideType !== void 0 ? overrideType : this.contentType.default;\n }\n return this.contentType;\n }\n}\nlet _DEFAULT_TAG_DEFINITION;\n// see https://www.w3.org/TR/html51/syntax.html#optional-tags\n// This implementation does not fully conform to the HTML5 spec.\nlet TAG_DEFINITIONS;\nfunction getHtmlTagDefinition(tagName) {\n var _a, _b;\n if (!TAG_DEFINITIONS) {\n _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();\n TAG_DEFINITIONS = {\n 'base': new HtmlTagDefinition({ isVoid: true }),\n 'meta': new HtmlTagDefinition({ isVoid: true }),\n 'area': new HtmlTagDefinition({ isVoid: true }),\n 'embed': new HtmlTagDefinition({ isVoid: true }),\n 'link': new HtmlTagDefinition({ isVoid: true }),\n 'img': new HtmlTagDefinition({ isVoid: true }),\n 'input': new HtmlTagDefinition({ isVoid: true }),\n 'param': new HtmlTagDefinition({ isVoid: true }),\n 'hr': new HtmlTagDefinition({ isVoid: true }),\n 'br': new HtmlTagDefinition({ isVoid: true }),\n 'source': new HtmlTagDefinition({ isVoid: true }),\n 'track': new HtmlTagDefinition({ isVoid: true }),\n 'wbr': new HtmlTagDefinition({ isVoid: true }),\n 'p': new HtmlTagDefinition({\n closedByChildren: [\n 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset',\n 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5',\n 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol',\n 'p', 'pre', 'section', 'table', 'ul'\n ],\n closedByParent: true\n }),\n 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),\n 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),\n 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),\n 'tr': new HtmlTagDefinition({ closedByChildren: ['tr'], closedByParent: true }),\n 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'col': new HtmlTagDefinition({ isVoid: true }),\n 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),\n 'foreignObject': new HtmlTagDefinition({\n // Usually the implicit namespace here would be redundant since it will be inherited from\n // the parent `svg`, but we have to do it for `foreignObject`, because the way the parser\n // works is that the parent node of an end tag is its own start tag which means that\n // the `preventNamespaceInheritance` on `foreignObject` would have it default to the\n // implicit namespace which is `html`, unless specified otherwise.\n implicitNamespacePrefix: 'svg',\n // We want to prevent children of foreignObject from inheriting its namespace, because\n // the point of the element is to allow nodes from other namespaces to be inserted.\n preventNamespaceInheritance: true,\n }),\n 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),\n 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),\n 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),\n 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),\n 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),\n 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),\n 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),\n 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'style': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'script': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'title': new HtmlTagDefinition({\n // The browser supports two separate `title` tags which have to use\n // a different content type: `HTMLTitleElement` and `SVGTitleElement`\n contentType: { default: TagContentType.ESCAPABLE_RAW_TEXT, svg: TagContentType.PARSABLE_DATA }\n }),\n 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),\n };\n }\n // We have to make both a case-sensitive and a case-insensitive lookup, because\n // HTML tag names are case insensitive, whereas some SVG tags are case sensitive.\n return (_b = (_a = TAG_DEFINITIONS[tagName]) !== null && _a !== void 0 ? _a : TAG_DEFINITIONS[tagName.toLowerCase()]) !== null && _b !== void 0 ? _b : _DEFAULT_TAG_DEFINITION;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SELECTOR_REGEXP = new RegExp('(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\\\"\\']?)([^\\\\]\\\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n'g');\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nclass CssSelector {\n constructor() {\n this.element = null;\n this.classNames = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n this.attrs = [];\n this.notSelectors = [];\n }\n static parse(selector) {\n const results = [];\n const _addResult = (res, cssSel) => {\n if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while (match = _SELECTOR_REGEXP.exec(selector)) {\n if (match[1 /* SelectorRegexp.NOT */]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[2 /* SelectorRegexp.TAG */];\n if (tag) {\n const prefix = match[3 /* SelectorRegexp.PREFIX */];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n }\n else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n }\n else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[4 /* SelectorRegexp.ATTRIBUTE */];\n if (attribute) {\n current.addAttribute(current.unescapeAttribute(attribute), match[6 /* SelectorRegexp.ATTRIBUTE_VALUE */]);\n }\n if (match[7 /* SelectorRegexp.NOT_END */]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[8 /* SelectorRegexp.SEPARATOR */]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr) {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(`Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`);\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string.\n */\n escapeAttribute(attr) {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n isElementSelector() {\n return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&\n this.notSelectors.length === 0;\n }\n hasElementSelector() {\n return !!this.element;\n }\n setElement(element = null) {\n this.element = element;\n }\n /** Gets a template string for an element that matches the selector. */\n getMatchingElementTemplate() {\n const tagName = this.element || 'div';\n const classAttr = this.classNames.length > 0 ? ` class=\"${this.classNames.join(' ')}\"` : '';\n let attrs = '';\n for (let i = 0; i < this.attrs.length; i += 2) {\n const attrName = this.attrs[i];\n const attrValue = this.attrs[i + 1] !== '' ? `=\"${this.attrs[i + 1]}\"` : '';\n attrs += ` ${attrName}${attrValue}`;\n }\n return getHtmlTagDefinition(tagName).isVoid ? `<${tagName}${classAttr}${attrs}/>` :\n `<${tagName}${classAttr}${attrs}>`;\n }\n getAttrs() {\n const result = [];\n if (this.classNames.length > 0) {\n result.push('class', this.classNames.join(' '));\n }\n return result.concat(this.attrs);\n }\n addAttribute(name, value = '') {\n this.attrs.push(name, value && value.toLowerCase() || '');\n }\n addClassName(name) {\n this.classNames.push(name.toLowerCase());\n }\n toString() {\n let res = this.element || '';\n if (this.classNames) {\n this.classNames.forEach(klass => res += `.${klass}`);\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach(notSelector => res += `:not(${notSelector})`);\n return res;\n }\n}\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nclass SelectorMatcher {\n constructor() {\n this._elementMap = new Map();\n this._elementPartialMap = new Map();\n this._classMap = new Map();\n this._classPartialMap = new Map();\n this._attrValueMap = new Map();\n this._attrValuePartialMap = new Map();\n this._listContexts = [];\n }\n static createNotMatcher(notSelectors) {\n const notMatcher = new SelectorMatcher();\n notMatcher.addSelectables(notSelectors, null);\n return notMatcher;\n }\n addSelectables(cssSelectors, callbackCtxt) {\n let listContext = null;\n if (cssSelectors.length > 1) {\n listContext = new SelectorListContext(cssSelectors);\n this._listContexts.push(listContext);\n }\n for (let i = 0; i < cssSelectors.length; i++) {\n this._addSelectable(cssSelectors[i], callbackCtxt, listContext);\n }\n }\n /**\n * Add an object that can be found later on by calling `match`.\n * @param cssSelector A css selector\n * @param callbackCtxt An opaque object that will be given to the callback of the `match` function\n */\n _addSelectable(cssSelector, callbackCtxt, listContext) {\n let matcher = this;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n if (element) {\n const isTerminal = attrs.length === 0 && classNames.length === 0;\n if (isTerminal) {\n this._addTerminal(matcher._elementMap, element, selectable);\n }\n else {\n matcher = this._addPartial(matcher._elementPartialMap, element);\n }\n }\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const isTerminal = attrs.length === 0 && i === classNames.length - 1;\n const className = classNames[i];\n if (isTerminal) {\n this._addTerminal(matcher._classMap, className, selectable);\n }\n else {\n matcher = this._addPartial(matcher._classPartialMap, className);\n }\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const isTerminal = i === attrs.length - 2;\n const name = attrs[i];\n const value = attrs[i + 1];\n if (isTerminal) {\n const terminalMap = matcher._attrValueMap;\n let terminalValuesMap = terminalMap.get(name);\n if (!terminalValuesMap) {\n terminalValuesMap = new Map();\n terminalMap.set(name, terminalValuesMap);\n }\n this._addTerminal(terminalValuesMap, value, selectable);\n }\n else {\n const partialMap = matcher._attrValuePartialMap;\n let partialValuesMap = partialMap.get(name);\n if (!partialValuesMap) {\n partialValuesMap = new Map();\n partialMap.set(name, partialValuesMap);\n }\n matcher = this._addPartial(partialValuesMap, value);\n }\n }\n }\n }\n _addTerminal(map, name, selectable) {\n let terminalList = map.get(name);\n if (!terminalList) {\n terminalList = [];\n map.set(name, terminalList);\n }\n terminalList.push(selectable);\n }\n _addPartial(map, name) {\n let matcher = map.get(name);\n if (!matcher) {\n matcher = new SelectorMatcher();\n map.set(name, matcher);\n }\n return matcher;\n }\n /**\n * Find the objects that have been added via `addSelectable`\n * whose css selector is contained in the given css selector.\n * @param cssSelector A css selector\n * @param matchedCallback This callback will be called with the object handed into `addSelectable`\n * @return boolean true if a match was found\n */\n match(cssSelector, matchedCallback) {\n let result = false;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n for (let i = 0; i < this._listContexts.length; i++) {\n this._listContexts[i].alreadyMatched = false;\n }\n result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||\n result;\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const className = classNames[i];\n result =\n this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;\n result =\n this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) ||\n result;\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const name = attrs[i];\n const value = attrs[i + 1];\n const terminalValuesMap = this._attrValueMap.get(name);\n if (value) {\n result =\n this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;\n const partialValuesMap = this._attrValuePartialMap.get(name);\n if (value) {\n result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;\n }\n }\n return result;\n }\n /** @internal */\n _matchTerminal(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n let selectables = map.get(name) || [];\n const starSelectables = map.get('*');\n if (starSelectables) {\n selectables = selectables.concat(starSelectables);\n }\n if (selectables.length === 0) {\n return false;\n }\n let selectable;\n let result = false;\n for (let i = 0; i < selectables.length; i++) {\n selectable = selectables[i];\n result = selectable.finalize(cssSelector, matchedCallback) || result;\n }\n return result;\n }\n /** @internal */\n _matchPartial(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n const nestedSelector = map.get(name);\n if (!nestedSelector) {\n return false;\n }\n // TODO(perf): get rid of recursion and measure again\n // TODO(perf): don't pass the whole selector into the recursion,\n // but only the not processed parts\n return nestedSelector.match(cssSelector, matchedCallback);\n }\n}\nclass SelectorListContext {\n constructor(selectors) {\n this.selectors = selectors;\n this.alreadyMatched = false;\n }\n}\n// Store context to pass back selector and context when a selector is matched\nclass SelectorContext {\n constructor(selector, cbContext, listContext) {\n this.selector = selector;\n this.cbContext = cbContext;\n this.listContext = listContext;\n this.notSelectors = selector.notSelectors;\n }\n finalize(cssSelector, callback) {\n let result = true;\n if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {\n const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);\n result = !notMatcher.match(cssSelector, null);\n }\n if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {\n if (this.listContext) {\n this.listContext.alreadyMatched = true;\n }\n callback(this.selector, this.cbContext);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\nconst CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\nconst NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\nconst Type$1 = Function;\nvar SecurityContext;\n(function (SecurityContext) {\n SecurityContext[SecurityContext[\"NONE\"] = 0] = \"NONE\";\n SecurityContext[SecurityContext[\"HTML\"] = 1] = \"HTML\";\n SecurityContext[SecurityContext[\"STYLE\"] = 2] = \"STYLE\";\n SecurityContext[SecurityContext[\"SCRIPT\"] = 3] = \"SCRIPT\";\n SecurityContext[SecurityContext[\"URL\"] = 4] = \"URL\";\n SecurityContext[SecurityContext[\"RESOURCE_URL\"] = 5] = \"RESOURCE_URL\";\n})(SecurityContext || (SecurityContext = {}));\nvar MissingTranslationStrategy;\n(function (MissingTranslationStrategy) {\n MissingTranslationStrategy[MissingTranslationStrategy[\"Error\"] = 0] = \"Error\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Warning\"] = 1] = \"Warning\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Ignore\"] = 2] = \"Ignore\";\n})(MissingTranslationStrategy || (MissingTranslationStrategy = {}));\nfunction parserSelectorToSimpleSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n const elementName = selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\nfunction parserSelectorToNegativeSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n if (selector.element) {\n return [\n 1 /* SelectorFlags.NOT */ | 4 /* SelectorFlags.ELEMENT */, selector.element, ...selector.attrs, ...classes\n ];\n }\n else if (selector.attrs.length) {\n return [1 /* SelectorFlags.NOT */ | 2 /* SelectorFlags.ATTRIBUTE */, ...selector.attrs, ...classes];\n }\n else {\n return selector.classNames && selector.classNames.length ?\n [1 /* SelectorFlags.NOT */ | 8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n }\n}\nfunction parserSelectorToR3Selector(selector) {\n const positive = parserSelectorToSimpleSelector(selector);\n const negative = selector.notSelectors && selector.notSelectors.length ?\n selector.notSelectors.map(notSelector => parserSelectorToNegativeSelector(notSelector)) :\n [];\n return positive.concat(...negative);\n}\nfunction parseSelectorToR3Selector(selector) {\n return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];\n}\n\nvar core = /*#__PURE__*/Object.freeze({\n __proto__: null,\n emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue,\n get ViewEncapsulation () { return ViewEncapsulation; },\n get ChangeDetectionStrategy () { return ChangeDetectionStrategy; },\n CUSTOM_ELEMENTS_SCHEMA: CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA,\n Type: Type$1,\n get SecurityContext () { return SecurityContext; },\n get MissingTranslationStrategy () { return MissingTranslationStrategy; },\n parseSelectorToR3Selector: parseSelectorToR3Selector\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction splitAtColon(input, defaultValues) {\n return _splitAt(input, ':', defaultValues);\n}\nfunction splitAtPeriod(input, defaultValues) {\n return _splitAt(input, '.', defaultValues);\n}\nfunction _splitAt(input, character, defaultValues) {\n const characterIndex = input.indexOf(character);\n if (characterIndex == -1)\n return defaultValues;\n return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()];\n}\nfunction noUndefined(val) {\n return val === undefined ? null : val;\n}\nfunction error(msg) {\n throw new Error(`Internal Error: ${msg}`);\n}\n// Escape characters that have a special meaning in Regular Expressions\nfunction escapeRegExp(s) {\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\nfunction utf8Encode(str) {\n let encoded = [];\n for (let index = 0; index < str.length; index++) {\n let codePoint = str.charCodeAt(index);\n // decode surrogate\n // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > (index + 1)) {\n const low = str.charCodeAt(index + 1);\n if (low >= 0xdc00 && low <= 0xdfff) {\n index++;\n codePoint = ((codePoint - 0xd800) << 10) + low - 0xdc00 + 0x10000;\n }\n }\n if (codePoint <= 0x7f) {\n encoded.push(codePoint);\n }\n else if (codePoint <= 0x7ff) {\n encoded.push(((codePoint >> 6) & 0x1F) | 0xc0, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0xffff) {\n encoded.push((codePoint >> 12) | 0xe0, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0x1fffff) {\n encoded.push(((codePoint >> 18) & 0x07) | 0xf0, ((codePoint >> 12) & 0x3f) | 0x80, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n }\n return encoded;\n}\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n if (!token.toString) {\n return 'object';\n }\n // WARNING: do not try to `JSON.stringify(token)` here\n // see https://github.com/angular/angular/issues/23440\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\nclass Version {\n constructor(full) {\n this.full = full;\n const splits = full.split('.');\n this.major = splits[0];\n this.minor = splits[1];\n this.patch = splits.slice(2).join('.');\n }\n}\n// Check `global` first, because in Node tests both `global` and `window` may be defined and our\n// `_global` variable should point to the NodeJS `global` in that case. Note: Typeof/Instanceof\n// checks are considered side-effects in Terser. We explicitly mark this as side-effect free:\n// https://github.com/terser/terser/issues/250.\nconst _global = ( /* @__PURE__ */(() => (typeof global !== 'undefined' && global) || (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self))());\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Partitions a given array into 2 arrays, based on a boolean value returned by the condition\n * function.\n *\n * @param arr Input array that should be partitioned\n * @param conditionFn Condition function that is called for each item in a given array and returns a\n * boolean value.\n */\nfunction partitionArray(arr, conditionFn) {\n const truthy = [];\n const falsy = [];\n for (const item of arr) {\n (conditionFn(item) ? truthy : falsy).push(item);\n }\n return [truthy, falsy];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a big integer using a buffer of its individual digits, with the least significant\n * digit stored at the beginning of the array (little endian).\n *\n * For performance reasons, each instance is mutable. The addition operation can be done in-place\n * to reduce memory pressure of allocation for the digits array.\n */\nclass BigInteger {\n /**\n * Creates a big integer using its individual digits in little endian storage.\n */\n constructor(digits) {\n this.digits = digits;\n }\n static zero() {\n return new BigInteger([0]);\n }\n static one() {\n return new BigInteger([1]);\n }\n /**\n * Creates a clone of this instance.\n */\n clone() {\n return new BigInteger(this.digits.slice());\n }\n /**\n * Returns a new big integer with the sum of `this` and `other` as its value. This does not mutate\n * `this` but instead returns a new instance, unlike `addToSelf`.\n */\n add(other) {\n const result = this.clone();\n result.addToSelf(other);\n return result;\n }\n /**\n * Adds `other` to the instance itself, thereby mutating its value.\n */\n addToSelf(other) {\n const maxNrOfDigits = Math.max(this.digits.length, other.digits.length);\n let carry = 0;\n for (let i = 0; i < maxNrOfDigits; i++) {\n let digitSum = carry;\n if (i < this.digits.length) {\n digitSum += this.digits[i];\n }\n if (i < other.digits.length) {\n digitSum += other.digits[i];\n }\n if (digitSum >= 10) {\n this.digits[i] = digitSum - 10;\n carry = 1;\n }\n else {\n this.digits[i] = digitSum;\n carry = 0;\n }\n }\n // Apply a remaining carry if needed.\n if (carry > 0) {\n this.digits[maxNrOfDigits] = 1;\n }\n }\n /**\n * Builds the decimal string representation of the big integer. As this is stored in\n * little endian, the digits are concatenated in reverse order.\n */\n toString() {\n let res = '';\n for (let i = this.digits.length - 1; i >= 0; i--) {\n res += this.digits[i];\n }\n return res;\n }\n}\n/**\n * Represents a big integer which is optimized for multiplication operations, as its power-of-twos\n * are memoized. See `multiplyBy()` for details on the multiplication algorithm.\n */\nclass BigIntForMultiplication {\n constructor(value) {\n this.powerOfTwos = [value];\n }\n /**\n * Returns the big integer itself.\n */\n getValue() {\n return this.powerOfTwos[0];\n }\n /**\n * Computes the value for `num * b`, where `num` is a JS number and `b` is a big integer. The\n * value for `b` is represented by a storage model that is optimized for this computation.\n *\n * This operation is implemented in N(log2(num)) by continuous halving of the number, where the\n * least-significant bit (LSB) is tested in each iteration. If the bit is set, the bit's index is\n * used as exponent into the power-of-two multiplication of `b`.\n *\n * As an example, consider the multiplication num=42, b=1337. In binary 42 is 0b00101010 and the\n * algorithm unrolls into the following iterations:\n *\n * Iteration | num | LSB | b * 2^iter | Add? | product\n * -----------|------------|------|------------|------|--------\n * 0 | 0b00101010 | 0 | 1337 | No | 0\n * 1 | 0b00010101 | 1 | 2674 | Yes | 2674\n * 2 | 0b00001010 | 0 | 5348 | No | 2674\n * 3 | 0b00000101 | 1 | 10696 | Yes | 13370\n * 4 | 0b00000010 | 0 | 21392 | No | 13370\n * 5 | 0b00000001 | 1 | 42784 | Yes | 56154\n * 6 | 0b00000000 | 0 | 85568 | No | 56154\n *\n * The computed product of 56154 is indeed the correct result.\n *\n * The `BigIntForMultiplication` representation for a big integer provides memoized access to the\n * power-of-two values to reduce the workload in computing those values.\n */\n multiplyBy(num) {\n const product = BigInteger.zero();\n this.multiplyByAndAddTo(num, product);\n return product;\n }\n /**\n * See `multiplyBy()` for details. This function allows for the computed product to be added\n * directly to the provided result big integer.\n */\n multiplyByAndAddTo(num, result) {\n for (let exponent = 0; num !== 0; num = num >>> 1, exponent++) {\n if (num & 1) {\n const value = this.getMultipliedByPowerOfTwo(exponent);\n result.addToSelf(value);\n }\n }\n }\n /**\n * Computes and memoizes the big integer value for `this.number * 2^exponent`.\n */\n getMultipliedByPowerOfTwo(exponent) {\n // Compute the powers up until the requested exponent, where each value is computed from its\n // predecessor. This is simple as `this.number * 2^(exponent - 1)` only has to be doubled (i.e.\n // added to itself) to reach `this.number * 2^exponent`.\n for (let i = this.powerOfTwos.length; i <= exponent; i++) {\n const previousPower = this.powerOfTwos[i - 1];\n this.powerOfTwos[i] = previousPower.add(previousPower);\n }\n return this.powerOfTwos[exponent];\n }\n}\n/**\n * Represents an exponentiation operation for the provided base, of which exponents are computed and\n * memoized. The results are represented by a `BigIntForMultiplication` which is tailored for\n * multiplication operations by memoizing the power-of-twos. This effectively results in a matrix\n * representation that is lazily computed upon request.\n */\nclass BigIntExponentiation {\n constructor(base) {\n this.base = base;\n this.exponents = [new BigIntForMultiplication(BigInteger.one())];\n }\n /**\n * Compute the value for `this.base^exponent`, resulting in a big integer that is optimized for\n * further multiplication operations.\n */\n toThePowerOf(exponent) {\n // Compute the results up until the requested exponent, where every value is computed from its\n // predecessor. This is because `this.base^(exponent - 1)` only has to be multiplied by `base`\n // to reach `this.base^exponent`.\n for (let i = this.exponents.length; i <= exponent; i++) {\n const value = this.exponents[i - 1].multiplyBy(this.base);\n this.exponents[i] = new BigIntForMultiplication(value);\n }\n return this.exponents[exponent];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Return the message id or compute it using the XLIFF1 digest.\n */\nfunction digest$1(message) {\n return message.id || computeDigest(message);\n}\n/**\n * Compute the message id using the XLIFF1 digest.\n */\nfunction computeDigest(message) {\n return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`);\n}\n/**\n * Return the message id or compute it using the XLIFF2/XMB/$localize digest.\n */\nfunction decimalDigest(message) {\n return message.id || computeDecimalDigest(message);\n}\n/**\n * Compute the message id using the XLIFF2/XMB/$localize digest.\n */\nfunction computeDecimalDigest(message) {\n const visitor = new _SerializerIgnoreIcuExpVisitor();\n const parts = message.nodes.map(a => a.visit(visitor, null));\n return computeMsgId(parts.join(''), message.meaning);\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * The visitor is also used in the i18n parser tests\n *\n * @internal\n */\nclass _SerializerVisitor {\n visitText(text, context) {\n return text.value;\n }\n visitContainer(container, context) {\n return `[${container.children.map(child => child.visit(this)).join(', ')}]`;\n }\n visitIcu(icu, context) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`;\n }\n visitTagPlaceholder(ph, context) {\n return ph.isVoid ?\n `` :\n `${ph.children.map(child => child.visit(this)).join(', ')}`;\n }\n visitPlaceholder(ph, context) {\n return ph.value ? `${ph.value}` : ``;\n }\n visitIcuPlaceholder(ph, context) {\n return `${ph.value.visit(this)}`;\n }\n}\nconst serializerVisitor$1 = new _SerializerVisitor();\nfunction serializeNodes(nodes) {\n return nodes.map(a => a.visit(serializerVisitor$1, null));\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * Ignore the ICU expressions so that message IDs stays identical if only the expression changes.\n *\n * @internal\n */\nclass _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {\n visitIcu(icu, context) {\n let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n // Do not take the expression into account\n return `{${icu.type}, ${strCases.join(', ')}}`;\n }\n}\n/**\n * Compute the SHA1 of the given string\n *\n * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n *\n * WARNING: this function has not been designed not tested with security in mind.\n * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n */\nfunction sha1(str) {\n const utf8 = utf8Encode(str);\n const words32 = bytesToWords32(utf8, Endian.Big);\n const len = utf8.length * 8;\n const w = newArray(80);\n let a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476, e = 0xc3d2e1f0;\n words32[len >> 5] |= 0x80 << (24 - len % 32);\n words32[((len + 64 >> 9) << 4) + 15] = len;\n for (let i = 0; i < words32.length; i += 16) {\n const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;\n for (let j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n }\n else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n const fkVal = fk(j, b, c, d);\n const f = fkVal[0];\n const k = fkVal[1];\n const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n e = d;\n d = c;\n c = rol32(b, 30);\n b = a;\n a = temp;\n }\n a = add32(a, h0);\n b = add32(b, h1);\n c = add32(c, h2);\n d = add32(d, h3);\n e = add32(e, h4);\n }\n return bytesToHexString(words32ToByteString([a, b, c, d, e]));\n}\nfunction fk(index, b, c, d) {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n return [b ^ c ^ d, 0xca62c1d6];\n}\n/**\n * Compute the fingerprint of the given string\n *\n * The output is 64 bit number encoded as a decimal string\n *\n * based on:\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java\n */\nfunction fingerprint(str) {\n const utf8 = utf8Encode(str);\n let hi = hash32(utf8, 0);\n let lo = hash32(utf8, 102072);\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n return [hi, lo];\n}\nfunction computeMsgId(msg, meaning = '') {\n let msgFingerprint = fingerprint(msg);\n if (meaning) {\n const meaningFingerprint = fingerprint(meaning);\n msgFingerprint = add64(rol64(msgFingerprint, 1), meaningFingerprint);\n }\n const hi = msgFingerprint[0];\n const lo = msgFingerprint[1];\n return wordsToDecimalString(hi & 0x7fffffff, lo);\n}\nfunction hash32(bytes, c) {\n let a = 0x9e3779b9, b = 0x9e3779b9;\n let i;\n const len = bytes.length;\n for (i = 0; i + 12 <= len; i += 12) {\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n c = add32(c, wordAt(bytes, i + 8, Endian.Little));\n const res = mix(a, b, c);\n a = res[0], b = res[1], c = res[2];\n }\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n // the first byte of c is reserved for the length\n c = add32(c, len);\n c = add32(c, wordAt(bytes, i + 8, Endian.Little) << 8);\n return mix(a, b, c)[2];\n}\n// clang-format off\nfunction mix(a, b, c) {\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 13;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 8;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 13;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 12;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 16;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 5;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 3;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 10;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 15;\n return [a, b, c];\n}\n// clang-format on\n// Utils\nvar Endian;\n(function (Endian) {\n Endian[Endian[\"Little\"] = 0] = \"Little\";\n Endian[Endian[\"Big\"] = 1] = \"Big\";\n})(Endian || (Endian = {}));\nfunction add32(a, b) {\n return add32to64(a, b)[1];\n}\nfunction add32to64(a, b) {\n const low = (a & 0xffff) + (b & 0xffff);\n const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\nfunction add64(a, b) {\n const ah = a[0], al = a[1];\n const bh = b[0], bl = b[1];\n const result = add32to64(al, bl);\n const carry = result[0];\n const l = result[1];\n const h = add32(add32(ah, bh), carry);\n return [h, l];\n}\nfunction sub32(a, b) {\n const low = (a & 0xffff) - (b & 0xffff);\n const high = (a >> 16) - (b >> 16) + (low >> 16);\n return (high << 16) | (low & 0xffff);\n}\n// Rotate a 32b number left `count` position\nfunction rol32(a, count) {\n return (a << count) | (a >>> (32 - count));\n}\n// Rotate a 64b number left `count` position\nfunction rol64(num, count) {\n const hi = num[0], lo = num[1];\n const h = (hi << count) | (lo >>> (32 - count));\n const l = (lo << count) | (hi >>> (32 - count));\n return [h, l];\n}\nfunction bytesToWords32(bytes, endian) {\n const size = (bytes.length + 3) >>> 2;\n const words32 = [];\n for (let i = 0; i < size; i++) {\n words32[i] = wordAt(bytes, i * 4, endian);\n }\n return words32;\n}\nfunction byteAt(bytes, index) {\n return index >= bytes.length ? 0 : bytes[index];\n}\nfunction wordAt(bytes, index, endian) {\n let word = 0;\n if (endian === Endian.Big) {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (24 - 8 * i);\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << 8 * i;\n }\n }\n return word;\n}\nfunction words32ToByteString(words32) {\n return words32.reduce((bytes, word) => bytes.concat(word32ToByteString(word)), []);\n}\nfunction word32ToByteString(word) {\n let bytes = [];\n for (let i = 0; i < 4; i++) {\n bytes.push((word >>> 8 * (3 - i)) & 0xff);\n }\n return bytes;\n}\nfunction bytesToHexString(bytes) {\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n const b = byteAt(bytes, i);\n hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n }\n return hex.toLowerCase();\n}\n/**\n * Create a shared exponentiation pool for base-256 computations. This shared pool provides memoized\n * power-of-256 results with memoized power-of-two computations for efficient multiplication.\n *\n * For our purposes, this can be safely stored as a global without memory concerns. The reason is\n * that we encode two words, so only need the 0th (for the low word) and 4th (for the high word)\n * exponent.\n */\nconst base256 = new BigIntExponentiation(256);\n/**\n * Represents two 32-bit words as a single decimal number. This requires a big integer storage\n * model as JS numbers are not accurate enough to represent the 64-bit number.\n *\n * Based on https://www.danvk.org/hex2dec.html\n */\nfunction wordsToDecimalString(hi, lo) {\n // Encode the four bytes in lo in the lower digits of the decimal number.\n // Note: the multiplication results in lo itself but represented by a big integer using its\n // decimal digits.\n const decimal = base256.toThePowerOf(0).multiplyBy(lo);\n // Encode the four bytes in hi above the four lo bytes. lo is a maximum of (2^8)^4, which is why\n // this multiplication factor is applied.\n base256.toThePowerOf(4).multiplyByAndAddTo(hi, decimal);\n return decimal.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n//// Types\nvar TypeModifier;\n(function (TypeModifier) {\n TypeModifier[TypeModifier[\"None\"] = 0] = \"None\";\n TypeModifier[TypeModifier[\"Const\"] = 1] = \"Const\";\n})(TypeModifier || (TypeModifier = {}));\nclass Type {\n constructor(modifiers = TypeModifier.None) {\n this.modifiers = modifiers;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n}\nvar BuiltinTypeName;\n(function (BuiltinTypeName) {\n BuiltinTypeName[BuiltinTypeName[\"Dynamic\"] = 0] = \"Dynamic\";\n BuiltinTypeName[BuiltinTypeName[\"Bool\"] = 1] = \"Bool\";\n BuiltinTypeName[BuiltinTypeName[\"String\"] = 2] = \"String\";\n BuiltinTypeName[BuiltinTypeName[\"Int\"] = 3] = \"Int\";\n BuiltinTypeName[BuiltinTypeName[\"Number\"] = 4] = \"Number\";\n BuiltinTypeName[BuiltinTypeName[\"Function\"] = 5] = \"Function\";\n BuiltinTypeName[BuiltinTypeName[\"Inferred\"] = 6] = \"Inferred\";\n BuiltinTypeName[BuiltinTypeName[\"None\"] = 7] = \"None\";\n})(BuiltinTypeName || (BuiltinTypeName = {}));\nclass BuiltinType extends Type {\n constructor(name, modifiers) {\n super(modifiers);\n this.name = name;\n }\n visitType(visitor, context) {\n return visitor.visitBuiltinType(this, context);\n }\n}\nclass ExpressionType extends Type {\n constructor(value, modifiers, typeParams = null) {\n super(modifiers);\n this.value = value;\n this.typeParams = typeParams;\n }\n visitType(visitor, context) {\n return visitor.visitExpressionType(this, context);\n }\n}\nclass ArrayType extends Type {\n constructor(of, modifiers) {\n super(modifiers);\n this.of = of;\n }\n visitType(visitor, context) {\n return visitor.visitArrayType(this, context);\n }\n}\nclass MapType extends Type {\n constructor(valueType, modifiers) {\n super(modifiers);\n this.valueType = valueType || null;\n }\n visitType(visitor, context) {\n return visitor.visitMapType(this, context);\n }\n}\nconst DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);\nconst INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);\nconst BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);\nconst INT_TYPE = new BuiltinType(BuiltinTypeName.Int);\nconst NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);\nconst STRING_TYPE = new BuiltinType(BuiltinTypeName.String);\nconst FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);\nconst NONE_TYPE = new BuiltinType(BuiltinTypeName.None);\n///// Expressions\nvar UnaryOperator;\n(function (UnaryOperator) {\n UnaryOperator[UnaryOperator[\"Minus\"] = 0] = \"Minus\";\n UnaryOperator[UnaryOperator[\"Plus\"] = 1] = \"Plus\";\n})(UnaryOperator || (UnaryOperator = {}));\nvar BinaryOperator;\n(function (BinaryOperator) {\n BinaryOperator[BinaryOperator[\"Equals\"] = 0] = \"Equals\";\n BinaryOperator[BinaryOperator[\"NotEquals\"] = 1] = \"NotEquals\";\n BinaryOperator[BinaryOperator[\"Identical\"] = 2] = \"Identical\";\n BinaryOperator[BinaryOperator[\"NotIdentical\"] = 3] = \"NotIdentical\";\n BinaryOperator[BinaryOperator[\"Minus\"] = 4] = \"Minus\";\n BinaryOperator[BinaryOperator[\"Plus\"] = 5] = \"Plus\";\n BinaryOperator[BinaryOperator[\"Divide\"] = 6] = \"Divide\";\n BinaryOperator[BinaryOperator[\"Multiply\"] = 7] = \"Multiply\";\n BinaryOperator[BinaryOperator[\"Modulo\"] = 8] = \"Modulo\";\n BinaryOperator[BinaryOperator[\"And\"] = 9] = \"And\";\n BinaryOperator[BinaryOperator[\"Or\"] = 10] = \"Or\";\n BinaryOperator[BinaryOperator[\"BitwiseAnd\"] = 11] = \"BitwiseAnd\";\n BinaryOperator[BinaryOperator[\"Lower\"] = 12] = \"Lower\";\n BinaryOperator[BinaryOperator[\"LowerEquals\"] = 13] = \"LowerEquals\";\n BinaryOperator[BinaryOperator[\"Bigger\"] = 14] = \"Bigger\";\n BinaryOperator[BinaryOperator[\"BiggerEquals\"] = 15] = \"BiggerEquals\";\n BinaryOperator[BinaryOperator[\"NullishCoalesce\"] = 16] = \"NullishCoalesce\";\n})(BinaryOperator || (BinaryOperator = {}));\nfunction nullSafeIsEquivalent(base, other) {\n if (base == null || other == null) {\n return base == other;\n }\n return base.isEquivalent(other);\n}\nfunction areAllEquivalentPredicate(base, other, equivalentPredicate) {\n const len = base.length;\n if (len !== other.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (!equivalentPredicate(base[i], other[i])) {\n return false;\n }\n }\n return true;\n}\nfunction areAllEquivalent(base, other) {\n return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement));\n}\nclass Expression {\n constructor(type, sourceSpan) {\n this.type = type || null;\n this.sourceSpan = sourceSpan || null;\n }\n prop(name, sourceSpan) {\n return new ReadPropExpr(this, name, null, sourceSpan);\n }\n key(index, type, sourceSpan) {\n return new ReadKeyExpr(this, index, type, sourceSpan);\n }\n callFn(params, sourceSpan, pure) {\n return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);\n }\n instantiate(params, type, sourceSpan) {\n return new InstantiateExpr(this, params, type, sourceSpan);\n }\n conditional(trueCase, falseCase = null, sourceSpan) {\n return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);\n }\n equals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);\n }\n notEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);\n }\n identical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);\n }\n notIdentical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);\n }\n minus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);\n }\n plus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);\n }\n divide(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);\n }\n multiply(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);\n }\n modulo(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);\n }\n and(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);\n }\n bitwiseAnd(rhs, sourceSpan, parens = true) {\n return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);\n }\n or(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);\n }\n lower(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);\n }\n lowerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);\n }\n bigger(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);\n }\n biggerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);\n }\n isBlank(sourceSpan) {\n // Note: We use equals by purpose here to compare to null and undefined in JS.\n // We use the typed null to allow strictNullChecks to narrow types.\n return this.equals(TYPED_NULL_EXPR, sourceSpan);\n }\n nullishCoalesce(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan);\n }\n toStmt() {\n return new ExpressionStatement(this, null);\n }\n}\nclass ReadVarExpr extends Expression {\n constructor(name, type, sourceSpan) {\n super(type, sourceSpan);\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadVarExpr && this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadVarExpr(this, context);\n }\n set(value) {\n return new WriteVarExpr(this.name, value, null, this.sourceSpan);\n }\n}\nclass TypeofExpr extends Expression {\n constructor(expr, type, sourceSpan) {\n super(type, sourceSpan);\n this.expr = expr;\n }\n visitExpression(visitor, context) {\n return visitor.visitTypeofExpr(this, context);\n }\n isEquivalent(e) {\n return e instanceof TypeofExpr && e.expr.isEquivalent(this.expr);\n }\n isConstant() {\n return this.expr.isConstant();\n }\n}\nclass WrappedNodeExpr extends Expression {\n constructor(node, type, sourceSpan) {\n super(type, sourceSpan);\n this.node = node;\n }\n isEquivalent(e) {\n return e instanceof WrappedNodeExpr && this.node === e.node;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWrappedNodeExpr(this, context);\n }\n}\nclass WriteVarExpr extends Expression {\n constructor(name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteVarExpr(this, context);\n }\n toDeclStmt(type, modifiers) {\n return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);\n }\n toConstDecl() {\n return this.toDeclStmt(INFERRED_TYPE, StmtModifier.Final);\n }\n}\nclass WriteKeyExpr extends Expression {\n constructor(receiver, index, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteKeyExpr(this, context);\n }\n}\nclass WritePropExpr extends Expression {\n constructor(receiver, name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWritePropExpr(this, context);\n }\n}\nclass InvokeFunctionExpr extends Expression {\n constructor(fn, args, type, sourceSpan, pure = false) {\n super(type, sourceSpan);\n this.fn = fn;\n this.args = args;\n this.pure = pure;\n }\n isEquivalent(e) {\n return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&\n areAllEquivalent(this.args, e.args) && this.pure === e.pure;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInvokeFunctionExpr(this, context);\n }\n}\nclass TaggedTemplateExpr extends Expression {\n constructor(tag, template, type, sourceSpan) {\n super(type, sourceSpan);\n this.tag = tag;\n this.template = template;\n }\n isEquivalent(e) {\n return e instanceof TaggedTemplateExpr && this.tag.isEquivalent(e.tag) &&\n areAllEquivalentPredicate(this.template.elements, e.template.elements, (a, b) => a.text === b.text) &&\n areAllEquivalent(this.template.expressions, e.template.expressions);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitTaggedTemplateExpr(this, context);\n }\n}\nclass InstantiateExpr extends Expression {\n constructor(classExpr, args, type, sourceSpan) {\n super(type, sourceSpan);\n this.classExpr = classExpr;\n this.args = args;\n }\n isEquivalent(e) {\n return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&\n areAllEquivalent(this.args, e.args);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInstantiateExpr(this, context);\n }\n}\nclass LiteralExpr extends Expression {\n constructor(value, type, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof LiteralExpr && this.value === e.value;\n }\n isConstant() {\n return true;\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralExpr(this, context);\n }\n}\nclass TemplateLiteral {\n constructor(elements, expressions) {\n this.elements = elements;\n this.expressions = expressions;\n }\n}\nclass TemplateLiteralElement {\n constructor(text, sourceSpan, rawText) {\n var _a;\n this.text = text;\n this.sourceSpan = sourceSpan;\n // If `rawText` is not provided, try to extract the raw string from its\n // associated `sourceSpan`. If that is also not available, \"fake\" the raw\n // string instead by escaping the following control sequences:\n // - \"\\\" would otherwise indicate that the next character is a control character.\n // - \"`\" and \"${\" are template string control sequences that would otherwise prematurely\n // indicate the end of the template literal element.\n this.rawText =\n (_a = rawText !== null && rawText !== void 0 ? rawText : sourceSpan === null || sourceSpan === void 0 ? void 0 : sourceSpan.toString()) !== null && _a !== void 0 ? _a : escapeForTemplateLiteral(escapeSlashes(text));\n }\n}\nclass LiteralPiece {\n constructor(text, sourceSpan) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n }\n}\nclass PlaceholderPiece {\n /**\n * Create a new instance of a `PlaceholderPiece`.\n *\n * @param text the name of this placeholder (e.g. `PH_1`).\n * @param sourceSpan the location of this placeholder in its localized message the source code.\n * @param associatedMessage reference to another message that this placeholder is associated with.\n * The `associatedMessage` is mainly used to provide a relationship to an ICU message that has\n * been extracted out from the message containing the placeholder.\n */\n constructor(text, sourceSpan, associatedMessage) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n this.associatedMessage = associatedMessage;\n }\n}\nconst MEANING_SEPARATOR$1 = '|';\nconst ID_SEPARATOR$1 = '@@';\nconst LEGACY_ID_INDICATOR = '␟';\nclass LocalizedString extends Expression {\n constructor(metaBlock, messageParts, placeHolderNames, expressions, sourceSpan) {\n super(STRING_TYPE, sourceSpan);\n this.metaBlock = metaBlock;\n this.messageParts = messageParts;\n this.placeHolderNames = placeHolderNames;\n this.expressions = expressions;\n }\n isEquivalent(e) {\n // return e instanceof LocalizedString && this.message === e.message;\n return false;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitLocalizedString(this, context);\n }\n /**\n * Serialize the given `meta` and `messagePart` into \"cooked\" and \"raw\" strings that can be used\n * in a `$localize` tagged string. The format of the metadata is the same as that parsed by\n * `parseI18nMeta()`.\n *\n * @param meta The metadata to serialize\n * @param messagePart The first part of the tagged string\n */\n serializeI18nHead() {\n let metaBlock = this.metaBlock.description || '';\n if (this.metaBlock.meaning) {\n metaBlock = `${this.metaBlock.meaning}${MEANING_SEPARATOR$1}${metaBlock}`;\n }\n if (this.metaBlock.customId) {\n metaBlock = `${metaBlock}${ID_SEPARATOR$1}${this.metaBlock.customId}`;\n }\n if (this.metaBlock.legacyIds) {\n this.metaBlock.legacyIds.forEach(legacyId => {\n metaBlock = `${metaBlock}${LEGACY_ID_INDICATOR}${legacyId}`;\n });\n }\n return createCookedRawString(metaBlock, this.messageParts[0].text, this.getMessagePartSourceSpan(0));\n }\n getMessagePartSourceSpan(i) {\n var _a, _b;\n return (_b = (_a = this.messageParts[i]) === null || _a === void 0 ? void 0 : _a.sourceSpan) !== null && _b !== void 0 ? _b : this.sourceSpan;\n }\n getPlaceholderSourceSpan(i) {\n var _a, _b, _c, _d;\n return (_d = (_b = (_a = this.placeHolderNames[i]) === null || _a === void 0 ? void 0 : _a.sourceSpan) !== null && _b !== void 0 ? _b : (_c = this.expressions[i]) === null || _c === void 0 ? void 0 : _c.sourceSpan) !== null && _d !== void 0 ? _d : this.sourceSpan;\n }\n /**\n * Serialize the given `placeholderName` and `messagePart` into \"cooked\" and \"raw\" strings that\n * can be used in a `$localize` tagged string.\n *\n * The format is `:[@@]:`.\n *\n * The `associated-id` is the message id of the (usually an ICU) message to which this placeholder\n * refers.\n *\n * @param partIndex The index of the message part to serialize.\n */\n serializeI18nTemplatePart(partIndex) {\n var _a;\n const placeholder = this.placeHolderNames[partIndex - 1];\n const messagePart = this.messageParts[partIndex];\n let metaBlock = placeholder.text;\n if (((_a = placeholder.associatedMessage) === null || _a === void 0 ? void 0 : _a.legacyIds.length) === 0) {\n metaBlock += `${ID_SEPARATOR$1}${computeMsgId(placeholder.associatedMessage.messageString, placeholder.associatedMessage.meaning)}`;\n }\n return createCookedRawString(metaBlock, messagePart.text, this.getMessagePartSourceSpan(partIndex));\n }\n}\nconst escapeSlashes = (str) => str.replace(/\\\\/g, '\\\\\\\\');\nconst escapeStartingColon = (str) => str.replace(/^:/, '\\\\:');\nconst escapeColons = (str) => str.replace(/:/g, '\\\\:');\nconst escapeForTemplateLiteral = (str) => str.replace(/`/g, '\\\\`').replace(/\\${/g, '$\\\\{');\n/**\n * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`.\n *\n * The `raw` text must have various character sequences escaped:\n * * \"\\\" would otherwise indicate that the next character is a control character.\n * * \"`\" and \"${\" are template string control sequences that would otherwise prematurely indicate\n * the end of a message part.\n * * \":\" inside a metablock would prematurely indicate the end of the metablock.\n * * \":\" at the start of a messagePart with no metablock would erroneously indicate the start of a\n * metablock.\n *\n * @param metaBlock Any metadata that should be prepended to the string\n * @param messagePart The message part of the string\n */\nfunction createCookedRawString(metaBlock, messagePart, range) {\n if (metaBlock === '') {\n return {\n cooked: messagePart,\n raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),\n range,\n };\n }\n else {\n return {\n cooked: `:${metaBlock}:${messagePart}`,\n raw: escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),\n range,\n };\n }\n}\nclass ExternalExpr extends Expression {\n constructor(value, type, typeParams = null, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n this.typeParams = typeParams;\n }\n isEquivalent(e) {\n return e instanceof ExternalExpr && this.value.name === e.value.name &&\n this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitExternalExpr(this, context);\n }\n}\nclass ExternalReference {\n constructor(moduleName, name, runtime) {\n this.moduleName = moduleName;\n this.name = name;\n this.runtime = runtime;\n }\n}\nclass ConditionalExpr extends Expression {\n constructor(condition, trueCase, falseCase = null, type, sourceSpan) {\n super(type || trueCase.type, sourceSpan);\n this.condition = condition;\n this.falseCase = falseCase;\n this.trueCase = trueCase;\n }\n isEquivalent(e) {\n return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&\n this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitConditionalExpr(this, context);\n }\n}\nclass NotExpr extends Expression {\n constructor(condition, sourceSpan) {\n super(BOOL_TYPE, sourceSpan);\n this.condition = condition;\n }\n isEquivalent(e) {\n return e instanceof NotExpr && this.condition.isEquivalent(e.condition);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitNotExpr(this, context);\n }\n}\nclass FnParam {\n constructor(name, type = null) {\n this.name = name;\n this.type = type;\n }\n isEquivalent(param) {\n return this.name === param.name;\n }\n}\nclass FunctionExpr extends Expression {\n constructor(params, statements, type, sourceSpan, name) {\n super(type, sourceSpan);\n this.params = params;\n this.statements = statements;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&\n areAllEquivalent(this.statements, e.statements);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitFunctionExpr(this, context);\n }\n toDeclStmt(name, modifiers) {\n return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan);\n }\n}\nclass UnaryOperatorExpr extends Expression {\n constructor(operator, expr, type, sourceSpan, parens = true) {\n super(type || NUMBER_TYPE, sourceSpan);\n this.operator = operator;\n this.expr = expr;\n this.parens = parens;\n }\n isEquivalent(e) {\n return e instanceof UnaryOperatorExpr && this.operator === e.operator &&\n this.expr.isEquivalent(e.expr);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitUnaryOperatorExpr(this, context);\n }\n}\nclass BinaryOperatorExpr extends Expression {\n constructor(operator, lhs, rhs, type, sourceSpan, parens = true) {\n super(type || lhs.type, sourceSpan);\n this.operator = operator;\n this.rhs = rhs;\n this.parens = parens;\n this.lhs = lhs;\n }\n isEquivalent(e) {\n return e instanceof BinaryOperatorExpr && this.operator === e.operator &&\n this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitBinaryOperatorExpr(this, context);\n }\n}\nclass ReadPropExpr extends Expression {\n constructor(receiver, name, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadPropExpr(this, context);\n }\n set(value) {\n return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);\n }\n}\nclass ReadKeyExpr extends Expression {\n constructor(receiver, index, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n }\n isEquivalent(e) {\n return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadKeyExpr(this, context);\n }\n set(value) {\n return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);\n }\n}\nclass LiteralArrayExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n }\n isConstant() {\n return this.entries.every(e => e.isConstant());\n }\n isEquivalent(e) {\n return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralArrayExpr(this, context);\n }\n}\nclass LiteralMapEntry {\n constructor(key, value, quoted) {\n this.key = key;\n this.value = value;\n this.quoted = quoted;\n }\n isEquivalent(e) {\n return this.key === e.key && this.value.isEquivalent(e.value);\n }\n}\nclass LiteralMapExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n this.valueType = null;\n if (type) {\n this.valueType = type.valueType;\n }\n }\n isEquivalent(e) {\n return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);\n }\n isConstant() {\n return this.entries.every(e => e.value.isConstant());\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralMapExpr(this, context);\n }\n}\nclass CommaExpr extends Expression {\n constructor(parts, sourceSpan) {\n super(parts[parts.length - 1].type, sourceSpan);\n this.parts = parts;\n }\n isEquivalent(e) {\n return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitCommaExpr(this, context);\n }\n}\nconst NULL_EXPR = new LiteralExpr(null, null, null);\nconst TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);\n//// Statements\nvar StmtModifier;\n(function (StmtModifier) {\n StmtModifier[StmtModifier[\"None\"] = 0] = \"None\";\n StmtModifier[StmtModifier[\"Final\"] = 1] = \"Final\";\n StmtModifier[StmtModifier[\"Private\"] = 2] = \"Private\";\n StmtModifier[StmtModifier[\"Exported\"] = 4] = \"Exported\";\n StmtModifier[StmtModifier[\"Static\"] = 8] = \"Static\";\n})(StmtModifier || (StmtModifier = {}));\nclass LeadingComment {\n constructor(text, multiline, trailingNewline) {\n this.text = text;\n this.multiline = multiline;\n this.trailingNewline = trailingNewline;\n }\n toString() {\n return this.multiline ? ` ${this.text} ` : this.text;\n }\n}\nclass JSDocComment extends LeadingComment {\n constructor(tags) {\n super('', /* multiline */ true, /* trailingNewline */ true);\n this.tags = tags;\n }\n toString() {\n return serializeTags(this.tags);\n }\n}\nclass Statement {\n constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) {\n this.modifiers = modifiers;\n this.sourceSpan = sourceSpan;\n this.leadingComments = leadingComments;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n addLeadingComment(leadingComment) {\n var _a;\n this.leadingComments = (_a = this.leadingComments) !== null && _a !== void 0 ? _a : [];\n this.leadingComments.push(leadingComment);\n }\n}\nclass DeclareVarStmt extends Statement {\n constructor(name, value, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.value = value;\n this.type = type || (value && value.type) || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareVarStmt && this.name === stmt.name &&\n (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareVarStmt(this, context);\n }\n}\nclass DeclareFunctionStmt extends Statement {\n constructor(name, params, statements, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.params = params;\n this.statements = statements;\n this.type = type || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&\n areAllEquivalent(this.statements, stmt.statements);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareFunctionStmt(this, context);\n }\n}\nclass ExpressionStatement extends Statement {\n constructor(expr, sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.expr = expr;\n }\n isEquivalent(stmt) {\n return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);\n }\n visitStatement(visitor, context) {\n return visitor.visitExpressionStmt(this, context);\n }\n}\nclass ReturnStatement extends Statement {\n constructor(value, sourceSpan = null, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.value = value;\n }\n isEquivalent(stmt) {\n return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitReturnStmt(this, context);\n }\n}\nclass IfStmt extends Statement {\n constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.condition = condition;\n this.trueCase = trueCase;\n this.falseCase = falseCase;\n }\n isEquivalent(stmt) {\n return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&\n areAllEquivalent(this.trueCase, stmt.trueCase) &&\n areAllEquivalent(this.falseCase, stmt.falseCase);\n }\n visitStatement(visitor, context) {\n return visitor.visitIfStmt(this, context);\n }\n}\nclass RecursiveAstVisitor$1 {\n visitType(ast, context) {\n return ast;\n }\n visitExpression(ast, context) {\n if (ast.type) {\n ast.type.visitType(this, context);\n }\n return ast;\n }\n visitBuiltinType(type, context) {\n return this.visitType(type, context);\n }\n visitExpressionType(type, context) {\n type.value.visitExpression(this, context);\n if (type.typeParams !== null) {\n type.typeParams.forEach(param => this.visitType(param, context));\n }\n return this.visitType(type, context);\n }\n visitArrayType(type, context) {\n return this.visitType(type, context);\n }\n visitMapType(type, context) {\n return this.visitType(type, context);\n }\n visitWrappedNodeExpr(ast, context) {\n return ast;\n }\n visitTypeofExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitReadVarExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitWriteVarExpr(ast, context) {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWriteKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWritePropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitInvokeFunctionExpr(ast, context) {\n ast.fn.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitTaggedTemplateExpr(ast, context) {\n ast.tag.visitExpression(this, context);\n this.visitAllExpressions(ast.template.expressions, context);\n return this.visitExpression(ast, context);\n }\n visitInstantiateExpr(ast, context) {\n ast.classExpr.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitLocalizedString(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitExternalExpr(ast, context) {\n if (ast.typeParams) {\n ast.typeParams.forEach(type => type.visitType(this, context));\n }\n return this.visitExpression(ast, context);\n }\n visitConditionalExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n ast.trueCase.visitExpression(this, context);\n ast.falseCase.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitNotExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitFunctionExpr(ast, context) {\n this.visitAllStatements(ast.statements, context);\n return this.visitExpression(ast, context);\n }\n visitUnaryOperatorExpr(ast, context) {\n ast.expr.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitBinaryOperatorExpr(ast, context) {\n ast.lhs.visitExpression(this, context);\n ast.rhs.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadPropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralArrayExpr(ast, context) {\n this.visitAllExpressions(ast.entries, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralMapExpr(ast, context) {\n ast.entries.forEach((entry) => entry.value.visitExpression(this, context));\n return this.visitExpression(ast, context);\n }\n visitCommaExpr(ast, context) {\n this.visitAllExpressions(ast.parts, context);\n return this.visitExpression(ast, context);\n }\n visitAllExpressions(exprs, context) {\n exprs.forEach(expr => expr.visitExpression(this, context));\n }\n visitDeclareVarStmt(stmt, context) {\n if (stmt.value) {\n stmt.value.visitExpression(this, context);\n }\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitDeclareFunctionStmt(stmt, context) {\n this.visitAllStatements(stmt.statements, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitExpressionStmt(stmt, context) {\n stmt.expr.visitExpression(this, context);\n return stmt;\n }\n visitReturnStmt(stmt, context) {\n stmt.value.visitExpression(this, context);\n return stmt;\n }\n visitIfStmt(stmt, context) {\n stmt.condition.visitExpression(this, context);\n this.visitAllStatements(stmt.trueCase, context);\n this.visitAllStatements(stmt.falseCase, context);\n return stmt;\n }\n visitAllStatements(stmts, context) {\n stmts.forEach(stmt => stmt.visitStatement(this, context));\n }\n}\nfunction leadingComment(text, multiline = false, trailingNewline = true) {\n return new LeadingComment(text, multiline, trailingNewline);\n}\nfunction jsDocComment(tags = []) {\n return new JSDocComment(tags);\n}\nfunction variable(name, type, sourceSpan) {\n return new ReadVarExpr(name, type, sourceSpan);\n}\nfunction importExpr(id, typeParams = null, sourceSpan) {\n return new ExternalExpr(id, null, typeParams, sourceSpan);\n}\nfunction importType(id, typeParams, typeModifiers) {\n return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;\n}\nfunction expressionType(expr, typeModifiers, typeParams) {\n return new ExpressionType(expr, typeModifiers, typeParams);\n}\nfunction typeofExpr(expr) {\n return new TypeofExpr(expr);\n}\nfunction literalArr(values, type, sourceSpan) {\n return new LiteralArrayExpr(values, type, sourceSpan);\n}\nfunction literalMap(values, type = null) {\n return new LiteralMapExpr(values.map(e => new LiteralMapEntry(e.key, e.value, e.quoted)), type, null);\n}\nfunction unary(operator, expr, type, sourceSpan) {\n return new UnaryOperatorExpr(operator, expr, type, sourceSpan);\n}\nfunction not(expr, sourceSpan) {\n return new NotExpr(expr, sourceSpan);\n}\nfunction fn(params, body, type, sourceSpan, name) {\n return new FunctionExpr(params, body, type, sourceSpan, name);\n}\nfunction ifStmt(condition, thenClause, elseClause, sourceSpan, leadingComments) {\n return new IfStmt(condition, thenClause, elseClause, sourceSpan, leadingComments);\n}\nfunction taggedTemplate(tag, template, type, sourceSpan) {\n return new TaggedTemplateExpr(tag, template, type, sourceSpan);\n}\nfunction literal(value, type, sourceSpan) {\n return new LiteralExpr(value, type, sourceSpan);\n}\nfunction localizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan) {\n return new LocalizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan);\n}\nfunction isNull(exp) {\n return exp instanceof LiteralExpr && exp.value === null;\n}\n/*\n * Serializes a `Tag` into a string.\n * Returns a string like \" @foo {bar} baz\" (note the leading whitespace before `@foo`).\n */\nfunction tagToString(tag) {\n let out = '';\n if (tag.tagName) {\n out += ` @${tag.tagName}`;\n }\n if (tag.text) {\n if (tag.text.match(/\\/\\*|\\*\\//)) {\n throw new Error('JSDoc text cannot contain \"/*\" and \"*/\"');\n }\n out += ' ' + tag.text.replace(/@/g, '\\\\@');\n }\n return out;\n}\nfunction serializeTags(tags) {\n if (tags.length === 0)\n return '';\n if (tags.length === 1 && tags[0].tagName && !tags[0].text) {\n // The JSDOC comment is a single simple tag: e.g `/** @tagname */`.\n return `*${tagToString(tags[0])} `;\n }\n let out = '*\\n';\n for (const tag of tags) {\n out += ' *';\n // If the tagToString is multi-line, insert \" * \" prefixes on lines.\n out += tagToString(tag).replace(/\\n/g, '\\n * ');\n out += '\\n';\n }\n out += ' ';\n return out;\n}\n\nvar output_ast = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get TypeModifier () { return TypeModifier; },\n Type: Type,\n get BuiltinTypeName () { return BuiltinTypeName; },\n BuiltinType: BuiltinType,\n ExpressionType: ExpressionType,\n ArrayType: ArrayType,\n MapType: MapType,\n DYNAMIC_TYPE: DYNAMIC_TYPE,\n INFERRED_TYPE: INFERRED_TYPE,\n BOOL_TYPE: BOOL_TYPE,\n INT_TYPE: INT_TYPE,\n NUMBER_TYPE: NUMBER_TYPE,\n STRING_TYPE: STRING_TYPE,\n FUNCTION_TYPE: FUNCTION_TYPE,\n NONE_TYPE: NONE_TYPE,\n get UnaryOperator () { return UnaryOperator; },\n get BinaryOperator () { return BinaryOperator; },\n nullSafeIsEquivalent: nullSafeIsEquivalent,\n areAllEquivalent: areAllEquivalent,\n Expression: Expression,\n ReadVarExpr: ReadVarExpr,\n TypeofExpr: TypeofExpr,\n WrappedNodeExpr: WrappedNodeExpr,\n WriteVarExpr: WriteVarExpr,\n WriteKeyExpr: WriteKeyExpr,\n WritePropExpr: WritePropExpr,\n InvokeFunctionExpr: InvokeFunctionExpr,\n TaggedTemplateExpr: TaggedTemplateExpr,\n InstantiateExpr: InstantiateExpr,\n LiteralExpr: LiteralExpr,\n TemplateLiteral: TemplateLiteral,\n TemplateLiteralElement: TemplateLiteralElement,\n LiteralPiece: LiteralPiece,\n PlaceholderPiece: PlaceholderPiece,\n LocalizedString: LocalizedString,\n ExternalExpr: ExternalExpr,\n ExternalReference: ExternalReference,\n ConditionalExpr: ConditionalExpr,\n NotExpr: NotExpr,\n FnParam: FnParam,\n FunctionExpr: FunctionExpr,\n UnaryOperatorExpr: UnaryOperatorExpr,\n BinaryOperatorExpr: BinaryOperatorExpr,\n ReadPropExpr: ReadPropExpr,\n ReadKeyExpr: ReadKeyExpr,\n LiteralArrayExpr: LiteralArrayExpr,\n LiteralMapEntry: LiteralMapEntry,\n LiteralMapExpr: LiteralMapExpr,\n CommaExpr: CommaExpr,\n NULL_EXPR: NULL_EXPR,\n TYPED_NULL_EXPR: TYPED_NULL_EXPR,\n get StmtModifier () { return StmtModifier; },\n LeadingComment: LeadingComment,\n JSDocComment: JSDocComment,\n Statement: Statement,\n DeclareVarStmt: DeclareVarStmt,\n DeclareFunctionStmt: DeclareFunctionStmt,\n ExpressionStatement: ExpressionStatement,\n ReturnStatement: ReturnStatement,\n IfStmt: IfStmt,\n RecursiveAstVisitor: RecursiveAstVisitor$1,\n leadingComment: leadingComment,\n jsDocComment: jsDocComment,\n variable: variable,\n importExpr: importExpr,\n importType: importType,\n expressionType: expressionType,\n typeofExpr: typeofExpr,\n literalArr: literalArr,\n literalMap: literalMap,\n unary: unary,\n not: not,\n fn: fn,\n ifStmt: ifStmt,\n taggedTemplate: taggedTemplate,\n literal: literal,\n localizedString: localizedString,\n isNull: isNull\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CONSTANT_PREFIX = '_c';\n/**\n * `ConstantPool` tries to reuse literal factories when two or more literals are identical.\n * We determine whether literals are identical by creating a key out of their AST using the\n * `KeyVisitor`. This constant is used to replace dynamic expressions which can't be safely\n * converted into a key. E.g. given an expression `{foo: bar()}`, since we don't know what\n * the result of `bar` will be, we create a key that looks like `{foo: }`. Note\n * that we use a variable, rather than something like `null` in order to avoid collisions.\n */\nconst UNKNOWN_VALUE_KEY = variable('');\n/**\n * Context to use when producing a key.\n *\n * This ensures we see the constant not the reference variable when producing\n * a key.\n */\nconst KEY_CONTEXT = {};\n/**\n * Generally all primitive values are excluded from the `ConstantPool`, but there is an exclusion\n * for strings that reach a certain length threshold. This constant defines the length threshold for\n * strings.\n */\nconst POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50;\n/**\n * A node that is a place-holder that allows the node to be replaced when the actual\n * node is known.\n *\n * This allows the constant pool to change an expression from a direct reference to\n * a constant to a shared constant. It returns a fix-up node that is later allowed to\n * change the referenced expression.\n */\nclass FixupExpression extends Expression {\n constructor(resolved) {\n super(resolved.type);\n this.resolved = resolved;\n this.original = resolved;\n }\n visitExpression(visitor, context) {\n if (context === KEY_CONTEXT) {\n // When producing a key we want to traverse the constant not the\n // variable used to refer to it.\n return this.original.visitExpression(visitor, context);\n }\n else {\n return this.resolved.visitExpression(visitor, context);\n }\n }\n isEquivalent(e) {\n return e instanceof FixupExpression && this.resolved.isEquivalent(e.resolved);\n }\n isConstant() {\n return true;\n }\n fixup(expression) {\n this.resolved = expression;\n this.shared = true;\n }\n}\n/**\n * A constant pool allows a code emitter to share constant in an output context.\n *\n * The constant pool also supports sharing access to ivy definitions references.\n */\nclass ConstantPool {\n constructor(isClosureCompilerEnabled = false) {\n this.isClosureCompilerEnabled = isClosureCompilerEnabled;\n this.statements = [];\n this.literals = new Map();\n this.literalFactories = new Map();\n this.nextNameIndex = 0;\n }\n getConstLiteral(literal, forceShared) {\n if ((literal instanceof LiteralExpr && !isLongStringLiteral(literal)) ||\n literal instanceof FixupExpression) {\n // Do no put simple literals into the constant pool or try to produce a constant for a\n // reference to a constant.\n return literal;\n }\n const key = this.keyOf(literal);\n let fixup = this.literals.get(key);\n let newValue = false;\n if (!fixup) {\n fixup = new FixupExpression(literal);\n this.literals.set(key, fixup);\n newValue = true;\n }\n if ((!newValue && !fixup.shared) || (newValue && forceShared)) {\n // Replace the expression with a variable\n const name = this.freshName();\n let definition;\n let usage;\n if (this.isClosureCompilerEnabled && isLongStringLiteral(literal)) {\n // For string literals, Closure will **always** inline the string at\n // **all** usages, duplicating it each time. For large strings, this\n // unnecessarily bloats bundle size. To work around this restriction, we\n // wrap the string in a function, and call that function for each usage.\n // This tricks Closure into using inline logic for functions instead of\n // string literals. Function calls are only inlined if the body is small\n // enough to be worth it. By doing this, very large strings will be\n // shared across multiple usages, rather than duplicating the string at\n // each usage site.\n //\n // const myStr = function() { return \"very very very long string\"; };\n // const usage1 = myStr();\n // const usage2 = myStr();\n definition = variable(name).set(new FunctionExpr([], // Params.\n [\n // Statements.\n new ReturnStatement(literal),\n ]));\n usage = variable(name).callFn([]);\n }\n else {\n // Just declare and use the variable directly, without a function call\n // indirection. This saves a few bytes and avoids an unnecessary call.\n definition = variable(name).set(literal);\n usage = variable(name);\n }\n this.statements.push(definition.toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n fixup.fixup(usage);\n }\n return fixup;\n }\n getLiteralFactory(literal) {\n // Create a pure function that builds an array of a mix of constant and variable expressions\n if (literal instanceof LiteralArrayExpr) {\n const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);\n const key = this.keyOf(literalArr(argumentsForKey));\n return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries));\n }\n else {\n const expressionForKey = literalMap(literal.entries.map(e => ({\n key: e.key,\n value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,\n quoted: e.quoted\n })));\n const key = this.keyOf(expressionForKey);\n return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({\n key: literal.entries[index].key,\n value,\n quoted: literal.entries[index].quoted\n }))));\n }\n }\n _getLiteralFactory(key, values, resultMap) {\n let literalFactory = this.literalFactories.get(key);\n const literalFactoryArguments = values.filter((e => !e.isConstant()));\n if (!literalFactory) {\n const resultExpressions = values.map((e, index) => e.isConstant() ? this.getConstLiteral(e, true) : variable(`a${index}`));\n const parameters = resultExpressions.filter(isVariable).map(e => new FnParam(e.name, DYNAMIC_TYPE));\n const pureFunctionDeclaration = fn(parameters, [new ReturnStatement(resultMap(resultExpressions))], INFERRED_TYPE);\n const name = this.freshName();\n this.statements.push(variable(name)\n .set(pureFunctionDeclaration)\n .toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n literalFactory = variable(name);\n this.literalFactories.set(key, literalFactory);\n }\n return { literalFactory, literalFactoryArguments };\n }\n /**\n * Produce a unique name.\n *\n * The name might be unique among different prefixes if any of the prefixes end in\n * a digit so the prefix should be a constant string (not based on user input) and\n * must not end in a digit.\n */\n uniqueName(prefix) {\n return `${prefix}${this.nextNameIndex++}`;\n }\n freshName() {\n return this.uniqueName(CONSTANT_PREFIX);\n }\n keyOf(expression) {\n return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);\n }\n}\n/**\n * Visitor used to determine if 2 expressions are equivalent and can be shared in the\n * `ConstantPool`.\n *\n * When the id (string) generated by the visitor is equal, expressions are considered equivalent.\n */\nclass KeyVisitor {\n constructor() {\n this.visitWrappedNodeExpr = invalid$1;\n this.visitWriteVarExpr = invalid$1;\n this.visitWriteKeyExpr = invalid$1;\n this.visitWritePropExpr = invalid$1;\n this.visitInvokeFunctionExpr = invalid$1;\n this.visitTaggedTemplateExpr = invalid$1;\n this.visitInstantiateExpr = invalid$1;\n this.visitConditionalExpr = invalid$1;\n this.visitNotExpr = invalid$1;\n this.visitAssertNotNullExpr = invalid$1;\n this.visitCastExpr = invalid$1;\n this.visitFunctionExpr = invalid$1;\n this.visitUnaryOperatorExpr = invalid$1;\n this.visitBinaryOperatorExpr = invalid$1;\n this.visitReadPropExpr = invalid$1;\n this.visitReadKeyExpr = invalid$1;\n this.visitCommaExpr = invalid$1;\n this.visitLocalizedString = invalid$1;\n }\n visitLiteralExpr(ast) {\n return `${typeof ast.value === 'string' ? '\"' + ast.value + '\"' : ast.value}`;\n }\n visitLiteralArrayExpr(ast, context) {\n return `[${ast.entries.map(entry => entry.visitExpression(this, context)).join(',')}]`;\n }\n visitLiteralMapExpr(ast, context) {\n const mapKey = (entry) => {\n const quote = entry.quoted ? '\"' : '';\n return `${quote}${entry.key}${quote}`;\n };\n const mapEntry = (entry) => `${mapKey(entry)}:${entry.value.visitExpression(this, context)}`;\n return `{${ast.entries.map(mapEntry).join(',')}`;\n }\n visitExternalExpr(ast) {\n return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :\n `EX:${ast.value.runtime.name}`;\n }\n visitReadVarExpr(node) {\n return `VAR:${node.name}`;\n }\n visitTypeofExpr(node, context) {\n return `TYPEOF:${node.expr.visitExpression(this, context)}`;\n }\n}\nfunction invalid$1(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction isVariable(e) {\n return e instanceof ReadVarExpr;\n}\nfunction isLongStringLiteral(expr) {\n return expr instanceof LiteralExpr && typeof expr.value === 'string' &&\n expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CORE = '@angular/core';\nclass Identifiers {\n}\n/* Methods */\nIdentifiers.NEW_METHOD = 'factory';\nIdentifiers.TRANSFORM_METHOD = 'transform';\nIdentifiers.PATCH_DEPS = 'patchedDeps';\nIdentifiers.core = { name: null, moduleName: CORE };\n/* Instructions */\nIdentifiers.namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE };\nIdentifiers.namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE };\nIdentifiers.namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE };\nIdentifiers.element = { name: 'ɵɵelement', moduleName: CORE };\nIdentifiers.elementStart = { name: 'ɵɵelementStart', moduleName: CORE };\nIdentifiers.elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE };\nIdentifiers.advance = { name: 'ɵɵadvance', moduleName: CORE };\nIdentifiers.syntheticHostProperty = { name: 'ɵɵsyntheticHostProperty', moduleName: CORE };\nIdentifiers.syntheticHostListener = { name: 'ɵɵsyntheticHostListener', moduleName: CORE };\nIdentifiers.attribute = { name: 'ɵɵattribute', moduleName: CORE };\nIdentifiers.attributeInterpolate1 = { name: 'ɵɵattributeInterpolate1', moduleName: CORE };\nIdentifiers.attributeInterpolate2 = { name: 'ɵɵattributeInterpolate2', moduleName: CORE };\nIdentifiers.attributeInterpolate3 = { name: 'ɵɵattributeInterpolate3', moduleName: CORE };\nIdentifiers.attributeInterpolate4 = { name: 'ɵɵattributeInterpolate4', moduleName: CORE };\nIdentifiers.attributeInterpolate5 = { name: 'ɵɵattributeInterpolate5', moduleName: CORE };\nIdentifiers.attributeInterpolate6 = { name: 'ɵɵattributeInterpolate6', moduleName: CORE };\nIdentifiers.attributeInterpolate7 = { name: 'ɵɵattributeInterpolate7', moduleName: CORE };\nIdentifiers.attributeInterpolate8 = { name: 'ɵɵattributeInterpolate8', moduleName: CORE };\nIdentifiers.attributeInterpolateV = { name: 'ɵɵattributeInterpolateV', moduleName: CORE };\nIdentifiers.classProp = { name: 'ɵɵclassProp', moduleName: CORE };\nIdentifiers.elementContainerStart = { name: 'ɵɵelementContainerStart', moduleName: CORE };\nIdentifiers.elementContainerEnd = { name: 'ɵɵelementContainerEnd', moduleName: CORE };\nIdentifiers.elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };\nIdentifiers.styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };\nIdentifiers.styleMapInterpolate1 = { name: 'ɵɵstyleMapInterpolate1', moduleName: CORE };\nIdentifiers.styleMapInterpolate2 = { name: 'ɵɵstyleMapInterpolate2', moduleName: CORE };\nIdentifiers.styleMapInterpolate3 = { name: 'ɵɵstyleMapInterpolate3', moduleName: CORE };\nIdentifiers.styleMapInterpolate4 = { name: 'ɵɵstyleMapInterpolate4', moduleName: CORE };\nIdentifiers.styleMapInterpolate5 = { name: 'ɵɵstyleMapInterpolate5', moduleName: CORE };\nIdentifiers.styleMapInterpolate6 = { name: 'ɵɵstyleMapInterpolate6', moduleName: CORE };\nIdentifiers.styleMapInterpolate7 = { name: 'ɵɵstyleMapInterpolate7', moduleName: CORE };\nIdentifiers.styleMapInterpolate8 = { name: 'ɵɵstyleMapInterpolate8', moduleName: CORE };\nIdentifiers.styleMapInterpolateV = { name: 'ɵɵstyleMapInterpolateV', moduleName: CORE };\nIdentifiers.classMap = { name: 'ɵɵclassMap', moduleName: CORE };\nIdentifiers.classMapInterpolate1 = { name: 'ɵɵclassMapInterpolate1', moduleName: CORE };\nIdentifiers.classMapInterpolate2 = { name: 'ɵɵclassMapInterpolate2', moduleName: CORE };\nIdentifiers.classMapInterpolate3 = { name: 'ɵɵclassMapInterpolate3', moduleName: CORE };\nIdentifiers.classMapInterpolate4 = { name: 'ɵɵclassMapInterpolate4', moduleName: CORE };\nIdentifiers.classMapInterpolate5 = { name: 'ɵɵclassMapInterpolate5', moduleName: CORE };\nIdentifiers.classMapInterpolate6 = { name: 'ɵɵclassMapInterpolate6', moduleName: CORE };\nIdentifiers.classMapInterpolate7 = { name: 'ɵɵclassMapInterpolate7', moduleName: CORE };\nIdentifiers.classMapInterpolate8 = { name: 'ɵɵclassMapInterpolate8', moduleName: CORE };\nIdentifiers.classMapInterpolateV = { name: 'ɵɵclassMapInterpolateV', moduleName: CORE };\nIdentifiers.styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };\nIdentifiers.stylePropInterpolate1 = { name: 'ɵɵstylePropInterpolate1', moduleName: CORE };\nIdentifiers.stylePropInterpolate2 = { name: 'ɵɵstylePropInterpolate2', moduleName: CORE };\nIdentifiers.stylePropInterpolate3 = { name: 'ɵɵstylePropInterpolate3', moduleName: CORE };\nIdentifiers.stylePropInterpolate4 = { name: 'ɵɵstylePropInterpolate4', moduleName: CORE };\nIdentifiers.stylePropInterpolate5 = { name: 'ɵɵstylePropInterpolate5', moduleName: CORE };\nIdentifiers.stylePropInterpolate6 = { name: 'ɵɵstylePropInterpolate6', moduleName: CORE };\nIdentifiers.stylePropInterpolate7 = { name: 'ɵɵstylePropInterpolate7', moduleName: CORE };\nIdentifiers.stylePropInterpolate8 = { name: 'ɵɵstylePropInterpolate8', moduleName: CORE };\nIdentifiers.stylePropInterpolateV = { name: 'ɵɵstylePropInterpolateV', moduleName: CORE };\nIdentifiers.nextContext = { name: 'ɵɵnextContext', moduleName: CORE };\nIdentifiers.resetView = { name: 'ɵɵresetView', moduleName: CORE };\nIdentifiers.templateCreate = { name: 'ɵɵtemplate', moduleName: CORE };\nIdentifiers.text = { name: 'ɵɵtext', moduleName: CORE };\nIdentifiers.enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE };\nIdentifiers.disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE };\nIdentifiers.getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE };\nIdentifiers.textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE };\nIdentifiers.textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE };\nIdentifiers.textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE };\nIdentifiers.textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE };\nIdentifiers.textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE };\nIdentifiers.textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE };\nIdentifiers.textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE };\nIdentifiers.textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE };\nIdentifiers.textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE };\nIdentifiers.textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE };\nIdentifiers.restoreView = { name: 'ɵɵrestoreView', moduleName: CORE };\nIdentifiers.pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE };\nIdentifiers.pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE };\nIdentifiers.pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE };\nIdentifiers.pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE };\nIdentifiers.pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE };\nIdentifiers.pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE };\nIdentifiers.pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE };\nIdentifiers.pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE };\nIdentifiers.pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE };\nIdentifiers.pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE };\nIdentifiers.pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE };\nIdentifiers.pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE };\nIdentifiers.pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE };\nIdentifiers.pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE };\nIdentifiers.pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };\nIdentifiers.hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE };\nIdentifiers.property = { name: 'ɵɵproperty', moduleName: CORE };\nIdentifiers.propertyInterpolate = { name: 'ɵɵpropertyInterpolate', moduleName: CORE };\nIdentifiers.propertyInterpolate1 = { name: 'ɵɵpropertyInterpolate1', moduleName: CORE };\nIdentifiers.propertyInterpolate2 = { name: 'ɵɵpropertyInterpolate2', moduleName: CORE };\nIdentifiers.propertyInterpolate3 = { name: 'ɵɵpropertyInterpolate3', moduleName: CORE };\nIdentifiers.propertyInterpolate4 = { name: 'ɵɵpropertyInterpolate4', moduleName: CORE };\nIdentifiers.propertyInterpolate5 = { name: 'ɵɵpropertyInterpolate5', moduleName: CORE };\nIdentifiers.propertyInterpolate6 = { name: 'ɵɵpropertyInterpolate6', moduleName: CORE };\nIdentifiers.propertyInterpolate7 = { name: 'ɵɵpropertyInterpolate7', moduleName: CORE };\nIdentifiers.propertyInterpolate8 = { name: 'ɵɵpropertyInterpolate8', moduleName: CORE };\nIdentifiers.propertyInterpolateV = { name: 'ɵɵpropertyInterpolateV', moduleName: CORE };\nIdentifiers.i18n = { name: 'ɵɵi18n', moduleName: CORE };\nIdentifiers.i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };\nIdentifiers.i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };\nIdentifiers.i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE };\nIdentifiers.i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE };\nIdentifiers.i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE };\nIdentifiers.i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE };\nIdentifiers.pipe = { name: 'ɵɵpipe', moduleName: CORE };\nIdentifiers.projection = { name: 'ɵɵprojection', moduleName: CORE };\nIdentifiers.projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE };\nIdentifiers.reference = { name: 'ɵɵreference', moduleName: CORE };\nIdentifiers.inject = { name: 'ɵɵinject', moduleName: CORE };\nIdentifiers.injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE };\nIdentifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };\nIdentifiers.invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE };\nIdentifiers.invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE };\nIdentifiers.templateRefExtractor = { name: 'ɵɵtemplateRefExtractor', moduleName: CORE };\nIdentifiers.forwardRef = { name: 'forwardRef', moduleName: CORE };\nIdentifiers.resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };\nIdentifiers.ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };\nIdentifiers.declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };\nIdentifiers.InjectableDeclaration = { name: 'ɵɵInjectableDeclaration', moduleName: CORE };\nIdentifiers.resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE };\nIdentifiers.resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE };\nIdentifiers.resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE };\nIdentifiers.defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE };\nIdentifiers.declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE };\nIdentifiers.setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE };\nIdentifiers.ChangeDetectionStrategy = {\n name: 'ChangeDetectionStrategy',\n moduleName: CORE,\n};\nIdentifiers.ViewEncapsulation = {\n name: 'ViewEncapsulation',\n moduleName: CORE,\n};\nIdentifiers.ComponentDeclaration = {\n name: 'ɵɵComponentDeclaration',\n moduleName: CORE,\n};\nIdentifiers.FactoryDeclaration = {\n name: 'ɵɵFactoryDeclaration',\n moduleName: CORE,\n};\nIdentifiers.declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE };\nIdentifiers.FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE };\nIdentifiers.defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE };\nIdentifiers.declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE };\nIdentifiers.DirectiveDeclaration = {\n name: 'ɵɵDirectiveDeclaration',\n moduleName: CORE,\n};\nIdentifiers.InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };\nIdentifiers.InjectorDeclaration = { name: 'ɵɵInjectorDeclaration', moduleName: CORE };\nIdentifiers.defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE };\nIdentifiers.declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE };\nIdentifiers.NgModuleDeclaration = {\n name: 'ɵɵNgModuleDeclaration',\n moduleName: CORE,\n};\nIdentifiers.ModuleWithProviders = {\n name: 'ModuleWithProviders',\n moduleName: CORE,\n};\nIdentifiers.defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE };\nIdentifiers.declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE };\nIdentifiers.setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE };\nIdentifiers.registerNgModuleType = { name: 'ɵɵregisterNgModuleType', moduleName: CORE };\nIdentifiers.PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE };\nIdentifiers.definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE };\nIdentifiers.declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE };\nIdentifiers.declareClassMetadata = { name: 'ɵɵngDeclareClassMetadata', moduleName: CORE };\nIdentifiers.setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };\nIdentifiers.queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE };\nIdentifiers.viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE };\nIdentifiers.loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE };\nIdentifiers.contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE };\nIdentifiers.NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE };\nIdentifiers.InheritDefinitionFeature = { name: 'ɵɵInheritDefinitionFeature', moduleName: CORE };\nIdentifiers.CopyDefinitionFeature = { name: 'ɵɵCopyDefinitionFeature', moduleName: CORE };\nIdentifiers.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE };\nIdentifiers.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE };\nIdentifiers.listener = { name: 'ɵɵlistener', moduleName: CORE };\nIdentifiers.getInheritedFactory = {\n name: 'ɵɵgetInheritedFactory',\n moduleName: CORE,\n};\n// sanitization-related functions\nIdentifiers.sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE };\nIdentifiers.sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE };\nIdentifiers.sanitizeResourceUrl = { name: 'ɵɵsanitizeResourceUrl', moduleName: CORE };\nIdentifiers.sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE };\nIdentifiers.sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE };\nIdentifiers.sanitizeUrlOrResourceUrl = { name: 'ɵɵsanitizeUrlOrResourceUrl', moduleName: CORE };\nIdentifiers.trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };\nIdentifiers.trustConstantResourceUrl = { name: 'ɵɵtrustConstantResourceUrl', moduleName: CORE };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\nconst VERSION$1 = 3;\nconst JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';\nclass SourceMapGenerator {\n constructor(file = null) {\n this.file = file;\n this.sourcesContent = new Map();\n this.lines = [];\n this.lastCol0 = 0;\n this.hasMappings = false;\n }\n // The content is `null` when the content is expected to be loaded using the URL\n addSource(url, content = null) {\n if (!this.sourcesContent.has(url)) {\n this.sourcesContent.set(url, content);\n }\n return this;\n }\n addLine() {\n this.lines.push([]);\n this.lastCol0 = 0;\n return this;\n }\n addMapping(col0, sourceUrl, sourceLine0, sourceCol0) {\n if (!this.currentLine) {\n throw new Error(`A line must be added before mappings can be added`);\n }\n if (sourceUrl != null && !this.sourcesContent.has(sourceUrl)) {\n throw new Error(`Unknown source file \"${sourceUrl}\"`);\n }\n if (col0 == null) {\n throw new Error(`The column in the generated code must be provided`);\n }\n if (col0 < this.lastCol0) {\n throw new Error(`Mapping should be added in output order`);\n }\n if (sourceUrl && (sourceLine0 == null || sourceCol0 == null)) {\n throw new Error(`The source location must be provided when a source url is provided`);\n }\n this.hasMappings = true;\n this.lastCol0 = col0;\n this.currentLine.push({ col0, sourceUrl, sourceLine0, sourceCol0 });\n return this;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get currentLine() {\n return this.lines.slice(-1)[0];\n }\n toJSON() {\n if (!this.hasMappings) {\n return null;\n }\n const sourcesIndex = new Map();\n const sources = [];\n const sourcesContent = [];\n Array.from(this.sourcesContent.keys()).forEach((url, i) => {\n sourcesIndex.set(url, i);\n sources.push(url);\n sourcesContent.push(this.sourcesContent.get(url) || null);\n });\n let mappings = '';\n let lastCol0 = 0;\n let lastSourceIndex = 0;\n let lastSourceLine0 = 0;\n let lastSourceCol0 = 0;\n this.lines.forEach(segments => {\n lastCol0 = 0;\n mappings += segments\n .map(segment => {\n // zero-based starting column of the line in the generated code\n let segAsStr = toBase64VLQ(segment.col0 - lastCol0);\n lastCol0 = segment.col0;\n if (segment.sourceUrl != null) {\n // zero-based index into the “sources” list\n segAsStr +=\n toBase64VLQ(sourcesIndex.get(segment.sourceUrl) - lastSourceIndex);\n lastSourceIndex = sourcesIndex.get(segment.sourceUrl);\n // the zero-based starting line in the original source\n segAsStr += toBase64VLQ(segment.sourceLine0 - lastSourceLine0);\n lastSourceLine0 = segment.sourceLine0;\n // the zero-based starting column in the original source\n segAsStr += toBase64VLQ(segment.sourceCol0 - lastSourceCol0);\n lastSourceCol0 = segment.sourceCol0;\n }\n return segAsStr;\n })\n .join(',');\n mappings += ';';\n });\n mappings = mappings.slice(0, -1);\n return {\n 'file': this.file || '',\n 'version': VERSION$1,\n 'sourceRoot': '',\n 'sources': sources,\n 'sourcesContent': sourcesContent,\n 'mappings': mappings,\n };\n }\n toJsComment() {\n return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) :\n '';\n }\n}\nfunction toBase64String(value) {\n let b64 = '';\n const encoded = utf8Encode(value);\n for (let i = 0; i < encoded.length;) {\n const i1 = encoded[i++];\n const i2 = i < encoded.length ? encoded[i++] : null;\n const i3 = i < encoded.length ? encoded[i++] : null;\n b64 += toBase64Digit(i1 >> 2);\n b64 += toBase64Digit(((i1 & 3) << 4) | (i2 === null ? 0 : i2 >> 4));\n b64 += i2 === null ? '=' : toBase64Digit(((i2 & 15) << 2) | (i3 === null ? 0 : i3 >> 6));\n b64 += i2 === null || i3 === null ? '=' : toBase64Digit(i3 & 63);\n }\n return b64;\n}\nfunction toBase64VLQ(value) {\n value = value < 0 ? ((-value) << 1) + 1 : value << 1;\n let out = '';\n do {\n let digit = value & 31;\n value = value >> 5;\n if (value > 0) {\n digit = digit | 32;\n }\n out += toBase64Digit(digit);\n } while (value > 0);\n return out;\n}\nconst B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfunction toBase64Digit(value) {\n if (value < 0 || value >= 64) {\n throw new Error(`Can only encode value in the range [0, 63]`);\n }\n return B64_DIGITS[value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\\\|\\n|\\r|\\$/g;\nconst _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\nconst _INDENT_WITH = ' ';\nclass _EmittedLine {\n constructor(indent) {\n this.indent = indent;\n this.partsLength = 0;\n this.parts = [];\n this.srcSpans = [];\n }\n}\nclass EmitterVisitorContext {\n constructor(_indent) {\n this._indent = _indent;\n this._lines = [new _EmittedLine(_indent)];\n }\n static createRoot() {\n return new EmitterVisitorContext(0);\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get _currentLine() {\n return this._lines[this._lines.length - 1];\n }\n println(from, lastPart = '') {\n this.print(from || null, lastPart, true);\n }\n lineIsEmpty() {\n return this._currentLine.parts.length === 0;\n }\n lineLength() {\n return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength;\n }\n print(from, part, newLine = false) {\n if (part.length > 0) {\n this._currentLine.parts.push(part);\n this._currentLine.partsLength += part.length;\n this._currentLine.srcSpans.push(from && from.sourceSpan || null);\n }\n if (newLine) {\n this._lines.push(new _EmittedLine(this._indent));\n }\n }\n removeEmptyLastLine() {\n if (this.lineIsEmpty()) {\n this._lines.pop();\n }\n }\n incIndent() {\n this._indent++;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n decIndent() {\n this._indent--;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n toSource() {\n return this.sourceLines\n .map(l => l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : '')\n .join('\\n');\n }\n toSourceMapGenerator(genFilePath, startsAtLine = 0) {\n const map = new SourceMapGenerator(genFilePath);\n let firstOffsetMapped = false;\n const mapFirstOffsetIfNeeded = () => {\n if (!firstOffsetMapped) {\n // Add a single space so that tools won't try to load the file from disk.\n // Note: We are using virtual urls like `ng:///`, so we have to\n // provide a content here.\n map.addSource(genFilePath, ' ').addMapping(0, genFilePath, 0, 0);\n firstOffsetMapped = true;\n }\n };\n for (let i = 0; i < startsAtLine; i++) {\n map.addLine();\n mapFirstOffsetIfNeeded();\n }\n this.sourceLines.forEach((line, lineIdx) => {\n map.addLine();\n const spans = line.srcSpans;\n const parts = line.parts;\n let col0 = line.indent * _INDENT_WITH.length;\n let spanIdx = 0;\n // skip leading parts without source spans\n while (spanIdx < spans.length && !spans[spanIdx]) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n if (spanIdx < spans.length && lineIdx === 0 && col0 === 0) {\n firstOffsetMapped = true;\n }\n else {\n mapFirstOffsetIfNeeded();\n }\n while (spanIdx < spans.length) {\n const span = spans[spanIdx];\n const source = span.start.file;\n const sourceLine = span.start.line;\n const sourceCol = span.start.col;\n map.addSource(source.url, source.content)\n .addMapping(col0, source.url, sourceLine, sourceCol);\n col0 += parts[spanIdx].length;\n spanIdx++;\n // assign parts without span or the same span to the previous segment\n while (spanIdx < spans.length && (span === spans[spanIdx] || !spans[spanIdx])) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n }\n });\n return map;\n }\n spanOf(line, column) {\n const emittedLine = this._lines[line];\n if (emittedLine) {\n let columnsLeft = column - _createIndent(emittedLine.indent).length;\n for (let partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) {\n const part = emittedLine.parts[partIndex];\n if (part.length > columnsLeft) {\n return emittedLine.srcSpans[partIndex];\n }\n columnsLeft -= part.length;\n }\n }\n return null;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get sourceLines() {\n if (this._lines.length && this._lines[this._lines.length - 1].parts.length === 0) {\n return this._lines.slice(0, -1);\n }\n return this._lines;\n }\n}\nclass AbstractEmitterVisitor {\n constructor(_escapeDollarInStrings) {\n this._escapeDollarInStrings = _escapeDollarInStrings;\n }\n printLeadingComments(stmt, ctx) {\n if (stmt.leadingComments === undefined) {\n return;\n }\n for (const comment of stmt.leadingComments) {\n if (comment instanceof JSDocComment) {\n ctx.print(stmt, `/*${comment.toString()}*/`, comment.trailingNewline);\n }\n else {\n if (comment.multiline) {\n ctx.print(stmt, `/* ${comment.text} */`, comment.trailingNewline);\n }\n else {\n comment.text.split('\\n').forEach((line) => {\n ctx.println(stmt, `// ${line}`);\n });\n }\n }\n }\n }\n visitExpressionStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n stmt.expr.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitReturnStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `return `);\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitIfStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `if (`);\n stmt.condition.visitExpression(this, ctx);\n ctx.print(stmt, `) {`);\n const hasElseCase = stmt.falseCase != null && stmt.falseCase.length > 0;\n if (stmt.trueCase.length <= 1 && !hasElseCase) {\n ctx.print(stmt, ` `);\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.removeEmptyLastLine();\n ctx.print(stmt, ` `);\n }\n else {\n ctx.println();\n ctx.incIndent();\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.decIndent();\n if (hasElseCase) {\n ctx.println(stmt, `} else {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.falseCase, ctx);\n ctx.decIndent();\n }\n }\n ctx.println(stmt, `}`);\n return null;\n }\n visitWriteVarExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n ctx.print(expr, `${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWriteKeyExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `[`);\n expr.index.visitExpression(this, ctx);\n ctx.print(expr, `] = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWritePropExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `.${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitInvokeFunctionExpr(expr, ctx) {\n expr.fn.visitExpression(this, ctx);\n ctx.print(expr, `(`);\n this.visitAllExpressions(expr.args, ctx, ',');\n ctx.print(expr, `)`);\n return null;\n }\n visitTaggedTemplateExpr(expr, ctx) {\n expr.tag.visitExpression(this, ctx);\n ctx.print(expr, '`' + expr.template.elements[0].rawText);\n for (let i = 1; i < expr.template.elements.length; i++) {\n ctx.print(expr, '${');\n expr.template.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(expr, `}${expr.template.elements[i].rawText}`);\n }\n ctx.print(expr, '`');\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Abstract emitter cannot visit WrappedNodeExpr.');\n }\n visitTypeofExpr(expr, ctx) {\n ctx.print(expr, 'typeof ');\n expr.expr.visitExpression(this, ctx);\n }\n visitReadVarExpr(ast, ctx) {\n ctx.print(ast, ast.name);\n return null;\n }\n visitInstantiateExpr(ast, ctx) {\n ctx.print(ast, `new `);\n ast.classExpr.visitExpression(this, ctx);\n ctx.print(ast, `(`);\n this.visitAllExpressions(ast.args, ctx, ',');\n ctx.print(ast, `)`);\n return null;\n }\n visitLiteralExpr(ast, ctx) {\n const value = ast.value;\n if (typeof value === 'string') {\n ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings));\n }\n else {\n ctx.print(ast, `${value}`);\n }\n return null;\n }\n visitLocalizedString(ast, ctx) {\n const head = ast.serializeI18nHead();\n ctx.print(ast, '$localize `' + head.raw);\n for (let i = 1; i < ast.messageParts.length; i++) {\n ctx.print(ast, '${');\n ast.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(ast, `}${ast.serializeI18nTemplatePart(i).raw}`);\n }\n ctx.print(ast, '`');\n return null;\n }\n visitConditionalExpr(ast, ctx) {\n ctx.print(ast, `(`);\n ast.condition.visitExpression(this, ctx);\n ctx.print(ast, '? ');\n ast.trueCase.visitExpression(this, ctx);\n ctx.print(ast, ': ');\n ast.falseCase.visitExpression(this, ctx);\n ctx.print(ast, `)`);\n return null;\n }\n visitNotExpr(ast, ctx) {\n ctx.print(ast, '!');\n ast.condition.visitExpression(this, ctx);\n return null;\n }\n visitUnaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case UnaryOperator.Plus:\n opStr = '+';\n break;\n case UnaryOperator.Minus:\n opStr = '-';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ctx.print(ast, opStr);\n ast.expr.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitBinaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case BinaryOperator.Equals:\n opStr = '==';\n break;\n case BinaryOperator.Identical:\n opStr = '===';\n break;\n case BinaryOperator.NotEquals:\n opStr = '!=';\n break;\n case BinaryOperator.NotIdentical:\n opStr = '!==';\n break;\n case BinaryOperator.And:\n opStr = '&&';\n break;\n case BinaryOperator.BitwiseAnd:\n opStr = '&';\n break;\n case BinaryOperator.Or:\n opStr = '||';\n break;\n case BinaryOperator.Plus:\n opStr = '+';\n break;\n case BinaryOperator.Minus:\n opStr = '-';\n break;\n case BinaryOperator.Divide:\n opStr = '/';\n break;\n case BinaryOperator.Multiply:\n opStr = '*';\n break;\n case BinaryOperator.Modulo:\n opStr = '%';\n break;\n case BinaryOperator.Lower:\n opStr = '<';\n break;\n case BinaryOperator.LowerEquals:\n opStr = '<=';\n break;\n case BinaryOperator.Bigger:\n opStr = '>';\n break;\n case BinaryOperator.BiggerEquals:\n opStr = '>=';\n break;\n case BinaryOperator.NullishCoalesce:\n opStr = '??';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ast.lhs.visitExpression(this, ctx);\n ctx.print(ast, ` ${opStr} `);\n ast.rhs.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitReadPropExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `.`);\n ctx.print(ast, ast.name);\n return null;\n }\n visitReadKeyExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `[`);\n ast.index.visitExpression(this, ctx);\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralArrayExpr(ast, ctx) {\n ctx.print(ast, `[`);\n this.visitAllExpressions(ast.entries, ctx, ',');\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralMapExpr(ast, ctx) {\n ctx.print(ast, `{`);\n this.visitAllObjects(entry => {\n ctx.print(ast, `${escapeIdentifier(entry.key, this._escapeDollarInStrings, entry.quoted)}:`);\n entry.value.visitExpression(this, ctx);\n }, ast.entries, ctx, ',');\n ctx.print(ast, `}`);\n return null;\n }\n visitCommaExpr(ast, ctx) {\n ctx.print(ast, '(');\n this.visitAllExpressions(ast.parts, ctx, ',');\n ctx.print(ast, ')');\n return null;\n }\n visitAllExpressions(expressions, ctx, separator) {\n this.visitAllObjects(expr => expr.visitExpression(this, ctx), expressions, ctx, separator);\n }\n visitAllObjects(handler, expressions, ctx, separator) {\n let incrementedIndent = false;\n for (let i = 0; i < expressions.length; i++) {\n if (i > 0) {\n if (ctx.lineLength() > 80) {\n ctx.print(null, separator, true);\n if (!incrementedIndent) {\n // continuation are marked with double indent.\n ctx.incIndent();\n ctx.incIndent();\n incrementedIndent = true;\n }\n }\n else {\n ctx.print(null, separator, false);\n }\n }\n handler(expressions[i]);\n }\n if (incrementedIndent) {\n // continuation are marked with double indent.\n ctx.decIndent();\n ctx.decIndent();\n }\n }\n visitAllStatements(statements, ctx) {\n statements.forEach((stmt) => stmt.visitStatement(this, ctx));\n }\n}\nfunction escapeIdentifier(input, escapeDollar, alwaysQuote = true) {\n if (input == null) {\n return null;\n }\n const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match) => {\n if (match[0] == '$') {\n return escapeDollar ? '\\\\$' : '$';\n }\n else if (match[0] == '\\n') {\n return '\\\\n';\n }\n else if (match[0] == '\\r') {\n return '\\\\r';\n }\n else {\n return `\\\\${match[0]}`;\n }\n });\n const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body);\n return requiresQuotes ? `'${body}'` : body;\n}\nfunction _createIndent(count) {\n let res = '';\n for (let i = 0; i < count; i++) {\n res += _INDENT_WITH;\n }\n return res;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction typeWithParameters(type, numParams) {\n if (numParams === 0) {\n return expressionType(type);\n }\n const params = [];\n for (let i = 0; i < numParams; i++) {\n params.push(DYNAMIC_TYPE);\n }\n return expressionType(type, undefined, params);\n}\nconst ANIMATE_SYMBOL_PREFIX = '@';\nfunction prepareSyntheticPropertyName(name) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}`;\n}\nfunction prepareSyntheticListenerName(name, phase) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;\n}\nfunction getSafePropertyAccessString(accessor, name) {\n const escapedName = escapeIdentifier(name, false, false);\n return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;\n}\nfunction prepareSyntheticListenerFunctionName(name, phase) {\n return `animation_${name}_${phase}`;\n}\nfunction jitOnlyGuardedExpression(expr) {\n return guardedExpression('ngJitMode', expr);\n}\nfunction devOnlyGuardedExpression(expr) {\n return guardedExpression('ngDevMode', expr);\n}\nfunction guardedExpression(guard, expr) {\n const guardExpr = new ExternalExpr({ name: guard, moduleName: null });\n const guardNotDefined = new BinaryOperatorExpr(BinaryOperator.Identical, new TypeofExpr(guardExpr), literal('undefined'));\n const guardUndefinedOrTrue = new BinaryOperatorExpr(BinaryOperator.Or, guardNotDefined, guardExpr, /* type */ undefined, \n /* sourceSpan */ undefined, true);\n return new BinaryOperatorExpr(BinaryOperator.And, guardUndefinedOrTrue, expr);\n}\nfunction wrapReference(value) {\n const wrapped = new WrappedNodeExpr(value);\n return { value: wrapped, type: wrapped };\n}\nfunction refsToArray(refs, shouldForwardDeclare) {\n const values = literalArr(refs.map(ref => ref.value));\n return shouldForwardDeclare ? fn([], [new ReturnStatement(values)]) : values;\n}\nfunction createMayBeForwardRefExpression(expression, forwardRef) {\n return { expression, forwardRef };\n}\n/**\n * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a\n * `forwardRef()` call.\n *\n * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression\n * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated\n * in the code.\n *\n * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and\n * `packages/compiler/src/jit_compiler_facade.ts` for more information.\n */\nfunction convertFromMaybeForwardRefExpression({ expression, forwardRef }) {\n switch (forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 1 /* ForwardRefHandling.Wrapped */:\n return expression;\n case 2 /* ForwardRefHandling.Unwrapped */:\n return generateForwardRef(expression);\n }\n}\n/**\n * Generate an expression that has the given `expr` wrapped in the following form:\n *\n * ```\n * forwardRef(() => expr)\n * ```\n */\nfunction generateForwardRef(expr) {\n return importExpr(Identifiers.forwardRef).callFn([fn([], [new ReturnStatement(expr)])]);\n}\n\nvar R3FactoryDelegateType;\n(function (R3FactoryDelegateType) {\n R3FactoryDelegateType[R3FactoryDelegateType[\"Class\"] = 0] = \"Class\";\n R3FactoryDelegateType[R3FactoryDelegateType[\"Function\"] = 1] = \"Function\";\n})(R3FactoryDelegateType || (R3FactoryDelegateType = {}));\nvar FactoryTarget$1;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget$1 || (FactoryTarget$1 = {}));\n/**\n * Construct a factory function expression for the given `R3FactoryMetadata`.\n */\nfunction compileFactoryFunction(meta) {\n const t = variable('t');\n let baseFactoryVar = null;\n // The type to instantiate via constructor invocation. If there is no delegated factory, meaning\n // this type is always created by constructor invocation, then this is the type-to-create\n // parameter provided by the user (t) if specified, or the current type if not. If there is a\n // delegated factory (which is used to create the current type) then this is only the type-to-\n // create parameter (t).\n const typeForCtor = !isDelegatedFactoryMetadata(meta) ?\n new BinaryOperatorExpr(BinaryOperator.Or, t, meta.internalType) :\n t;\n let ctorExpr = null;\n if (meta.deps !== null) {\n // There is a constructor (either explicitly or implicitly defined).\n if (meta.deps !== 'invalid') {\n ctorExpr = new InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.target));\n }\n }\n else {\n // There is no constructor, use the base class' factory to construct typeForCtor.\n baseFactoryVar = variable(`ɵ${meta.name}_BaseFactory`);\n ctorExpr = baseFactoryVar.callFn([typeForCtor]);\n }\n const body = [];\n let retExpr = null;\n function makeConditionalFactory(nonCtorExpr) {\n const r = variable('r');\n body.push(r.set(NULL_EXPR).toDeclStmt());\n const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() :\n importExpr(Identifiers.invalidFactory).callFn([]).toStmt();\n body.push(ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()]));\n return r;\n }\n if (isDelegatedFactoryMetadata(meta)) {\n // This type is created with a delegated factory. If a type parameter is not specified, call\n // the factory instead.\n const delegateArgs = injectDependencies(meta.delegateDeps, meta.target);\n // Either call `new delegate(...)` or `delegate(...)` depending on meta.delegateType.\n const factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ?\n InstantiateExpr :\n InvokeFunctionExpr)(meta.delegate, delegateArgs);\n retExpr = makeConditionalFactory(factoryExpr);\n }\n else if (isExpressionFactoryMetadata(meta)) {\n // TODO(alxhub): decide whether to lower the value here or in the caller\n retExpr = makeConditionalFactory(meta.expression);\n }\n else {\n retExpr = ctorExpr;\n }\n if (retExpr === null) {\n // The expression cannot be formed so render an `ɵɵinvalidFactory()` call.\n body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());\n }\n else if (baseFactoryVar !== null) {\n // This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it.\n const getInheritedFactoryCall = importExpr(Identifiers.getInheritedFactory).callFn([meta.internalType]);\n // Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))`\n const baseFactory = new BinaryOperatorExpr(BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall));\n body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])));\n }\n else {\n // This is straightforward factory, just return it.\n body.push(new ReturnStatement(retExpr));\n }\n let factoryFn = fn([new FnParam('t', DYNAMIC_TYPE)], body, INFERRED_TYPE, undefined, `${meta.name}_Factory`);\n if (baseFactoryVar !== null) {\n // There is a base factory variable so wrap its declaration along with the factory function into\n // an IIFE.\n factoryFn = fn([], [\n new DeclareVarStmt(baseFactoryVar.name), new ReturnStatement(factoryFn)\n ]).callFn([], /* sourceSpan */ undefined, /* pure */ true);\n }\n return {\n expression: factoryFn,\n statements: [],\n type: createFactoryType(meta),\n };\n}\nfunction createFactoryType(meta) {\n const ctorDepsType = meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : NONE_TYPE;\n return expressionType(importExpr(Identifiers.FactoryDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType]));\n}\nfunction injectDependencies(deps, target) {\n return deps.map((dep, index) => compileInjectDependency(dep, target, index));\n}\nfunction compileInjectDependency(dep, target, index) {\n // Interpret the dependency according to its resolved type.\n if (dep.token === null) {\n return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);\n }\n else if (dep.attributeNameType === null) {\n // Build up the injection flags according to the metadata.\n const flags = 0 /* InjectFlags.Default */ | (dep.self ? 2 /* InjectFlags.Self */ : 0) |\n (dep.skipSelf ? 4 /* InjectFlags.SkipSelf */ : 0) | (dep.host ? 1 /* InjectFlags.Host */ : 0) |\n (dep.optional ? 8 /* InjectFlags.Optional */ : 0) |\n (target === FactoryTarget$1.Pipe ? 16 /* InjectFlags.ForPipe */ : 0);\n // If this dependency is optional or otherwise has non-default flags, then additional\n // parameters describing how to inject the dependency must be passed to the inject function\n // that's being used.\n let flagsParam = (flags !== 0 /* InjectFlags.Default */ || dep.optional) ? literal(flags) : null;\n // Build up the arguments to the injectFn call.\n const injectArgs = [dep.token];\n if (flagsParam) {\n injectArgs.push(flagsParam);\n }\n const injectFn = getInjectFn(target);\n return importExpr(injectFn).callFn(injectArgs);\n }\n else {\n // The `dep.attributeTypeName` value is defined, which indicates that this is an `@Attribute()`\n // type dependency. For the generated JS we still want to use the `dep.token` value in case the\n // name given for the attribute is not a string literal. For example given `@Attribute(foo())`,\n // we want to generate `ɵɵinjectAttribute(foo())`.\n //\n // The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate\n // typings.\n return importExpr(Identifiers.injectAttribute).callFn([dep.token]);\n }\n}\nfunction createCtorDepsType(deps) {\n let hasTypes = false;\n const attributeTypes = deps.map(dep => {\n const type = createCtorDepType(dep);\n if (type !== null) {\n hasTypes = true;\n return type;\n }\n else {\n return literal(null);\n }\n });\n if (hasTypes) {\n return expressionType(literalArr(attributeTypes));\n }\n else {\n return NONE_TYPE;\n }\n}\nfunction createCtorDepType(dep) {\n const entries = [];\n if (dep.attributeNameType !== null) {\n entries.push({ key: 'attribute', value: dep.attributeNameType, quoted: false });\n }\n if (dep.optional) {\n entries.push({ key: 'optional', value: literal(true), quoted: false });\n }\n if (dep.host) {\n entries.push({ key: 'host', value: literal(true), quoted: false });\n }\n if (dep.self) {\n entries.push({ key: 'self', value: literal(true), quoted: false });\n }\n if (dep.skipSelf) {\n entries.push({ key: 'skipSelf', value: literal(true), quoted: false });\n }\n return entries.length > 0 ? literalMap(entries) : null;\n}\nfunction isDelegatedFactoryMetadata(meta) {\n return meta.delegateType !== undefined;\n}\nfunction isExpressionFactoryMetadata(meta) {\n return meta.expression !== undefined;\n}\nfunction getInjectFn(target) {\n switch (target) {\n case FactoryTarget$1.Component:\n case FactoryTarget$1.Directive:\n case FactoryTarget$1.Pipe:\n return Identifiers.directiveInject;\n case FactoryTarget$1.NgModule:\n case FactoryTarget$1.Injectable:\n default:\n return Identifiers.inject;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently\n * require the implementation of a visitor for Comments as they are only collected at\n * the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`\n * is true.\n */\nclass Comment$1 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(_visitor) {\n throw new Error('visit() not implemented for Comment');\n }\n}\nclass Text$3 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass BoundText {\n constructor(value, sourceSpan, i18n) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitBoundText(this);\n }\n}\n/**\n * Represents a text attribute in the template.\n *\n * `valueSpan` may not be present in cases where there is no value `
    `.\n * `keySpan` may also not be present for synthetic attributes from ICU expansions.\n */\nclass TextAttribute {\n constructor(name, value, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTextAttribute(this);\n }\n}\nclass BoundAttribute {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n static fromBoundElementProperty(prop, i18n) {\n if (prop.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound attributes but was not for ${prop.name}: ${prop.sourceSpan}`);\n }\n return new BoundAttribute(prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n);\n }\n visit(visitor) {\n return visitor.visitBoundAttribute(this);\n }\n}\nclass BoundEvent {\n constructor(name, type, handler, target, phase, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.type = type;\n this.handler = handler;\n this.target = target;\n this.phase = phase;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n static fromParsedEvent(event) {\n const target = event.type === 0 /* ParsedEventType.Regular */ ? event.targetOrPhase : null;\n const phase = event.type === 1 /* ParsedEventType.Animation */ ? event.targetOrPhase : null;\n if (event.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${event.name}: ${event.sourceSpan}`);\n }\n return new BoundEvent(event.name, event.type, event.handler, target, phase, event.sourceSpan, event.handlerSpan, event.keySpan);\n }\n visit(visitor) {\n return visitor.visitBoundEvent(this);\n }\n}\nclass Element$1 {\n constructor(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.name = name;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.children = children;\n this.references = references;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitElement(this);\n }\n}\nclass Template {\n constructor(\n // tagName is the name of the container element, if applicable.\n // `null` is a special case for when there is a structural directive on an `ng-template` so\n // the renderer can differentiate between the synthetic template and the one written in the\n // file.\n tagName, attributes, inputs, outputs, templateAttrs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.tagName = tagName;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.templateAttrs = templateAttrs;\n this.children = children;\n this.references = references;\n this.variables = variables;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTemplate(this);\n }\n}\nclass Content {\n constructor(selector, attributes, sourceSpan, i18n) {\n this.selector = selector;\n this.attributes = attributes;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n this.name = 'ng-content';\n }\n visit(visitor) {\n return visitor.visitContent(this);\n }\n}\nclass Variable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitVariable(this);\n }\n}\nclass Reference {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitReference(this);\n }\n}\nclass Icu$1 {\n constructor(vars, placeholders, sourceSpan, i18n) {\n this.vars = vars;\n this.placeholders = placeholders;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitIcu(this);\n }\n}\nclass NullVisitor {\n visitElement(element) { }\n visitTemplate(template) { }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass RecursiveVisitor$1 {\n visitElement(element) {\n visitAll$1(this, element.attributes);\n visitAll$1(this, element.inputs);\n visitAll$1(this, element.outputs);\n visitAll$1(this, element.children);\n visitAll$1(this, element.references);\n }\n visitTemplate(template) {\n visitAll$1(this, template.attributes);\n visitAll$1(this, template.inputs);\n visitAll$1(this, template.outputs);\n visitAll$1(this, template.children);\n visitAll$1(this, template.references);\n visitAll$1(this, template.variables);\n }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass TransformVisitor {\n visitElement(element) {\n const newAttributes = transformAll(this, element.attributes);\n const newInputs = transformAll(this, element.inputs);\n const newOutputs = transformAll(this, element.outputs);\n const newChildren = transformAll(this, element.children);\n const newReferences = transformAll(this, element.references);\n if (newAttributes != element.attributes || newInputs != element.inputs ||\n newOutputs != element.outputs || newChildren != element.children ||\n newReferences != element.references) {\n return new Element$1(element.name, newAttributes, newInputs, newOutputs, newChildren, newReferences, element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n }\n return element;\n }\n visitTemplate(template) {\n const newAttributes = transformAll(this, template.attributes);\n const newInputs = transformAll(this, template.inputs);\n const newOutputs = transformAll(this, template.outputs);\n const newTemplateAttrs = transformAll(this, template.templateAttrs);\n const newChildren = transformAll(this, template.children);\n const newReferences = transformAll(this, template.references);\n const newVariables = transformAll(this, template.variables);\n if (newAttributes != template.attributes || newInputs != template.inputs ||\n newOutputs != template.outputs || newTemplateAttrs != template.templateAttrs ||\n newChildren != template.children || newReferences != template.references ||\n newVariables != template.variables) {\n return new Template(template.tagName, newAttributes, newInputs, newOutputs, newTemplateAttrs, newChildren, newReferences, newVariables, template.sourceSpan, template.startSourceSpan, template.endSourceSpan);\n }\n return template;\n }\n visitContent(content) {\n return content;\n }\n visitVariable(variable) {\n return variable;\n }\n visitReference(reference) {\n return reference;\n }\n visitTextAttribute(attribute) {\n return attribute;\n }\n visitBoundAttribute(attribute) {\n return attribute;\n }\n visitBoundEvent(attribute) {\n return attribute;\n }\n visitText(text) {\n return text;\n }\n visitBoundText(text) {\n return text;\n }\n visitIcu(icu) {\n return icu;\n }\n}\nfunction visitAll$1(visitor, nodes) {\n const result = [];\n if (visitor.visit) {\n for (const node of nodes) {\n const newNode = visitor.visit(node) || node.visit(visitor);\n }\n }\n else {\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n }\n }\n return result;\n}\nfunction transformAll(visitor, nodes) {\n const result = [];\n let changed = false;\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n changed = changed || newNode != node;\n }\n return changed ? result : nodes;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Message {\n /**\n * @param nodes message AST\n * @param placeholders maps placeholder names to static content and their source spans\n * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages)\n * @param meaning\n * @param description\n * @param customId\n */\n constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {\n this.nodes = nodes;\n this.placeholders = placeholders;\n this.placeholderToMessage = placeholderToMessage;\n this.meaning = meaning;\n this.description = description;\n this.customId = customId;\n this.id = this.customId;\n /** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */\n this.legacyIds = [];\n this.messageString = serializeMessage(this.nodes);\n if (nodes.length) {\n this.sources = [{\n filePath: nodes[0].sourceSpan.start.file.url,\n startLine: nodes[0].sourceSpan.start.line + 1,\n startCol: nodes[0].sourceSpan.start.col + 1,\n endLine: nodes[nodes.length - 1].sourceSpan.end.line + 1,\n endCol: nodes[0].sourceSpan.start.col + 1\n }];\n }\n else {\n this.sources = [];\n }\n }\n}\nclass Text$2 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitText(this, context);\n }\n}\n// TODO(vicb): do we really need this node (vs an array) ?\nclass Container {\n constructor(children, sourceSpan) {\n this.children = children;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitContainer(this, context);\n }\n}\nclass Icu {\n constructor(expression, type, cases, sourceSpan) {\n this.expression = expression;\n this.type = type;\n this.cases = cases;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcu(this, context);\n }\n}\nclass TagPlaceholder {\n constructor(tag, attrs, startName, closeName, children, isVoid, \n // TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan)\n sourceSpan, startSourceSpan, endSourceSpan) {\n this.tag = tag;\n this.attrs = attrs;\n this.startName = startName;\n this.closeName = closeName;\n this.children = children;\n this.isVoid = isVoid;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitTagPlaceholder(this, context);\n }\n}\nclass Placeholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitPlaceholder(this, context);\n }\n}\nclass IcuPlaceholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcuPlaceholder(this, context);\n }\n}\n// Clone the AST\nclass CloneVisitor {\n visitText(text, context) {\n return new Text$2(text.value, text.sourceSpan);\n }\n visitContainer(container, context) {\n const children = container.children.map(n => n.visit(this, context));\n return new Container(children, container.sourceSpan);\n }\n visitIcu(icu, context) {\n const cases = {};\n Object.keys(icu.cases).forEach(key => cases[key] = icu.cases[key].visit(this, context));\n const msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan);\n msg.expressionPlaceholder = icu.expressionPlaceholder;\n return msg;\n }\n visitTagPlaceholder(ph, context) {\n const children = ph.children.map(n => n.visit(this, context));\n return new TagPlaceholder(ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan, ph.startSourceSpan, ph.endSourceSpan);\n }\n visitPlaceholder(ph, context) {\n return new Placeholder(ph.value, ph.name, ph.sourceSpan);\n }\n visitIcuPlaceholder(ph, context) {\n return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan);\n }\n}\n// Visit all the nodes recursively\nclass RecurseVisitor {\n visitText(text, context) { }\n visitContainer(container, context) {\n container.children.forEach(child => child.visit(this));\n }\n visitIcu(icu, context) {\n Object.keys(icu.cases).forEach(k => {\n icu.cases[k].visit(this);\n });\n }\n visitTagPlaceholder(ph, context) {\n ph.children.forEach(child => child.visit(this));\n }\n visitPlaceholder(ph, context) { }\n visitIcuPlaceholder(ph, context) { }\n}\n/**\n * Serialize the message to the Localize backtick string format that would appear in compiled code.\n */\nfunction serializeMessage(messageNodes) {\n const visitor = new LocalizeMessageStringVisitor();\n const str = messageNodes.map(n => n.visit(visitor)).join('');\n return str;\n}\nclass LocalizeMessageStringVisitor {\n visitText(text) {\n return text.value;\n }\n visitContainer(container) {\n return container.children.map(child => child.visit(this)).join('');\n }\n visitIcu(icu) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(' ')}}`;\n }\n visitTagPlaceholder(ph) {\n const children = ph.children.map(child => child.visit(this)).join('');\n return `{$${ph.startName}}${children}{$${ph.closeName}}`;\n }\n visitPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n visitIcuPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Serializer {\n // Creates a name mapper, see `PlaceholderMapper`\n // Returning `null` means that no name mapping is used.\n createNameMapper(message) {\n return null;\n }\n}\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nclass SimplePlaceholderMapper extends RecurseVisitor {\n // create a mapping from the message\n constructor(message, mapName) {\n super();\n this.mapName = mapName;\n this.internalToPublic = {};\n this.publicToNextId = {};\n this.publicToInternal = {};\n message.nodes.forEach(node => node.visit(this));\n }\n toPublicName(internalName) {\n return this.internalToPublic.hasOwnProperty(internalName) ?\n this.internalToPublic[internalName] :\n null;\n }\n toInternalName(publicName) {\n return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] :\n null;\n }\n visitText(text, context) {\n return null;\n }\n visitTagPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.startName);\n super.visitTagPlaceholder(ph, context);\n this.visitPlaceholderName(ph.closeName);\n }\n visitPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n visitIcuPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n // XMB placeholders could only contains A-Z, 0-9 and _\n visitPlaceholderName(internalName) {\n if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) {\n return;\n }\n let publicName = this.mapName(internalName);\n if (this.publicToInternal.hasOwnProperty(publicName)) {\n // Create a new XMB when it has already been used\n const nextId = this.publicToNextId[publicName];\n this.publicToNextId[publicName] = nextId + 1;\n publicName = `${publicName}_${nextId}`;\n }\n else {\n this.publicToNextId[publicName] = 1;\n }\n this.internalToPublic[internalName] = publicName;\n this.publicToInternal[publicName] = internalName;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass _Visitor$2 {\n visitTag(tag) {\n const strAttrs = this._serializeAttributes(tag.attrs);\n if (tag.children.length == 0) {\n return `<${tag.name}${strAttrs}/>`;\n }\n const strChildren = tag.children.map(node => node.visit(this));\n return `<${tag.name}${strAttrs}>${strChildren.join('')}`;\n }\n visitText(text) {\n return text.value;\n }\n visitDeclaration(decl) {\n return ``;\n }\n _serializeAttributes(attrs) {\n const strAttrs = Object.keys(attrs).map((name) => `${name}=\"${attrs[name]}\"`).join(' ');\n return strAttrs.length > 0 ? ' ' + strAttrs : '';\n }\n visitDoctype(doctype) {\n return ``;\n }\n}\nconst _visitor = new _Visitor$2();\nfunction serialize(nodes) {\n return nodes.map((node) => node.visit(_visitor)).join('');\n}\nclass Declaration {\n constructor(unescapedAttrs) {\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitDeclaration(this);\n }\n}\nclass Doctype {\n constructor(rootTag, dtd) {\n this.rootTag = rootTag;\n this.dtd = dtd;\n }\n visit(visitor) {\n return visitor.visitDoctype(this);\n }\n}\nclass Tag {\n constructor(name, unescapedAttrs = {}, children = []) {\n this.name = name;\n this.children = children;\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitTag(this);\n }\n}\nclass Text$1 {\n constructor(unescapedValue) {\n this.value = escapeXml(unescapedValue);\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass CR extends Text$1 {\n constructor(ws = 0) {\n super(`\\n${new Array(ws + 1).join(' ')}`);\n }\n}\nconst _ESCAPED_CHARS = [\n [/&/g, '&'],\n [/\"/g, '"'],\n [/'/g, '''],\n [//g, '>'],\n];\n// Escape `_ESCAPED_CHARS` characters in the given text with encoded entities\nfunction escapeXml(text) {\n return _ESCAPED_CHARS.reduce((text, entry) => text.replace(entry[0], entry[1]), text);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _MESSAGES_TAG = 'messagebundle';\nconst _MESSAGE_TAG = 'msg';\nconst _PLACEHOLDER_TAG$3 = 'ph';\nconst _EXAMPLE_TAG = 'ex';\nconst _SOURCE_TAG$2 = 'source';\nconst _DOCTYPE = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\nclass Xmb extends Serializer {\n write(messages, locale) {\n const exampleVisitor = new ExampleVisitor();\n const visitor = new _Visitor$1();\n let rootNode = new Tag(_MESSAGES_TAG);\n messages.forEach(message => {\n const attrs = { id: message.id };\n if (message.description) {\n attrs['desc'] = message.description;\n }\n if (message.meaning) {\n attrs['meaning'] = message.meaning;\n }\n let sourceTags = [];\n message.sources.forEach((source) => {\n sourceTags.push(new Tag(_SOURCE_TAG$2, {}, [new Text$1(`${source.filePath}:${source.startLine}${source.endLine !== source.startLine ? ',' + source.endLine : ''}`)]));\n });\n rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)]));\n });\n rootNode.children.push(new CR());\n return serialize([\n new Declaration({ version: '1.0', encoding: 'UTF-8' }),\n new CR(),\n new Doctype(_MESSAGES_TAG, _DOCTYPE),\n new CR(),\n exampleVisitor.addDefaultExamples(rootNode),\n new CR(),\n ]);\n }\n load(content, url) {\n throw new Error('Unsupported');\n }\n digest(message) {\n return digest(message);\n }\n createNameMapper(message) {\n return new SimplePlaceholderMapper(message, toPublicName);\n }\n}\nclass _Visitor$1 {\n visitText(text, context) {\n return [new Text$1(text.value)];\n }\n visitContainer(container, context) {\n const nodes = [];\n container.children.forEach((node) => nodes.push(...node.visit(this)));\n return nodes;\n }\n visitIcu(icu, context) {\n const nodes = [new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];\n Object.keys(icu.cases).forEach((c) => {\n nodes.push(new Text$1(`${c} {`), ...icu.cases[c].visit(this), new Text$1(`} `));\n });\n nodes.push(new Text$1(`}`));\n return nodes;\n }\n visitTagPlaceholder(ph, context) {\n const startTagAsText = new Text$1(`<${ph.tag}>`);\n const startEx = new Tag(_EXAMPLE_TAG, {}, [startTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const startTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.startName }, [startEx, startTagAsText]);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [startTagPh];\n }\n const closeTagAsText = new Text$1(``);\n const closeEx = new Tag(_EXAMPLE_TAG, {}, [closeTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const closeTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.closeName }, [closeEx, closeTagAsText]);\n return [startTagPh, ...this.serialize(ph.children), closeTagPh];\n }\n visitPlaceholder(ph, context) {\n const interpolationAsText = new Text$1(`{{${ph.value}}}`);\n // Example tag needs to be not-empty for TC.\n const exTag = new Tag(_EXAMPLE_TAG, {}, [interpolationAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, interpolationAsText])\n ];\n }\n visitIcuPlaceholder(ph, context) {\n const icuExpression = ph.value.expression;\n const icuType = ph.value.type;\n const icuCases = Object.keys(ph.value.cases).map((value) => value + ' {...}').join(' ');\n const icuAsText = new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`);\n const exTag = new Tag(_EXAMPLE_TAG, {}, [icuAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, icuAsText])\n ];\n }\n serialize(nodes) {\n return [].concat(...nodes.map(node => node.visit(this)));\n }\n}\nfunction digest(message) {\n return decimalDigest(message);\n}\n// TC requires at least one non-empty example on placeholders\nclass ExampleVisitor {\n addDefaultExamples(node) {\n node.visit(this);\n return node;\n }\n visitTag(tag) {\n if (tag.name === _PLACEHOLDER_TAG$3) {\n if (!tag.children || tag.children.length == 0) {\n const exText = new Text$1(tag.attrs['name'] || '...');\n tag.children = [new Tag(_EXAMPLE_TAG, {}, [exText])];\n }\n }\n else if (tag.children) {\n tag.children.forEach(node => node.visit(this));\n }\n }\n visitText(text) { }\n visitDeclaration(decl) { }\n visitDoctype(doctype) { }\n}\n// XMB/XTB placeholders can only contain A-Z, 0-9 and _\nfunction toPublicName(internalName) {\n return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* Closure variables holding messages must be named `MSG_[A-Z0-9]+` */\nconst CLOSURE_TRANSLATION_VAR_PREFIX = 'MSG_';\n/**\n * Prefix for non-`goog.getMsg` i18n-related vars.\n * Note: the prefix uses lowercase characters intentionally due to a Closure behavior that\n * considers variables like `I18N_0` as constants and throws an error when their value changes.\n */\nconst TRANSLATION_VAR_PREFIX = 'i18n_';\n/** Name of the i18n attributes **/\nconst I18N_ATTR = 'i18n';\nconst I18N_ATTR_PREFIX = 'i18n-';\n/** Prefix of var expressions used in ICUs */\nconst I18N_ICU_VAR_PREFIX = 'VAR_';\n/** Prefix of ICU expressions for post processing */\nconst I18N_ICU_MAPPING_PREFIX = 'I18N_EXP_';\n/** Placeholder wrapper for i18n expressions **/\nconst I18N_PLACEHOLDER_SYMBOL = '�';\nfunction isI18nAttribute(name) {\n return name === I18N_ATTR || name.startsWith(I18N_ATTR_PREFIX);\n}\nfunction isI18nRootNode(meta) {\n return meta instanceof Message;\n}\nfunction isSingleI18nIcu(meta) {\n return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof Icu;\n}\nfunction hasI18nMeta(node) {\n return !!node.i18n;\n}\nfunction hasI18nAttrs(element) {\n return element.attrs.some((attr) => isI18nAttribute(attr.name));\n}\nfunction icuFromI18nMessage(message) {\n return message.nodes[0];\n}\nfunction wrapI18nPlaceholder(content, contextId = 0) {\n const blockId = contextId > 0 ? `:${contextId}` : '';\n return `${I18N_PLACEHOLDER_SYMBOL}${content}${blockId}${I18N_PLACEHOLDER_SYMBOL}`;\n}\nfunction assembleI18nBoundString(strings, bindingStartIndex = 0, contextId = 0) {\n if (!strings.length)\n return '';\n let acc = '';\n const lastIdx = strings.length - 1;\n for (let i = 0; i < lastIdx; i++) {\n acc += `${strings[i]}${wrapI18nPlaceholder(bindingStartIndex + i, contextId)}`;\n }\n acc += strings[lastIdx];\n return acc;\n}\nfunction getSeqNumberGenerator(startsAt = 0) {\n let current = startsAt;\n return () => current++;\n}\nfunction placeholdersToParams(placeholders) {\n const params = {};\n placeholders.forEach((values, key) => {\n params[key] = literal(values.length > 1 ? `[${values.join('|')}]` : values[0]);\n });\n return params;\n}\nfunction updatePlaceholderMap(map, name, ...values) {\n const current = map.get(name) || [];\n current.push(...values);\n map.set(name, current);\n}\nfunction assembleBoundTextPlaceholders(meta, bindingStartIndex = 0, contextId = 0) {\n const startIdx = bindingStartIndex;\n const placeholders = new Map();\n const node = meta instanceof Message ? meta.nodes.find(node => node instanceof Container) : meta;\n if (node) {\n node\n .children\n .filter((child) => child instanceof Placeholder)\n .forEach((child, idx) => {\n const content = wrapI18nPlaceholder(startIdx + idx, contextId);\n updatePlaceholderMap(placeholders, child.name, content);\n });\n }\n return placeholders;\n}\n/**\n * Format the placeholder names in a map of placeholders to expressions.\n *\n * The placeholder names are converted from \"internal\" format (e.g. `START_TAG_DIV_1`) to \"external\"\n * format (e.g. `startTagDiv_1`).\n *\n * @param params A map of placeholder names to expressions.\n * @param useCamelCase whether to camelCase the placeholder name when formatting.\n * @returns A new map of formatted placeholder names to expressions.\n */\nfunction formatI18nPlaceholderNamesInMap(params = {}, useCamelCase) {\n const _params = {};\n if (params && Object.keys(params).length) {\n Object.keys(params).forEach(key => _params[formatI18nPlaceholderName(key, useCamelCase)] = params[key]);\n }\n return _params;\n}\n/**\n * Converts internal placeholder names to public-facing format\n * (for example to use in goog.getMsg call).\n * Example: `START_TAG_DIV_1` is converted to `startTagDiv_1`.\n *\n * @param name The placeholder name that should be formatted\n * @returns Formatted placeholder name\n */\nfunction formatI18nPlaceholderName(name, useCamelCase = true) {\n const publicName = toPublicName(name);\n if (!useCamelCase) {\n return publicName;\n }\n const chunks = publicName.split('_');\n if (chunks.length === 1) {\n // if no \"_\" found - just lowercase the value\n return name.toLowerCase();\n }\n let postfix;\n // eject last element if it's a number\n if (/^\\d+$/.test(chunks[chunks.length - 1])) {\n postfix = chunks.pop();\n }\n let raw = chunks.shift().toLowerCase();\n if (chunks.length) {\n raw += chunks.map(c => c.charAt(0).toUpperCase() + c.slice(1).toLowerCase()).join('');\n }\n return postfix ? `${raw}_${postfix}` : raw;\n}\n/**\n * Generates a prefix for translation const name.\n *\n * @param extra Additional local prefix that should be injected into translation var name\n * @returns Complete translation const prefix\n */\nfunction getTranslationConstPrefix(extra) {\n return `${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase();\n}\n/**\n * Generate AST to declare a variable. E.g. `var I18N_1;`.\n * @param variable the name of the variable to declare.\n */\nfunction declareI18nVariable(variable) {\n return new DeclareVarStmt(variable.name, undefined, INFERRED_TYPE, undefined, variable.sourceSpan);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether an object key contains potentially unsafe chars, thus the key should be wrapped in\n * quotes. Note: we do not wrap all keys into quotes, as it may have impact on minification and may\n * bot work in some cases when object keys are mangled by minifier.\n *\n * TODO(FW-1136): this is a temporary solution, we need to come up with a better way of working with\n * inputs that contain potentially unsafe chars.\n */\nconst UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;\n/** Name of the temporary to use during data binding */\nconst TEMPORARY_NAME = '_t';\n/** Name of the context parameter passed into a template function */\nconst CONTEXT_NAME = 'ctx';\n/** Name of the RenderFlag passed into a template function */\nconst RENDER_FLAGS = 'rf';\n/** The prefix reference variables */\nconst REFERENCE_PREFIX = '_r';\n/** The name of the implicit context reference */\nconst IMPLICIT_REFERENCE = '$implicit';\n/** Non bindable attribute name **/\nconst NON_BINDABLE_ATTR = 'ngNonBindable';\n/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */\nconst RESTORED_VIEW_CONTEXT_NAME = 'restoredCtx';\n/**\n * Maximum length of a single instruction chain. Because our output AST uses recursion, we're\n * limited in how many expressions we can nest before we reach the call stack limit. This\n * length is set very conservatively in order to reduce the chance of problems.\n */\nconst MAX_CHAIN_LENGTH = 500;\n/** Instructions that support chaining. */\nconst CHAINABLE_INSTRUCTIONS = new Set([\n Identifiers.element,\n Identifiers.elementStart,\n Identifiers.elementEnd,\n Identifiers.elementContainer,\n Identifiers.elementContainerStart,\n Identifiers.elementContainerEnd,\n Identifiers.i18nExp,\n Identifiers.listener,\n Identifiers.classProp,\n Identifiers.syntheticHostListener,\n Identifiers.hostProperty,\n Identifiers.syntheticHostProperty,\n Identifiers.property,\n Identifiers.propertyInterpolate1,\n Identifiers.propertyInterpolate2,\n Identifiers.propertyInterpolate3,\n Identifiers.propertyInterpolate4,\n Identifiers.propertyInterpolate5,\n Identifiers.propertyInterpolate6,\n Identifiers.propertyInterpolate7,\n Identifiers.propertyInterpolate8,\n Identifiers.propertyInterpolateV,\n Identifiers.attribute,\n Identifiers.attributeInterpolate1,\n Identifiers.attributeInterpolate2,\n Identifiers.attributeInterpolate3,\n Identifiers.attributeInterpolate4,\n Identifiers.attributeInterpolate5,\n Identifiers.attributeInterpolate6,\n Identifiers.attributeInterpolate7,\n Identifiers.attributeInterpolate8,\n Identifiers.attributeInterpolateV,\n Identifiers.styleProp,\n Identifiers.stylePropInterpolate1,\n Identifiers.stylePropInterpolate2,\n Identifiers.stylePropInterpolate3,\n Identifiers.stylePropInterpolate4,\n Identifiers.stylePropInterpolate5,\n Identifiers.stylePropInterpolate6,\n Identifiers.stylePropInterpolate7,\n Identifiers.stylePropInterpolate8,\n Identifiers.stylePropInterpolateV,\n Identifiers.textInterpolate,\n Identifiers.textInterpolate1,\n Identifiers.textInterpolate2,\n Identifiers.textInterpolate3,\n Identifiers.textInterpolate4,\n Identifiers.textInterpolate5,\n Identifiers.textInterpolate6,\n Identifiers.textInterpolate7,\n Identifiers.textInterpolate8,\n Identifiers.textInterpolateV,\n]);\n/** Generates a call to a single instruction. */\nfunction invokeInstruction(span, reference, params) {\n return importExpr(reference, null, span).callFn(params, span);\n}\n/**\n * Creates an allocator for a temporary variable.\n *\n * A variable declaration is added to the statements the first time the allocator is invoked.\n */\nfunction temporaryAllocator(statements, name) {\n let temp = null;\n return () => {\n if (!temp) {\n statements.push(new DeclareVarStmt(TEMPORARY_NAME, undefined, DYNAMIC_TYPE));\n temp = variable(name);\n }\n return temp;\n };\n}\nfunction invalid(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction asLiteral(value) {\n if (Array.isArray(value)) {\n return literalArr(value.map(asLiteral));\n }\n return literal(value, INFERRED_TYPE);\n}\nfunction conditionallyCreateMapObjectLiteral(keys, keepDeclared) {\n if (Object.getOwnPropertyNames(keys).length > 0) {\n return mapToExpression(keys, keepDeclared);\n }\n return null;\n}\nfunction mapToExpression(map, keepDeclared) {\n return literalMap(Object.getOwnPropertyNames(map).map(key => {\n // canonical syntax: `dirProp: publicProp`\n const value = map[key];\n let declaredName;\n let publicName;\n let minifiedName;\n let needsDeclaredName;\n if (Array.isArray(value)) {\n [publicName, declaredName] = value;\n minifiedName = key;\n needsDeclaredName = publicName !== declaredName;\n }\n else {\n minifiedName = declaredName = key;\n publicName = value;\n needsDeclaredName = false;\n }\n return {\n key: minifiedName,\n // put quotes around keys that contain potentially unsafe characters\n quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),\n value: (keepDeclared && needsDeclaredName) ?\n literalArr([asLiteral(publicName), asLiteral(declaredName)]) :\n asLiteral(publicName)\n };\n }));\n}\n/**\n * Remove trailing null nodes as they are implied.\n */\nfunction trimTrailingNulls(parameters) {\n while (isNull(parameters[parameters.length - 1])) {\n parameters.pop();\n }\n return parameters;\n}\nfunction getQueryPredicate(query, constantPool) {\n if (Array.isArray(query.predicate)) {\n let predicate = [];\n query.predicate.forEach((selector) => {\n // Each item in predicates array may contain strings with comma-separated refs\n // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them\n // as separate array entities\n const selectors = selector.split(',').map(token => literal(token.trim()));\n predicate.push(...selectors);\n });\n return constantPool.getConstLiteral(literalArr(predicate), true);\n }\n else {\n // The original predicate may have been wrapped in a `forwardRef()` call.\n switch (query.predicate.forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 2 /* ForwardRefHandling.Unwrapped */:\n return query.predicate.expression;\n case 1 /* ForwardRefHandling.Wrapped */:\n return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression]);\n }\n }\n}\n/**\n * A representation for an object literal used during codegen of definition objects. The generic\n * type `T` allows to reference a documented type of the generated structure, such that the\n * property names that are set can be resolved to their documented declaration.\n */\nclass DefinitionMap {\n constructor() {\n this.values = [];\n }\n set(key, value) {\n if (value) {\n this.values.push({ key: key, value, quoted: false });\n }\n }\n toLiteralMap() {\n return literalMap(this.values);\n }\n}\n/**\n * Extract a map of properties to values for a given element or template node, which can be used\n * by the directive matching machinery.\n *\n * @param elOrTpl the element or template in question\n * @return an object set up for directive matching. For attributes on the element/template, this\n * object maps a property name to its (static) value. For any bindings, this map simply maps the\n * property name to an empty string.\n */\nfunction getAttrsForDirectiveMatching(elOrTpl) {\n const attributesMap = {};\n if (elOrTpl instanceof Template && elOrTpl.tagName !== 'ng-template') {\n elOrTpl.templateAttrs.forEach(a => attributesMap[a.name] = '');\n }\n else {\n elOrTpl.attributes.forEach(a => {\n if (!isI18nAttribute(a.name)) {\n attributesMap[a.name] = a.value;\n }\n });\n elOrTpl.inputs.forEach(i => {\n attributesMap[i.name] = '';\n });\n elOrTpl.outputs.forEach(o => {\n attributesMap[o.name] = '';\n });\n }\n return attributesMap;\n}\n/**\n * Gets the number of arguments expected to be passed to a generated instruction in the case of\n * interpolation instructions.\n * @param interpolation An interpolation ast\n */\nfunction getInterpolationArgsLength(interpolation) {\n const { expressions, strings } = interpolation;\n if (expressions.length === 1 && strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // If the interpolation has one interpolated value, but the prefix and suffix are both empty\n // strings, we only pass one argument, to a special instruction like `propertyInterpolate` or\n // `textInterpolate`.\n return 1;\n }\n else {\n return expressions.length + strings.length;\n }\n}\n/**\n * Generates the final instruction call statements based on the passed in configuration.\n * Will try to chain instructions as much as possible, if chaining is supported.\n */\nfunction getInstructionStatements(instructions) {\n var _a;\n const statements = [];\n let pendingExpression = null;\n let pendingExpressionType = null;\n let chainLength = 0;\n for (const current of instructions) {\n const resolvedParams = (_a = (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn)) !== null && _a !== void 0 ? _a : [];\n const params = Array.isArray(resolvedParams) ? resolvedParams : [resolvedParams];\n // If the current instruction is the same as the previous one\n // and it can be chained, add another call to the chain.\n if (chainLength < MAX_CHAIN_LENGTH && pendingExpressionType === current.reference &&\n CHAINABLE_INSTRUCTIONS.has(pendingExpressionType)) {\n // We'll always have a pending expression when there's a pending expression type.\n pendingExpression = pendingExpression.callFn(params, pendingExpression.sourceSpan);\n chainLength++;\n }\n else {\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n pendingExpression = invokeInstruction(current.span, current.reference, params);\n pendingExpressionType = current.reference;\n chainLength = 0;\n }\n }\n // Since the current instruction adds the previous one to the statements,\n // we may be left with the final one at the end that is still pending.\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n return statements;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjectable(meta, resolveForwardRefs) {\n let result = null;\n const factoryMeta = {\n name: meta.name,\n type: meta.type,\n internalType: meta.internalType,\n typeArgumentCount: meta.typeArgumentCount,\n deps: [],\n target: FactoryTarget$1.Injectable,\n };\n if (meta.useClass !== undefined) {\n // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is\n // used to instantiate the class with dependencies injected, or deps are not specified and\n // the factory of the class is used to instantiate it.\n //\n // A special case exists for useClass: Type where Type is the injectable type itself and no\n // deps are specified, in which case 'useClass' is effectively ignored.\n const useClassOnSelf = meta.useClass.expression.isEquivalent(meta.internalType);\n let deps = undefined;\n if (meta.deps !== undefined) {\n deps = meta.deps;\n }\n if (deps !== undefined) {\n // factory: () => new meta.useClass(...deps)\n result = compileFactoryFunction(Object.assign(Object.assign({}, factoryMeta), { delegate: meta.useClass.expression, delegateDeps: deps, delegateType: R3FactoryDelegateType.Class }));\n }\n else if (useClassOnSelf) {\n result = compileFactoryFunction(factoryMeta);\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.useClass.expression, resolveForwardRefs)\n };\n }\n }\n else if (meta.useFactory !== undefined) {\n if (meta.deps !== undefined) {\n result = compileFactoryFunction(Object.assign(Object.assign({}, factoryMeta), { delegate: meta.useFactory, delegateDeps: meta.deps || [], delegateType: R3FactoryDelegateType.Function }));\n }\n else {\n result = {\n statements: [],\n expression: fn([], [new ReturnStatement(meta.useFactory.callFn([]))])\n };\n }\n }\n else if (meta.useValue !== undefined) {\n // Note: it's safe to use `meta.useValue` instead of the `USE_VALUE in meta` check used for\n // client code because meta.useValue is an Expression which will be defined even if the actual\n // value is undefined.\n result = compileFactoryFunction(Object.assign(Object.assign({}, factoryMeta), { expression: meta.useValue.expression }));\n }\n else if (meta.useExisting !== undefined) {\n // useExisting is an `inject` call on the existing token.\n result = compileFactoryFunction(Object.assign(Object.assign({}, factoryMeta), { expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]) }));\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.internalType, resolveForwardRefs)\n };\n }\n const token = meta.internalType;\n const injectableProps = new DefinitionMap();\n injectableProps.set('token', token);\n injectableProps.set('factory', result.expression);\n // Only generate providedIn property if it has a non-null value\n if (meta.providedIn.expression.value !== null) {\n injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn));\n }\n const expression = importExpr(Identifiers.ɵɵdefineInjectable)\n .callFn([injectableProps.toLiteralMap()], undefined, true);\n return {\n expression,\n type: createInjectableType(meta),\n statements: result.statements,\n };\n}\nfunction createInjectableType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectableDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount)]));\n}\nfunction delegateToFactory(type, internalType, unwrapForwardRefs) {\n if (type.node === internalType.node) {\n // The types are the same, so we can simply delegate directly to the type's factory.\n // ```\n // factory: type.ɵfac\n // ```\n return internalType.prop('ɵfac');\n }\n if (!unwrapForwardRefs) {\n // The type is not wrapped in a `forwardRef()`, so we create a simple factory function that\n // accepts a sub-type as an argument.\n // ```\n // factory: function(t) { return internalType.ɵfac(t); }\n // ```\n return createFactoryFunction(internalType);\n }\n // The internalType is actually wrapped in a `forwardRef()` so we need to resolve that before\n // calling its factory.\n // ```\n // factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); }\n // ```\n const unwrappedType = importExpr(Identifiers.resolveForwardRef).callFn([internalType]);\n return createFactoryFunction(unwrappedType);\n}\nfunction createFactoryFunction(type) {\n return fn([new FnParam('t', DYNAMIC_TYPE)], [new ReturnStatement(type.prop('ɵfac').callFn([variable('t')]))]);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst UNUSABLE_INTERPOLATION_REGEXPS = [\n /^\\s*$/,\n /[<>]/,\n /^[{}]$/,\n /&(#|[a-z])/i,\n /^\\/\\//, // comment\n];\nfunction assertInterpolationSymbols(identifier, value) {\n if (value != null && !(Array.isArray(value) && value.length == 2)) {\n throw new Error(`Expected '${identifier}' to be an array, [start, end].`);\n }\n else if (value != null) {\n const start = value[0];\n const end = value[1];\n // Check for unusable interpolation symbols\n UNUSABLE_INTERPOLATION_REGEXPS.forEach(regexp => {\n if (regexp.test(start) || regexp.test(end)) {\n throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`);\n }\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass InterpolationConfig {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n static fromArray(markers) {\n if (!markers) {\n return DEFAULT_INTERPOLATION_CONFIG;\n }\n assertInterpolationSymbols('interpolation', markers);\n return new InterpolationConfig(markers[0], markers[1]);\n }\n}\nconst DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst $EOF = 0;\nconst $BSPACE = 8;\nconst $TAB = 9;\nconst $LF = 10;\nconst $VTAB = 11;\nconst $FF = 12;\nconst $CR = 13;\nconst $SPACE = 32;\nconst $BANG = 33;\nconst $DQ = 34;\nconst $HASH = 35;\nconst $$ = 36;\nconst $PERCENT = 37;\nconst $AMPERSAND = 38;\nconst $SQ = 39;\nconst $LPAREN = 40;\nconst $RPAREN = 41;\nconst $STAR = 42;\nconst $PLUS = 43;\nconst $COMMA = 44;\nconst $MINUS = 45;\nconst $PERIOD = 46;\nconst $SLASH = 47;\nconst $COLON = 58;\nconst $SEMICOLON = 59;\nconst $LT = 60;\nconst $EQ = 61;\nconst $GT = 62;\nconst $QUESTION = 63;\nconst $0 = 48;\nconst $7 = 55;\nconst $9 = 57;\nconst $A = 65;\nconst $E = 69;\nconst $F = 70;\nconst $X = 88;\nconst $Z = 90;\nconst $LBRACKET = 91;\nconst $BACKSLASH = 92;\nconst $RBRACKET = 93;\nconst $CARET = 94;\nconst $_ = 95;\nconst $a = 97;\nconst $b = 98;\nconst $e = 101;\nconst $f = 102;\nconst $n = 110;\nconst $r = 114;\nconst $t = 116;\nconst $u = 117;\nconst $v = 118;\nconst $x = 120;\nconst $z = 122;\nconst $LBRACE = 123;\nconst $BAR = 124;\nconst $RBRACE = 125;\nconst $NBSP = 160;\nconst $PIPE = 124;\nconst $TILDA = 126;\nconst $AT = 64;\nconst $BT = 96;\nfunction isWhitespace(code) {\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\n}\nfunction isDigit(code) {\n return $0 <= code && code <= $9;\n}\nfunction isAsciiLetter(code) {\n return code >= $a && code <= $z || code >= $A && code <= $Z;\n}\nfunction isAsciiHexDigit(code) {\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\n}\nfunction isNewLine(code) {\n return code === $LF || code === $CR;\n}\nfunction isOctalDigit(code) {\n return $0 <= code && code <= $7;\n}\nfunction isQuote(code) {\n return code === $SQ || code === $DQ || code === $BT;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParseLocation {\n constructor(file, offset, line, col) {\n this.file = file;\n this.offset = offset;\n this.line = line;\n this.col = col;\n }\n toString() {\n return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;\n }\n moveBy(delta) {\n const source = this.file.content;\n const len = source.length;\n let offset = this.offset;\n let line = this.line;\n let col = this.col;\n while (offset > 0 && delta < 0) {\n offset--;\n delta++;\n const ch = source.charCodeAt(offset);\n if (ch == $LF) {\n line--;\n const priorLine = source.substring(0, offset - 1).lastIndexOf(String.fromCharCode($LF));\n col = priorLine > 0 ? offset - priorLine : offset;\n }\n else {\n col--;\n }\n }\n while (offset < len && delta > 0) {\n const ch = source.charCodeAt(offset);\n offset++;\n delta--;\n if (ch == $LF) {\n line++;\n col = 0;\n }\n else {\n col++;\n }\n }\n return new ParseLocation(this.file, offset, line, col);\n }\n // Return the source around the location\n // Up to `maxChars` or `maxLines` on each side of the location\n getContext(maxChars, maxLines) {\n const content = this.file.content;\n let startOffset = this.offset;\n if (startOffset != null) {\n if (startOffset > content.length - 1) {\n startOffset = content.length - 1;\n }\n let endOffset = startOffset;\n let ctxChars = 0;\n let ctxLines = 0;\n while (ctxChars < maxChars && startOffset > 0) {\n startOffset--;\n ctxChars++;\n if (content[startOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n ctxChars = 0;\n ctxLines = 0;\n while (ctxChars < maxChars && endOffset < content.length - 1) {\n endOffset++;\n ctxChars++;\n if (content[endOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n return {\n before: content.substring(startOffset, this.offset),\n after: content.substring(this.offset, endOffset + 1),\n };\n }\n return null;\n }\n}\nclass ParseSourceFile {\n constructor(content, url) {\n this.content = content;\n this.url = url;\n }\n}\nclass ParseSourceSpan {\n /**\n * Create an object that holds information about spans of tokens/nodes captured during\n * lexing/parsing of text.\n *\n * @param start\n * The location of the start of the span (having skipped leading trivia).\n * Skipping leading trivia makes source-spans more \"user friendly\", since things like HTML\n * elements will appear to begin at the start of the opening tag, rather than at the start of any\n * leading trivia, which could include newlines.\n *\n * @param end\n * The location of the end of the span.\n *\n * @param fullStart\n * The start of the token without skipping the leading trivia.\n * This is used by tooling that splits tokens further, such as extracting Angular interpolations\n * from text tokens. Such tooling creates new source-spans relative to the original token's\n * source-span. If leading trivia characters have been skipped then the new source-spans may be\n * incorrectly offset.\n *\n * @param details\n * Additional information (such as identifier names) that should be associated with the span.\n */\n constructor(start, end, fullStart = start, details = null) {\n this.start = start;\n this.end = end;\n this.fullStart = fullStart;\n this.details = details;\n }\n toString() {\n return this.start.file.content.substring(this.start.offset, this.end.offset);\n }\n}\nvar ParseErrorLevel;\n(function (ParseErrorLevel) {\n ParseErrorLevel[ParseErrorLevel[\"WARNING\"] = 0] = \"WARNING\";\n ParseErrorLevel[ParseErrorLevel[\"ERROR\"] = 1] = \"ERROR\";\n})(ParseErrorLevel || (ParseErrorLevel = {}));\nclass ParseError {\n constructor(span, msg, level = ParseErrorLevel.ERROR) {\n this.span = span;\n this.msg = msg;\n this.level = level;\n }\n contextualMessage() {\n const ctx = this.span.start.getContext(100, 3);\n return ctx ? `${this.msg} (\"${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}\")` :\n this.msg;\n }\n toString() {\n const details = this.span.details ? `, ${this.span.details}` : '';\n return `${this.contextualMessage()}: ${this.span.start}${details}`;\n }\n}\n/**\n * Generates Source Span object for a given R3 Type for JIT mode.\n *\n * @param kind Component or Directive.\n * @param typeName name of the Component or Directive.\n * @param sourceUrl reference to Component or Directive source.\n * @returns instance of ParseSourceSpan that represent a given Component or Directive.\n */\nfunction r3JitTypeSourceSpan(kind, typeName, sourceUrl) {\n const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`;\n const sourceFile = new ParseSourceFile('', sourceFileName);\n return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1));\n}\nlet _anonymousTypeIndex = 0;\nfunction identifierName(compileIdentifier) {\n if (!compileIdentifier || !compileIdentifier.reference) {\n return null;\n }\n const ref = compileIdentifier.reference;\n if (ref['__anonymousType']) {\n return ref['__anonymousType'];\n }\n if (ref['__forward_ref__']) {\n // We do not want to try to stringify a `forwardRef()` function because that would cause the\n // inner function to be evaluated too early, defeating the whole point of the `forwardRef`.\n return '__forward_ref__';\n }\n let identifier = stringify(ref);\n if (identifier.indexOf('(') >= 0) {\n // case: anonymous functions!\n identifier = `anonymous_${_anonymousTypeIndex++}`;\n ref['__anonymousType'] = identifier;\n }\n else {\n identifier = sanitizeIdentifier(identifier);\n }\n return identifier;\n}\nfunction sanitizeIdentifier(name) {\n return name.replace(/\\W/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * In TypeScript, tagged template functions expect a \"template object\", which is an array of\n * \"cooked\" strings plus a `raw` property that contains an array of \"raw\" strings. This is\n * typically constructed with a function called `__makeTemplateObject(cooked, raw)`, but it may not\n * be available in all environments.\n *\n * This is a JavaScript polyfill that uses __makeTemplateObject when it's available, but otherwise\n * creates an inline helper with the same functionality.\n *\n * In the inline function, if `Object.defineProperty` is available we use that to attach the `raw`\n * array.\n */\nconst makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e})';\nclass AbstractJsEmitterVisitor extends AbstractEmitterVisitor {\n constructor() {\n super(false);\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Cannot emit a WrappedNodeExpr in Javascript.');\n }\n visitDeclareVarStmt(stmt, ctx) {\n ctx.print(stmt, `var ${stmt.name}`);\n if (stmt.value) {\n ctx.print(stmt, ' = ');\n stmt.value.visitExpression(this, ctx);\n }\n ctx.println(stmt, `;`);\n return null;\n }\n visitTaggedTemplateExpr(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // tag`...`\n // ```\n // which is effectively like:\n // ```\n // tag(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n const elements = ast.template.elements;\n ast.tag.visitExpression(this, ctx);\n ctx.print(ast, `(${makeTemplateObjectPolyfill}(`);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.text, false)).join(', ')}], `);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.rawText, false)).join(', ')}])`);\n ast.template.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n visitFunctionExpr(ast, ctx) {\n ctx.print(ast, `function${ast.name ? ' ' + ast.name : ''}(`);\n this._visitParams(ast.params, ctx);\n ctx.println(ast, `) {`);\n ctx.incIndent();\n this.visitAllStatements(ast.statements, ctx);\n ctx.decIndent();\n ctx.print(ast, `}`);\n return null;\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n ctx.print(stmt, `function ${stmt.name}(`);\n this._visitParams(stmt.params, ctx);\n ctx.println(stmt, `) {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.statements, ctx);\n ctx.decIndent();\n ctx.println(stmt, `}`);\n return null;\n }\n visitLocalizedString(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // $localize `...`\n // ```\n // which is effectively like:\n // ```\n // $localize(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n ctx.print(ast, `$localize(${makeTemplateObjectPolyfill}(`);\n const parts = [ast.serializeI18nHead()];\n for (let i = 1; i < ast.messageParts.length; i++) {\n parts.push(ast.serializeI18nTemplatePart(i));\n }\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.cooked, false)).join(', ')}], `);\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.raw, false)).join(', ')}])`);\n ast.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n _visitParams(params, ctx) {\n this.visitAllObjects(param => ctx.print(null, param.name), params, ctx, ',');\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy =\n _global.trustedTypes.createPolicy('angular#unsafe-jit', {\n createScript: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from the JIT compiler, as use in other code can lead to XSS\n * vulnerabilities.\n */\nfunction newTrustedFunctionForJIT(...args) {\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A helper class to manage the evaluation of JIT generated code.\n */\nclass JitEvaluator {\n /**\n *\n * @param sourceUrl The URL of the generated code.\n * @param statements An array of Angular statement AST nodes to be evaluated.\n * @param refResolver Resolves `o.ExternalReference`s into values.\n * @param createSourceMaps If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns A map of all the variables in the generated code.\n */\n evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {\n const converter = new JitEmitterVisitor(refResolver);\n const ctx = EmitterVisitorContext.createRoot();\n // Ensure generated code is in strict mode\n if (statements.length > 0 && !isUseStrictStatement(statements[0])) {\n statements = [\n literal('use strict').toStmt(),\n ...statements,\n ];\n }\n converter.visitAllStatements(statements, ctx);\n converter.createReturnStmt(ctx);\n return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps);\n }\n /**\n * Evaluate a piece of JIT generated code.\n * @param sourceUrl The URL of this generated code.\n * @param ctx A context object that contains an AST of the code to be evaluated.\n * @param vars A map containing the names and values of variables that the evaluated code might\n * reference.\n * @param createSourceMap If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns The result of evaluating the code.\n */\n evaluateCode(sourceUrl, ctx, vars, createSourceMap) {\n let fnBody = `\"use strict\";${ctx.toSource()}\\n//# sourceURL=${sourceUrl}`;\n const fnArgNames = [];\n const fnArgValues = [];\n for (const argName in vars) {\n fnArgValues.push(vars[argName]);\n fnArgNames.push(argName);\n }\n if (createSourceMap) {\n // using `new Function(...)` generates a header, 1 line of no arguments, 2 lines otherwise\n // E.g. ```\n // function anonymous(a,b,c\n // /**/) { ... }```\n // We don't want to hard code this fact, so we auto detect it via an empty function first.\n const emptyFn = newTrustedFunctionForJIT(...fnArgNames.concat('return null;')).toString();\n const headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\\n').length - 1;\n fnBody += `\\n${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;\n }\n const fn = newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));\n return this.executeFunction(fn, fnArgValues);\n }\n /**\n * Execute a JIT generated function by calling it.\n *\n * This method can be overridden in tests to capture the functions that are generated\n * by this `JitEvaluator` class.\n *\n * @param fn A function to execute.\n * @param args The arguments to pass to the function being executed.\n * @returns The return value of the executed function.\n */\n executeFunction(fn, args) {\n return fn(...args);\n }\n}\n/**\n * An Angular AST visitor that converts AST nodes into executable JavaScript code.\n */\nclass JitEmitterVisitor extends AbstractJsEmitterVisitor {\n constructor(refResolver) {\n super();\n this.refResolver = refResolver;\n this._evalArgNames = [];\n this._evalArgValues = [];\n this._evalExportedVars = [];\n }\n createReturnStmt(ctx) {\n const stmt = new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map(resultVar => new LiteralMapEntry(resultVar, variable(resultVar), false))));\n stmt.visitStatement(this, ctx);\n }\n getArgs() {\n const result = {};\n for (let i = 0; i < this._evalArgNames.length; i++) {\n result[this._evalArgNames[i]] = this._evalArgValues[i];\n }\n return result;\n }\n visitExternalExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, this.refResolver.resolveExternalReference(ast.value), ctx);\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, ast.node, ctx);\n return null;\n }\n visitDeclareVarStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareVarStmt(stmt, ctx);\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareFunctionStmt(stmt, ctx);\n }\n _emitReferenceToExternal(ast, value, ctx) {\n let id = this._evalArgValues.indexOf(value);\n if (id === -1) {\n id = this._evalArgValues.length;\n this._evalArgValues.push(value);\n const name = identifierName({ reference: value }) || 'val';\n this._evalArgNames.push(`jit_${name}_${id}`);\n }\n ctx.print(ast, this._evalArgNames[id]);\n }\n}\nfunction isUseStrictStatement(statement) {\n return statement.isEquivalent(literal('use strict').toStmt());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjector(meta) {\n const definitionMap = new DefinitionMap();\n if (meta.providers !== null) {\n definitionMap.set('providers', meta.providers);\n }\n if (meta.imports.length > 0) {\n definitionMap.set('imports', literalArr(meta.imports));\n }\n const expression = importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createInjectorType(meta);\n return { expression, type, statements: [] };\n}\nfunction createInjectorType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Implementation of `CompileReflector` which resolves references to @angular/core\n * symbols at runtime, according to a consumer-provided mapping.\n *\n * Only supports `resolveExternalReference`, all other methods throw.\n */\nclass R3JitReflector {\n constructor(context) {\n this.context = context;\n }\n resolveExternalReference(ref) {\n // This reflector only handles @angular/core imports.\n if (ref.moduleName !== '@angular/core') {\n throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`);\n }\n if (!this.context.hasOwnProperty(ref.name)) {\n throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`);\n }\n return this.context[ref.name];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted\n * as a part of the NgModule definition.\n */\nvar R3SelectorScopeMode;\n(function (R3SelectorScopeMode) {\n /**\n * Emit the declarations inline into the module definition.\n *\n * This option is useful in certain contexts where it's known that JIT support is required. The\n * tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if\n * they are unused, but the NgModule is used.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Inline\"] = 0] = \"Inline\";\n /**\n * Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is\n * guarded with the `ngJitMode` flag.\n *\n * This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to\n * false, which allows unused directives and pipes to be tree-shaken.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"SideEffect\"] = 1] = \"SideEffect\";\n /**\n * Don't generate selector scopes at all.\n *\n * This is useful for contexts where JIT support is known to be unnecessary.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Omit\"] = 2] = \"Omit\";\n})(R3SelectorScopeMode || (R3SelectorScopeMode = {}));\n/**\n * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.\n */\nfunction compileNgModule(meta) {\n const { adjacentType, internalType, bootstrap, declarations, imports, exports, schemas, containsForwardDecls, selectorScopeMode, id } = meta;\n const statements = [];\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', internalType);\n if (bootstrap.length > 0) {\n definitionMap.set('bootstrap', refsToArray(bootstrap, containsForwardDecls));\n }\n if (selectorScopeMode === R3SelectorScopeMode.Inline) {\n // If requested to emit scope information inline, pass the `declarations`, `imports` and\n // `exports` to the `ɵɵdefineNgModule()` call directly.\n if (declarations.length > 0) {\n definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n definitionMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n definitionMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n }\n else if (selectorScopeMode === R3SelectorScopeMode.SideEffect) {\n // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it\n // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's\n // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the\n // `ngJitMode` flag.\n const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta);\n if (setNgModuleScopeCall !== null) {\n statements.push(setNgModuleScopeCall);\n }\n }\n else {\n // Selector scope emit was not requested, so skip it.\n }\n if (schemas !== null && schemas.length > 0) {\n definitionMap.set('schemas', literalArr(schemas.map(ref => ref.value)));\n }\n if (id !== null) {\n definitionMap.set('id', id);\n // Generate a side-effectful call to register this NgModule by its id, as per the semantics of\n // NgModule ids.\n statements.push(importExpr(Identifiers.registerNgModuleType).callFn([adjacentType, id]).toStmt());\n }\n const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createNgModuleType(meta);\n return { expression, type, statements };\n}\n/**\n * This function is used in JIT mode to generate the call to `ɵɵdefineNgModule()` from a call to\n * `ɵɵngDeclareNgModule()`.\n */\nfunction compileNgModuleDeclarationExpression(meta) {\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', new WrappedNodeExpr(meta.type));\n if (meta.bootstrap !== undefined) {\n definitionMap.set('bootstrap', new WrappedNodeExpr(meta.bootstrap));\n }\n if (meta.declarations !== undefined) {\n definitionMap.set('declarations', new WrappedNodeExpr(meta.declarations));\n }\n if (meta.imports !== undefined) {\n definitionMap.set('imports', new WrappedNodeExpr(meta.imports));\n }\n if (meta.exports !== undefined) {\n definitionMap.set('exports', new WrappedNodeExpr(meta.exports));\n }\n if (meta.schemas !== undefined) {\n definitionMap.set('schemas', new WrappedNodeExpr(meta.schemas));\n }\n if (meta.id !== undefined) {\n definitionMap.set('id', new WrappedNodeExpr(meta.id));\n }\n return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);\n}\nfunction createNgModuleType({ type: moduleType, declarations, exports, imports, includeImportTypes, publicDeclarationTypes }) {\n return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [\n new ExpressionType(moduleType.type),\n publicDeclarationTypes === null ? tupleTypeOf(declarations) :\n tupleOfTypes(publicDeclarationTypes),\n includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE,\n tupleTypeOf(exports),\n ]));\n}\n/**\n * Generates a function call to `ɵɵsetNgModuleScope` with all necessary information so that the\n * transitive module scope can be computed during runtime in JIT mode. This call is marked pure\n * such that the references to declarations, imports and exports may be elided causing these\n * symbols to become tree-shakeable.\n */\nfunction generateSetNgModuleScopeCall(meta) {\n const { adjacentType: moduleType, declarations, imports, exports, containsForwardDecls } = meta;\n const scopeMap = new DefinitionMap();\n if (declarations.length > 0) {\n scopeMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n scopeMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n scopeMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n if (Object.keys(scopeMap.values).length === 0) {\n return null;\n }\n // setNgModuleScope(...)\n const fnCall = new InvokeFunctionExpr(\n /* fn */ importExpr(Identifiers.setNgModuleScope), \n /* args */ [moduleType, scopeMap.toLiteralMap()]);\n // (ngJitMode guard) && setNgModuleScope(...)\n const guardedCall = jitOnlyGuardedExpression(fnCall);\n // function() { (ngJitMode guard) && setNgModuleScope(...); }\n const iife = new FunctionExpr(\n /* params */ [], \n /* statements */ [guardedCall.toStmt()]);\n // (function() { (ngJitMode guard) && setNgModuleScope(...); })()\n const iifeCall = new InvokeFunctionExpr(\n /* fn */ iife, \n /* args */ []);\n return iifeCall.toStmt();\n}\nfunction tupleTypeOf(exp) {\n const types = exp.map(ref => typeofExpr(ref.type));\n return exp.length > 0 ? expressionType(literalArr(types)) : NONE_TYPE;\n}\nfunction tupleOfTypes(types) {\n const typeofTypes = types.map(type => typeofExpr(type));\n return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compilePipeFromMetadata(metadata) {\n const definitionMapValues = [];\n // e.g. `name: 'myPipe'`\n definitionMapValues.push({ key: 'name', value: literal(metadata.pipeName), quoted: false });\n // e.g. `type: MyPipe`\n definitionMapValues.push({ key: 'type', value: metadata.type.value, quoted: false });\n // e.g. `pure: true`\n definitionMapValues.push({ key: 'pure', value: literal(metadata.pure), quoted: false });\n if (metadata.isStandalone) {\n definitionMapValues.push({ key: 'standalone', value: literal(true), quoted: false });\n }\n const expression = importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)], undefined, true);\n const type = createPipeType(metadata);\n return { expression, type, statements: [] };\n}\nfunction createPipeType(metadata) {\n return new ExpressionType(importExpr(Identifiers.PipeDeclaration, [\n typeWithParameters(metadata.type.type, metadata.typeArgumentCount),\n new ExpressionType(new LiteralExpr(metadata.pipeName)),\n new ExpressionType(new LiteralExpr(metadata.isStandalone)),\n ]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParserError {\n constructor(message, input, errLocation, ctxLocation) {\n this.input = input;\n this.errLocation = errLocation;\n this.ctxLocation = ctxLocation;\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\n }\n}\nclass ParseSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n toAbsolute(absoluteOffset) {\n return new AbsoluteSourceSpan(absoluteOffset + this.start, absoluteOffset + this.end);\n }\n}\nclass AST {\n constructor(span, \n /**\n * Absolute location of the expression AST in a source code file.\n */\n sourceSpan) {\n this.span = span;\n this.sourceSpan = sourceSpan;\n }\n toString() {\n return 'AST';\n }\n}\nclass ASTWithName extends AST {\n constructor(span, sourceSpan, nameSpan) {\n super(span, sourceSpan);\n this.nameSpan = nameSpan;\n }\n}\nclass EmptyExpr extends AST {\n visit(visitor, context = null) {\n // do nothing\n }\n}\nclass ImplicitReceiver extends AST {\n visit(visitor, context = null) {\n return visitor.visitImplicitReceiver(this, context);\n }\n}\n/**\n * Receiver when something is accessed through `this` (e.g. `this.foo`). Note that this class\n * inherits from `ImplicitReceiver`, because accessing something through `this` is treated the\n * same as accessing it implicitly inside of an Angular template (e.g. `[attr.title]=\"this.title\"`\n * is the same as `[attr.title]=\"title\"`.). Inheriting allows for the `this` accesses to be treated\n * the same as implicit ones, except for a couple of exceptions like `$event` and `$any`.\n * TODO: we should find a way for this class not to extend from `ImplicitReceiver` in the future.\n */\nclass ThisReceiver extends ImplicitReceiver {\n visit(visitor, context = null) {\n var _a;\n return (_a = visitor.visitThisReceiver) === null || _a === void 0 ? void 0 : _a.call(visitor, this, context);\n }\n}\n/**\n * Multiple expressions separated by a semicolon.\n */\nclass Chain extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitChain(this, context);\n }\n}\nclass Conditional extends AST {\n constructor(span, sourceSpan, condition, trueExp, falseExp) {\n super(span, sourceSpan);\n this.condition = condition;\n this.trueExp = trueExp;\n this.falseExp = falseExp;\n }\n visit(visitor, context = null) {\n return visitor.visitConditional(this, context);\n }\n}\nclass PropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyRead(this, context);\n }\n}\nclass PropertyWrite extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name, value) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyWrite(this, context);\n }\n}\nclass SafePropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitSafePropertyRead(this, context);\n }\n}\nclass KeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedRead(this, context);\n }\n}\nclass SafeKeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeKeyedRead(this, context);\n }\n}\nclass KeyedWrite extends AST {\n constructor(span, sourceSpan, receiver, key, value) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedWrite(this, context);\n }\n}\nclass BindingPipe extends ASTWithName {\n constructor(span, sourceSpan, exp, name, args, nameSpan) {\n super(span, sourceSpan, nameSpan);\n this.exp = exp;\n this.name = name;\n this.args = args;\n }\n visit(visitor, context = null) {\n return visitor.visitPipe(this, context);\n }\n}\nclass LiteralPrimitive extends AST {\n constructor(span, sourceSpan, value) {\n super(span, sourceSpan);\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralPrimitive(this, context);\n }\n}\nclass LiteralArray extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralArray(this, context);\n }\n}\nclass LiteralMap extends AST {\n constructor(span, sourceSpan, keys, values) {\n super(span, sourceSpan);\n this.keys = keys;\n this.values = values;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralMap(this, context);\n }\n}\nclass Interpolation extends AST {\n constructor(span, sourceSpan, strings, expressions) {\n super(span, sourceSpan);\n this.strings = strings;\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitInterpolation(this, context);\n }\n}\nclass Binary extends AST {\n constructor(span, sourceSpan, operation, left, right) {\n super(span, sourceSpan);\n this.operation = operation;\n this.left = left;\n this.right = right;\n }\n visit(visitor, context = null) {\n return visitor.visitBinary(this, context);\n }\n}\n/**\n * For backwards compatibility reasons, `Unary` inherits from `Binary` and mimics the binary AST\n * node that was originally used. This inheritance relation can be deleted in some future major,\n * after consumers have been given a chance to fully support Unary.\n */\nclass Unary extends Binary {\n /**\n * During the deprecation period this constructor is private, to avoid consumers from creating\n * a `Unary` with the fallback properties for `Binary`.\n */\n constructor(span, sourceSpan, operator, expr, binaryOp, binaryLeft, binaryRight) {\n super(span, sourceSpan, binaryOp, binaryLeft, binaryRight);\n this.operator = operator;\n this.expr = expr;\n // Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not\n // depend on these fields when operating on `Unary`.\n this.left = null;\n this.right = null;\n this.operation = null;\n }\n /**\n * Creates a unary minus expression \"-x\", represented as `Binary` using \"0 - x\".\n */\n static createMinus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '-', expr, '-', new LiteralPrimitive(span, sourceSpan, 0), expr);\n }\n /**\n * Creates a unary plus expression \"+x\", represented as `Binary` using \"x - 0\".\n */\n static createPlus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '+', expr, '-', expr, new LiteralPrimitive(span, sourceSpan, 0));\n }\n visit(visitor, context = null) {\n if (visitor.visitUnary !== undefined) {\n return visitor.visitUnary(this, context);\n }\n return visitor.visitBinary(this, context);\n }\n}\nclass PrefixNot extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitPrefixNot(this, context);\n }\n}\nclass NonNullAssert extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitNonNullAssert(this, context);\n }\n}\nclass Call extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitCall(this, context);\n }\n}\nclass SafeCall extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeCall(this, context);\n }\n}\n/**\n * Records the absolute position of a text span in a source file, where `start` and `end` are the\n * starting and ending byte offsets, respectively, of the text span in a source file.\n */\nclass AbsoluteSourceSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n}\nclass ASTWithSource extends AST {\n constructor(ast, source, location, absoluteOffset, errors) {\n super(new ParseSpan(0, source === null ? 0 : source.length), new AbsoluteSourceSpan(absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length));\n this.ast = ast;\n this.source = source;\n this.location = location;\n this.errors = errors;\n }\n visit(visitor, context = null) {\n if (visitor.visitASTWithSource) {\n return visitor.visitASTWithSource(this, context);\n }\n return this.ast.visit(visitor, context);\n }\n toString() {\n return `${this.source} in ${this.location}`;\n }\n}\nclass VariableBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key name of the LHS along with its span.\n * @param value optional value for the RHS along with its span.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass ExpressionBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its\n * span. Note that the length of the span may not be the same as\n * `key.source.length`. For example,\n * 1. key.source = ngFor, key.span is for \"ngFor\"\n * 2. key.source = ngForOf, key.span is for \"of\"\n * 3. key.source = ngForTrackBy, key.span is for \"trackBy\"\n * @param value optional expression for the RHS.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass RecursiveAstVisitor {\n visit(ast, context) {\n // The default implementation just visits every node.\n // Classes that extend RecursiveAstVisitor should override this function\n // to selectively visit the specified node.\n ast.visit(this, context);\n }\n visitUnary(ast, context) {\n this.visit(ast.expr, context);\n }\n visitBinary(ast, context) {\n this.visit(ast.left, context);\n this.visit(ast.right, context);\n }\n visitChain(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitConditional(ast, context) {\n this.visit(ast.condition, context);\n this.visit(ast.trueExp, context);\n this.visit(ast.falseExp, context);\n }\n visitPipe(ast, context) {\n this.visit(ast.exp, context);\n this.visitAll(ast.args, context);\n }\n visitImplicitReceiver(ast, context) { }\n visitThisReceiver(ast, context) { }\n visitInterpolation(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitKeyedWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n this.visit(ast.value, context);\n }\n visitLiteralArray(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitLiteralMap(ast, context) {\n this.visitAll(ast.values, context);\n }\n visitLiteralPrimitive(ast, context) { }\n visitPrefixNot(ast, context) {\n this.visit(ast.expression, context);\n }\n visitNonNullAssert(ast, context) {\n this.visit(ast.expression, context);\n }\n visitPropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitPropertyWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.value, context);\n }\n visitSafePropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitSafeKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n visitSafeCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n // This is not part of the AstVisitor interface, just a helper method\n visitAll(asts, context) {\n for (const ast of asts) {\n this.visit(ast, context);\n }\n }\n}\nclass AstTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions));\n }\n visitLiteralPrimitive(ast, context) {\n return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value);\n }\n visitPropertyRead(ast, context) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitPropertyWrite(ast, context) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name, ast.value.visit(this));\n }\n visitSafePropertyRead(ast, context) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitLiteralArray(ast, context) {\n return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitLiteralMap(ast, context) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values));\n }\n visitUnary(ast, context) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n visitBinary(ast, context) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this));\n }\n visitPrefixNot(ast, context) {\n return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitNonNullAssert(ast, context) {\n return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitConditional(ast, context) {\n return new Conditional(ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\n }\n visitPipe(ast, context) {\n return new BindingPipe(ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.nameSpan);\n }\n visitKeyedRead(ast, context) {\n return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n visitKeyedWrite(ast, context) {\n return new KeyedWrite(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this), ast.value.visit(this));\n }\n visitCall(ast, context) {\n return new Call(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitSafeCall(ast, context) {\n return new SafeCall(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitAll(asts) {\n const res = [];\n for (let i = 0; i < asts.length; ++i) {\n res[i] = asts[i].visit(this);\n }\n return res;\n }\n visitChain(ast, context) {\n return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitSafeKeyedRead(ast, context) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n}\n// A transformer that only creates new nodes if the transformer makes a change or\n// a change is made a child node.\nclass AstMemoryEfficientTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions)\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, expressions);\n return ast;\n }\n visitLiteralPrimitive(ast, context) {\n return ast;\n }\n visitPropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitPropertyWrite(ast, context) {\n const receiver = ast.receiver.visit(this);\n const value = ast.value.visit(this);\n if (receiver !== ast.receiver || value !== ast.value) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value);\n }\n return ast;\n }\n visitSafePropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitLiteralArray(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new LiteralArray(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitLiteralMap(ast, context) {\n const values = this.visitAll(ast.values);\n if (values !== ast.values) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values);\n }\n return ast;\n }\n visitUnary(ast, context) {\n const expr = ast.expr.visit(this);\n if (expr !== ast.expr) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, expr);\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, expr);\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n return ast;\n }\n visitBinary(ast, context) {\n const left = ast.left.visit(this);\n const right = ast.right.visit(this);\n if (left !== ast.left || right !== ast.right) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right);\n }\n return ast;\n }\n visitPrefixNot(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new PrefixNot(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitNonNullAssert(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new NonNullAssert(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitConditional(ast, context) {\n const condition = ast.condition.visit(this);\n const trueExp = ast.trueExp.visit(this);\n const falseExp = ast.falseExp.visit(this);\n if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) {\n return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp);\n }\n return ast;\n }\n visitPipe(ast, context) {\n const exp = ast.exp.visit(this);\n const args = this.visitAll(ast.args);\n if (exp !== ast.exp || args !== ast.args) {\n return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan);\n }\n return ast;\n }\n visitKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new KeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n visitKeyedWrite(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n const value = ast.value.visit(this);\n if (obj !== ast.receiver || key !== ast.key || value !== ast.value) {\n return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value);\n }\n return ast;\n }\n visitAll(asts) {\n const res = [];\n let modified = false;\n for (let i = 0; i < asts.length; ++i) {\n const original = asts[i];\n const value = original.visit(this);\n res[i] = value;\n modified = modified || value !== original;\n }\n return modified ? res : asts;\n }\n visitChain(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new Chain(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n}\n// Bindings\nclass ParsedProperty {\n constructor(name, expression, type, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.expression = expression;\n this.type = type;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.isLiteral = this.type === ParsedPropertyType.LITERAL_ATTR;\n this.isAnimation = this.type === ParsedPropertyType.ANIMATION;\n }\n}\nvar ParsedPropertyType;\n(function (ParsedPropertyType) {\n ParsedPropertyType[ParsedPropertyType[\"DEFAULT\"] = 0] = \"DEFAULT\";\n ParsedPropertyType[ParsedPropertyType[\"LITERAL_ATTR\"] = 1] = \"LITERAL_ATTR\";\n ParsedPropertyType[ParsedPropertyType[\"ANIMATION\"] = 2] = \"ANIMATION\";\n})(ParsedPropertyType || (ParsedPropertyType = {}));\nclass ParsedEvent {\n // Regular events have a target\n // Animation events have a phase\n constructor(name, targetOrPhase, type, handler, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.targetOrPhase = targetOrPhase;\n this.type = type;\n this.handler = handler;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n}\n/**\n * ParsedVariable represents a variable declaration in a microsyntax expression.\n */\nclass ParsedVariable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\nclass BoundElementProperty {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass EventHandlerVars {\n}\nEventHandlerVars.event = variable('$event');\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression is\n * used in an action binding (e.g. an event handler).\n */\nfunction convertActionBinding(localResolver, implicitReceiver, action, bindingId, baseSourceSpan, implicitReceiverAccesses, globals) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver(globals);\n }\n const actionWithoutBuiltins = convertPropertyBindingBuiltins({\n createLiteralArrayConverter: (argCount) => {\n // Note: no caching for literal arrays in actions.\n return (args) => literalArr(args);\n },\n createLiteralMapConverter: (keys) => {\n // Note: no caching for literal maps in actions.\n return (values) => {\n const entries = keys.map((k, i) => ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n }));\n return literalMap(entries);\n };\n },\n createPipeConverter: (name) => {\n throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`);\n }\n }, action);\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false, baseSourceSpan, implicitReceiverAccesses);\n const actionStmts = [];\n flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);\n prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const lastIndex = actionStmts.length - 1;\n if (lastIndex >= 0) {\n const lastStatement = actionStmts[lastIndex];\n // Ensure that the value of the last expression statement is returned\n if (lastStatement instanceof ExpressionStatement) {\n actionStmts[lastIndex] = new ReturnStatement(lastStatement.expr);\n }\n }\n return actionStmts;\n}\nfunction convertPropertyBindingBuiltins(converterFactory, ast) {\n return convertBuiltins(converterFactory, ast);\n}\nclass ConvertPropertyBindingResult {\n constructor(stmts, currValExpr) {\n this.stmts = stmts;\n this.currValExpr = currValExpr;\n }\n}\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression\n * is used in property binding. The expression has to be preprocessed via\n * `convertPropertyBindingBuiltins`.\n */\nfunction convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false);\n const outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n return new ConvertPropertyBindingResult(stmts, outputExpr);\n}\n/**\n * Given some expression, such as a binding or interpolation expression, and a context expression to\n * look values up on, visit each facet of the given expression resolving values from the context\n * expression such that a list of arguments can be derived from the found values that can be used as\n * arguments to an external update instruction.\n *\n * @param localResolver The resolver to use to look up expressions by name appropriately\n * @param contextVariableExpression The expression representing the context variable used to create\n * the final argument expressions\n * @param expressionWithArgumentsToExtract The expression to visit to figure out what values need to\n * be resolved and what arguments list to build.\n * @param bindingId A name prefix used to create temporary variable names if they're needed for the\n * arguments generated\n * @returns An array of expressions that can be passed as arguments to instruction expressions like\n * `o.importExpr(R3.propertyInterpolate).callFn(result)`\n */\nfunction convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) {\n const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */ true);\n const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n const args = outputExpr.args;\n return { stmts, args };\n}\nfunction getStatementsFromVisitor(visitor, bindingId) {\n const stmts = [];\n for (let i = 0; i < visitor.temporaryCount; i++) {\n stmts.push(temporaryDeclaration(bindingId, i));\n }\n return stmts;\n}\nfunction convertBuiltins(converterFactory, ast) {\n const visitor = new _BuiltinAstConverter(converterFactory);\n return ast.visit(visitor);\n}\nfunction temporaryName(bindingId, temporaryNumber) {\n return `tmp_${bindingId}_${temporaryNumber}`;\n}\nfunction temporaryDeclaration(bindingId, temporaryNumber) {\n return new DeclareVarStmt(temporaryName(bindingId, temporaryNumber));\n}\nfunction prependTemporaryDecls(temporaryCount, bindingId, statements) {\n for (let i = temporaryCount - 1; i >= 0; i--) {\n statements.unshift(temporaryDeclaration(bindingId, i));\n }\n}\nvar _Mode;\n(function (_Mode) {\n _Mode[_Mode[\"Statement\"] = 0] = \"Statement\";\n _Mode[_Mode[\"Expression\"] = 1] = \"Expression\";\n})(_Mode || (_Mode = {}));\nfunction ensureStatementMode(mode, ast) {\n if (mode !== _Mode.Statement) {\n throw new Error(`Expected a statement, but saw ${ast}`);\n }\n}\nfunction ensureExpressionMode(mode, ast) {\n if (mode !== _Mode.Expression) {\n throw new Error(`Expected an expression, but saw ${ast}`);\n }\n}\nfunction convertToStatementIfNeeded(mode, expr) {\n if (mode === _Mode.Statement) {\n return expr.toStmt();\n }\n else {\n return expr;\n }\n}\nclass _BuiltinAstConverter extends AstTransformer {\n constructor(_converterFactory) {\n super();\n this._converterFactory = _converterFactory;\n }\n visitPipe(ast, context) {\n const args = [ast.exp, ...ast.args].map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createPipeConverter(ast.name, args.length));\n }\n visitLiteralArray(ast, context) {\n const args = ast.expressions.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralArrayConverter(ast.expressions.length));\n }\n visitLiteralMap(ast, context) {\n const args = ast.values.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralMapConverter(ast.keys));\n }\n}\nclass _AstToIrVisitor {\n constructor(_localResolver, _implicitReceiver, bindingId, supportsInterpolation, baseSourceSpan, implicitReceiverAccesses) {\n this._localResolver = _localResolver;\n this._implicitReceiver = _implicitReceiver;\n this.bindingId = bindingId;\n this.supportsInterpolation = supportsInterpolation;\n this.baseSourceSpan = baseSourceSpan;\n this.implicitReceiverAccesses = implicitReceiverAccesses;\n this._nodeMap = new Map();\n this._resultMap = new Map();\n this._currentTemporary = 0;\n this.temporaryCount = 0;\n this.usesImplicitReceiver = false;\n }\n visitUnary(ast, mode) {\n let op;\n switch (ast.operator) {\n case '+':\n op = UnaryOperator.Plus;\n break;\n case '-':\n op = UnaryOperator.Minus;\n break;\n default:\n throw new Error(`Unsupported operator ${ast.operator}`);\n }\n return convertToStatementIfNeeded(mode, new UnaryOperatorExpr(op, this._visit(ast.expr, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitBinary(ast, mode) {\n let op;\n switch (ast.operation) {\n case '+':\n op = BinaryOperator.Plus;\n break;\n case '-':\n op = BinaryOperator.Minus;\n break;\n case '*':\n op = BinaryOperator.Multiply;\n break;\n case '/':\n op = BinaryOperator.Divide;\n break;\n case '%':\n op = BinaryOperator.Modulo;\n break;\n case '&&':\n op = BinaryOperator.And;\n break;\n case '||':\n op = BinaryOperator.Or;\n break;\n case '==':\n op = BinaryOperator.Equals;\n break;\n case '!=':\n op = BinaryOperator.NotEquals;\n break;\n case '===':\n op = BinaryOperator.Identical;\n break;\n case '!==':\n op = BinaryOperator.NotIdentical;\n break;\n case '<':\n op = BinaryOperator.Lower;\n break;\n case '>':\n op = BinaryOperator.Bigger;\n break;\n case '<=':\n op = BinaryOperator.LowerEquals;\n break;\n case '>=':\n op = BinaryOperator.BiggerEquals;\n break;\n case '??':\n return this.convertNullishCoalesce(ast, mode);\n default:\n throw new Error(`Unsupported operation ${ast.operation}`);\n }\n return convertToStatementIfNeeded(mode, new BinaryOperatorExpr(op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitChain(ast, mode) {\n ensureStatementMode(mode, ast);\n return this.visitAll(ast.expressions, mode);\n }\n visitConditional(ast, mode) {\n const value = this._visit(ast.condition, _Mode.Expression);\n return convertToStatementIfNeeded(mode, value.conditional(this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression), this.convertSourceSpan(ast.span)));\n }\n visitPipe(ast, mode) {\n throw new Error(`Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`);\n }\n visitImplicitReceiver(ast, mode) {\n ensureExpressionMode(mode, ast);\n this.usesImplicitReceiver = true;\n return this._implicitReceiver;\n }\n visitThisReceiver(ast, mode) {\n return this.visitImplicitReceiver(ast, mode);\n }\n visitInterpolation(ast, mode) {\n if (!this.supportsInterpolation) {\n throw new Error('Unexpected interpolation');\n }\n ensureExpressionMode(mode, ast);\n let args = [];\n for (let i = 0; i < ast.strings.length - 1; i++) {\n args.push(literal(ast.strings[i]));\n args.push(this._visit(ast.expressions[i], _Mode.Expression));\n }\n args.push(literal(ast.strings[ast.strings.length - 1]));\n // If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the\n // args returned to just the value, because we're going to pass it to a special instruction.\n const strings = ast.strings;\n if (strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // Single argument interpolate instructions.\n args = [args[1]];\n }\n else if (ast.expressions.length >= 9) {\n // 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept\n // an array of arguments\n args = [literalArr(args)];\n }\n return new InterpolationExpression(args);\n }\n visitKeyedRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n return convertToStatementIfNeeded(mode, this._visit(ast.receiver, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression)));\n }\n }\n visitKeyedWrite(ast, mode) {\n const obj = this._visit(ast.receiver, _Mode.Expression);\n const key = this._visit(ast.key, _Mode.Expression);\n const value = this._visit(ast.value, _Mode.Expression);\n if (obj === this._implicitReceiver) {\n this._localResolver.maybeRestoreView();\n }\n return convertToStatementIfNeeded(mode, obj.key(key).set(value));\n }\n visitLiteralArray(ast, mode) {\n throw new Error(`Illegal State: literal arrays should have been converted into functions`);\n }\n visitLiteralMap(ast, mode) {\n throw new Error(`Illegal State: literal maps should have been converted into functions`);\n }\n visitLiteralPrimitive(ast, mode) {\n // For literal values of null, undefined, true, or false allow type interference\n // to infer the type.\n const type = ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ?\n INFERRED_TYPE :\n undefined;\n return convertToStatementIfNeeded(mode, literal(ast.value, type, this.convertSourceSpan(ast.span)));\n }\n _getLocal(name, receiver) {\n var _a;\n if (((_a = this._localResolver.globals) === null || _a === void 0 ? void 0 : _a.has(name)) && receiver instanceof ThisReceiver) {\n return null;\n }\n return this._localResolver.getLocal(name);\n }\n visitPrefixNot(ast, mode) {\n return convertToStatementIfNeeded(mode, not(this._visit(ast.expression, _Mode.Expression)));\n }\n visitNonNullAssert(ast, mode) {\n return convertToStatementIfNeeded(mode, this._visit(ast.expression, _Mode.Expression));\n }\n visitPropertyRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n let result = null;\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n result = this._getLocal(ast.name, ast.receiver);\n if (result) {\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n }\n if (result == null) {\n result = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, result);\n }\n }\n visitPropertyWrite(ast, mode) {\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n let varExpr = null;\n if (receiver === this._implicitReceiver) {\n const localExpr = this._getLocal(ast.name, ast.receiver);\n if (localExpr) {\n if (localExpr instanceof ReadPropExpr) {\n // If the local variable is a property read expression, it's a reference\n // to a 'context.property' value and will be used as the target of the\n // write expression.\n varExpr = localExpr;\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n else {\n // Otherwise it's an error.\n const receiver = ast.name;\n const value = (ast.value instanceof PropertyRead) ? ast.value.name : undefined;\n throw new Error(`Cannot assign value \"${value}\" to template variable \"${receiver}\". Template variables are read-only.`);\n }\n }\n }\n // If no local expression could be produced, use the original receiver's\n // property as the target.\n if (varExpr === null) {\n varExpr = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, varExpr.set(this._visit(ast.value, _Mode.Expression)));\n }\n visitSafePropertyRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitSafeKeyedRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitAll(asts, mode) {\n return asts.map(ast => this._visit(ast, mode));\n }\n visitCall(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n const convertedArgs = this.visitAll(ast.args, _Mode.Expression);\n if (ast instanceof BuiltinFunctionCall) {\n return convertToStatementIfNeeded(mode, ast.converter(convertedArgs));\n }\n const receiver = ast.receiver;\n if (receiver instanceof PropertyRead &&\n receiver.receiver instanceof ImplicitReceiver &&\n !(receiver.receiver instanceof ThisReceiver) && receiver.name === '$any') {\n if (convertedArgs.length !== 1) {\n throw new Error(`Invalid call to $any, expected 1 argument but received ${convertedArgs.length || 'none'}`);\n }\n return convertToStatementIfNeeded(mode, convertedArgs[0]);\n }\n const call = this._visit(receiver, _Mode.Expression)\n .callFn(convertedArgs, this.convertSourceSpan(ast.span));\n return convertToStatementIfNeeded(mode, call);\n }\n visitSafeCall(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n _visit(ast, mode) {\n const result = this._resultMap.get(ast);\n if (result)\n return result;\n return (this._nodeMap.get(ast) || ast).visit(this, mode);\n }\n convertSafeAccess(ast, leftMostSafe, mode) {\n // If the expression contains a safe access node on the left it needs to be converted to\n // an expression that guards the access to the member by checking the receiver for blank. As\n // execution proceeds from left to right, the left most part of the expression must be guarded\n // first but, because member access is left associative, the right side of the expression is at\n // the top of the AST. The desired result requires lifting a copy of the left part of the\n // expression up to test it for blank before generating the unguarded version.\n // Consider, for example the following expression: a?.b.c?.d.e\n // This results in the ast:\n // .\n // / \\\n // ?. e\n // / \\\n // . d\n // / \\\n // ?. c\n // / \\\n // a b\n // The following tree should be generated:\n //\n // /---- ? ----\\\n // / | \\\n // a /--- ? ---\\ null\n // / | \\\n // . . null\n // / \\ / \\\n // . c . e\n // / \\ / \\\n // a b . d\n // / \\\n // . c\n // / \\\n // a b\n //\n // Notice that the first guard condition is the left hand of the left most safe access node\n // which comes in as leftMostSafe to this routine.\n let guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression);\n let temporary = undefined;\n if (this.needsTemporaryInSafeAccess(leftMostSafe.receiver)) {\n // If the expression has method calls or pipes then we need to save the result into a\n // temporary variable to avoid calling stateful or impure code more than once.\n temporary = this.allocateTemporary();\n // Preserve the result in the temporary variable\n guardedExpression = temporary.set(guardedExpression);\n // Ensure all further references to the guarded expression refer to the temporary instead.\n this._resultMap.set(leftMostSafe.receiver, temporary);\n }\n const condition = guardedExpression.isBlank();\n // Convert the ast to an unguarded access to the receiver's member. The map will substitute\n // leftMostNode with its unguarded version in the call to `this.visit()`.\n if (leftMostSafe instanceof SafeCall) {\n this._nodeMap.set(leftMostSafe, new Call(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.args, leftMostSafe.argumentSpan));\n }\n else if (leftMostSafe instanceof SafeKeyedRead) {\n this._nodeMap.set(leftMostSafe, new KeyedRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.key));\n }\n else {\n this._nodeMap.set(leftMostSafe, new PropertyRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.nameSpan, leftMostSafe.receiver, leftMostSafe.name));\n }\n // Recursively convert the node now without the guarded member access.\n const access = this._visit(ast, _Mode.Expression);\n // Remove the mapping. This is not strictly required as the converter only traverses each node\n // once but is safer if the conversion is changed to traverse the nodes more than once.\n this._nodeMap.delete(leftMostSafe);\n // If we allocated a temporary, release it.\n if (temporary) {\n this.releaseTemporary(temporary);\n }\n // Produce the conditional\n return convertToStatementIfNeeded(mode, condition.conditional(NULL_EXPR, access));\n }\n convertNullishCoalesce(ast, mode) {\n const left = this._visit(ast.left, _Mode.Expression);\n const right = this._visit(ast.right, _Mode.Expression);\n const temporary = this.allocateTemporary();\n this.releaseTemporary(temporary);\n // Generate the following expression. It is identical to how TS\n // transpiles binary expressions with a nullish coalescing operator.\n // let temp;\n // (temp = a) !== null && temp !== undefined ? temp : b;\n return convertToStatementIfNeeded(mode, temporary.set(left)\n .notIdentical(NULL_EXPR)\n .and(temporary.notIdentical(literal(undefined)))\n .conditional(temporary, right));\n }\n // Given an expression of the form a?.b.c?.d.e then the left most safe node is\n // the (a?.b). The . and ?. are left associative thus can be rewritten as:\n // ((((a?.c).b).c)?.d).e. This returns the most deeply nested safe read or\n // safe method call as this needs to be transformed initially to:\n // a == null ? null : a.c.b.c?.d.e\n // then to:\n // a == null ? null : a.b.c == null ? null : a.b.c.d.e\n leftMostSafeNode(ast) {\n const visit = (visitor, ast) => {\n return (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n return ast.visit({\n visitUnary(ast) {\n return null;\n },\n visitBinary(ast) {\n return null;\n },\n visitChain(ast) {\n return null;\n },\n visitConditional(ast) {\n return null;\n },\n visitCall(ast) {\n return visit(this, ast.receiver);\n },\n visitSafeCall(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitImplicitReceiver(ast) {\n return null;\n },\n visitThisReceiver(ast) {\n return null;\n },\n visitInterpolation(ast) {\n return null;\n },\n visitKeyedRead(ast) {\n return visit(this, ast.receiver);\n },\n visitKeyedWrite(ast) {\n return null;\n },\n visitLiteralArray(ast) {\n return null;\n },\n visitLiteralMap(ast) {\n return null;\n },\n visitLiteralPrimitive(ast) {\n return null;\n },\n visitPipe(ast) {\n return null;\n },\n visitPrefixNot(ast) {\n return null;\n },\n visitNonNullAssert(ast) {\n return null;\n },\n visitPropertyRead(ast) {\n return visit(this, ast.receiver);\n },\n visitPropertyWrite(ast) {\n return null;\n },\n visitSafePropertyRead(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitSafeKeyedRead(ast) {\n return visit(this, ast.receiver) || ast;\n }\n });\n }\n // Returns true of the AST includes a method or a pipe indicating that, if the\n // expression is used as the target of a safe property or method access then\n // the expression should be stored into a temporary variable.\n needsTemporaryInSafeAccess(ast) {\n const visit = (visitor, ast) => {\n return ast && (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n const visitSome = (visitor, ast) => {\n return ast.some(ast => visit(visitor, ast));\n };\n return ast.visit({\n visitUnary(ast) {\n return visit(this, ast.expr);\n },\n visitBinary(ast) {\n return visit(this, ast.left) || visit(this, ast.right);\n },\n visitChain(ast) {\n return false;\n },\n visitConditional(ast) {\n return visit(this, ast.condition) || visit(this, ast.trueExp) || visit(this, ast.falseExp);\n },\n visitCall(ast) {\n return true;\n },\n visitSafeCall(ast) {\n return true;\n },\n visitImplicitReceiver(ast) {\n return false;\n },\n visitThisReceiver(ast) {\n return false;\n },\n visitInterpolation(ast) {\n return visitSome(this, ast.expressions);\n },\n visitKeyedRead(ast) {\n return false;\n },\n visitKeyedWrite(ast) {\n return false;\n },\n visitLiteralArray(ast) {\n return true;\n },\n visitLiteralMap(ast) {\n return true;\n },\n visitLiteralPrimitive(ast) {\n return false;\n },\n visitPipe(ast) {\n return true;\n },\n visitPrefixNot(ast) {\n return visit(this, ast.expression);\n },\n visitNonNullAssert(ast) {\n return visit(this, ast.expression);\n },\n visitPropertyRead(ast) {\n return false;\n },\n visitPropertyWrite(ast) {\n return false;\n },\n visitSafePropertyRead(ast) {\n return false;\n },\n visitSafeKeyedRead(ast) {\n return false;\n }\n });\n }\n allocateTemporary() {\n const tempNumber = this._currentTemporary++;\n this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount);\n return new ReadVarExpr(temporaryName(this.bindingId, tempNumber));\n }\n releaseTemporary(temporary) {\n this._currentTemporary--;\n if (temporary.name != temporaryName(this.bindingId, this._currentTemporary)) {\n throw new Error(`Temporary ${temporary.name} released out of order`);\n }\n }\n /**\n * Creates an absolute `ParseSourceSpan` from the relative `ParseSpan`.\n *\n * `ParseSpan` objects are relative to the start of the expression.\n * This method converts these to full `ParseSourceSpan` objects that\n * show where the span is within the overall source file.\n *\n * @param span the relative span to convert.\n * @returns a `ParseSourceSpan` for the given span or null if no\n * `baseSourceSpan` was provided to this class.\n */\n convertSourceSpan(span) {\n if (this.baseSourceSpan) {\n const start = this.baseSourceSpan.start.moveBy(span.start);\n const end = this.baseSourceSpan.start.moveBy(span.end);\n const fullStart = this.baseSourceSpan.fullStart.moveBy(span.start);\n return new ParseSourceSpan(start, end, fullStart);\n }\n else {\n return null;\n }\n }\n /** Adds the name of an AST to the list of implicit receiver accesses. */\n addImplicitReceiverAccess(name) {\n if (this.implicitReceiverAccesses) {\n this.implicitReceiverAccesses.add(name);\n }\n }\n}\nfunction flattenStatements(arg, output) {\n if (Array.isArray(arg)) {\n arg.forEach((entry) => flattenStatements(entry, output));\n }\n else {\n output.push(arg);\n }\n}\nfunction unsupported() {\n throw new Error('Unsupported operation');\n}\nclass InterpolationExpression extends Expression {\n constructor(args) {\n super(null, null);\n this.args = args;\n this.isConstant = unsupported;\n this.isEquivalent = unsupported;\n this.visitExpression = unsupported;\n }\n}\nclass DefaultLocalResolver {\n constructor(globals) {\n this.globals = globals;\n }\n notifyImplicitReceiverUse() { }\n maybeRestoreView() { }\n getLocal(name) {\n if (name === EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n return null;\n }\n}\nclass BuiltinFunctionCall extends Call {\n constructor(span, sourceSpan, args, converter) {\n super(span, sourceSpan, new EmptyExpr(span, sourceSpan), args, null);\n this.converter = converter;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n *\n * Please make sure to keep to edits in sync with the source file.\n *\n * Source:\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n *\n * The original file level comment is reproduced below\n */\n/*\n This is a limited shim for ShadowDOM css styling.\n https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles\n\n The intention here is to support only the styling features which can be\n relatively simply implemented. The goal is to allow users to avoid the\n most obvious pitfalls and do so without compromising performance significantly.\n For ShadowDOM styling that's not covered here, a set of best practices\n can be provided that should allow users to accomplish more complex styling.\n\n The following is a list of specific ShadowDOM styling features and a brief\n discussion of the approach used to shim.\n\n Shimmed features:\n\n * :host, :host-context: ShadowDOM allows styling of the shadowRoot's host\n element using the :host rule. To shim this feature, the :host styles are\n reformatted and prefixed with a given scope name and promoted to a\n document level stylesheet.\n For example, given a scope name of .foo, a rule like this:\n\n :host {\n background: red;\n }\n }\n\n becomes:\n\n .foo {\n background: red;\n }\n\n * encapsulation: Styles defined within ShadowDOM, apply only to\n dom inside the ShadowDOM. Polymer uses one of two techniques to implement\n this feature.\n\n By default, rules are prefixed with the host element tag name\n as a descendant selector. This ensures styling does not leak out of the 'top'\n of the element's ShadowDOM. For example,\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n x-foo div {\n font-weight: bold;\n }\n\n becomes:\n\n\n Alternatively, if WebComponents.ShadowCSS.strictStyling is set to true then\n selectors are scoped by adding an attribute selector suffix to each\n simple selector that contains the host element tag name. Each element\n in the element's ShadowDOM template is also given the scope attribute.\n Thus, these rules match only elements that have the scope attribute.\n For example, given a scope name of x-foo, a rule like this:\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n div[x-foo] {\n font-weight: bold;\n }\n\n Note that elements that are dynamically added to a scope must have the scope\n selector added to them manually.\n\n * upper/lower bound encapsulation: Styles which are defined outside a\n shadowRoot should not cross the ShadowDOM boundary and should not apply\n inside a shadowRoot.\n\n This styling behavior is not emulated. Some possible ways to do this that\n were rejected due to complexity and/or performance concerns include: (1) reset\n every possible property for every possible selector for a given scope name;\n (2) re-implement css in javascript.\n\n As an alternative, users should make sure to use selectors\n specific to the scope in which they are working.\n\n * ::distributed: This behavior is not emulated. It's often not necessary\n to style the contents of a specific insertion point and instead, descendants\n of the host element can be styled selectively. Users can also create an\n extra node around an insertion point and style that node's contents\n via descendent selectors. For example, with a shadowRoot like this:\n\n \n \n\n could become:\n\n \n
    \n \n
    \n\n Note the use of @polyfill in the comment above a ShadowDOM specific style\n declaration. This is a directive to the styling shim to use the selector\n in comments in lieu of the next selector when running under polyfill.\n*/\nclass ShadowCss {\n constructor() {\n this.strictStyling = true;\n }\n /*\n * Shim some cssText with the given selector. Returns cssText that can\n * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css).\n *\n * When strictStyling is true:\n * - selector is the attribute added to all elements inside the host,\n * - hostSelector is the attribute added to the host itself.\n */\n shimCssText(cssText, selector, hostSelector = '') {\n const commentsWithHash = extractCommentsWithHash(cssText);\n cssText = stripComments(cssText);\n cssText = this._insertDirectives(cssText);\n const scopedCssText = this._scopeCssText(cssText, selector, hostSelector);\n return [scopedCssText, ...commentsWithHash].join('\\n');\n }\n _insertDirectives(cssText) {\n cssText = this._insertPolyfillDirectivesInCssText(cssText);\n return this._insertPolyfillRulesInCssText(cssText);\n }\n /*\n * Process styles to convert native ShadowDOM rules that will trip\n * up the css parser; we rely on decorating the stylesheet with inert rules.\n *\n * For example, we convert this rule:\n *\n * polyfill-next-selector { content: ':host menu-item'; }\n * ::content menu-item {\n *\n * to this:\n *\n * scopeName menu-item {\n *\n **/\n _insertPolyfillDirectivesInCssText(cssText) {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentNextSelectorRe, function (...m) {\n return m[2] + '{';\n });\n }\n /*\n * Process styles to add rules which will only apply under the polyfill\n *\n * For example, we convert this rule:\n *\n * polyfill-rule {\n * content: ':host menu-item';\n * ...\n * }\n *\n * to this:\n *\n * scopeName menu-item {...}\n *\n **/\n _insertPolyfillRulesInCssText(cssText) {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentRuleRe, (...m) => {\n const rule = m[0].replace(m[1], '').replace(m[2], '');\n return m[4] + rule;\n });\n }\n /* Ensure styles are scoped. Pseudo-scoping takes a rule like:\n *\n * .foo {... }\n *\n * and converts this to\n *\n * scopeName .foo { ... }\n */\n _scopeCssText(cssText, scopeSelector, hostSelector) {\n const unscopedRules = this._extractUnscopedRulesFromCssText(cssText);\n // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively\n cssText = this._insertPolyfillHostInCssText(cssText);\n cssText = this._convertColonHost(cssText);\n cssText = this._convertColonHostContext(cssText);\n cssText = this._convertShadowDOMSelectors(cssText);\n if (scopeSelector) {\n cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector);\n }\n cssText = cssText + '\\n' + unscopedRules;\n return cssText.trim();\n }\n /*\n * Process styles to add rules which will only apply under the polyfill\n * and do not process via CSSOM. (CSSOM is destructive to rules on rare\n * occasions, e.g. -webkit-calc on Safari.)\n * For example, we convert this rule:\n *\n * @polyfill-unscoped-rule {\n * content: 'menu-item';\n * ... }\n *\n * to this:\n *\n * menu-item {...}\n *\n **/\n _extractUnscopedRulesFromCssText(cssText) {\n // Difference with webcomponents.js: does not handle comments\n let r = '';\n let m;\n _cssContentUnscopedRuleRe.lastIndex = 0;\n while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) {\n const rule = m[0].replace(m[2], '').replace(m[1], m[4]);\n r += rule + '\\n\\n';\n }\n return r;\n }\n /*\n * convert a rule like :host(.foo) > .bar { }\n *\n * to\n *\n * .foo > .bar\n */\n _convertColonHost(cssText) {\n return cssText.replace(_cssColonHostRe, (_, hostSelectors, otherSelectors) => {\n if (hostSelectors) {\n const convertedSelectors = [];\n const hostSelectorArray = hostSelectors.split(',').map(p => p.trim());\n for (const hostSelector of hostSelectorArray) {\n if (!hostSelector)\n break;\n const convertedSelector = _polyfillHostNoCombinator + hostSelector.replace(_polyfillHost, '') + otherSelectors;\n convertedSelectors.push(convertedSelector);\n }\n return convertedSelectors.join(',');\n }\n else {\n return _polyfillHostNoCombinator + otherSelectors;\n }\n });\n }\n /*\n * convert a rule like :host-context(.foo) > .bar { }\n *\n * to\n *\n * .foo > .bar, .foo > .bar { }\n *\n * and\n *\n * :host-context(.foo:host) .bar { ... }\n *\n * to\n *\n * .foo .bar { ... }\n */\n _convertColonHostContext(cssText) {\n return cssText.replace(_cssColonHostContextReGlobal, selectorText => {\n var _a;\n // We have captured a selector that contains a `:host-context` rule.\n // For backward compatibility `:host-context` may contain a comma separated list of selectors.\n // Each context selector group will contain a list of host-context selectors that must match\n // an ancestor of the host.\n // (Normally `contextSelectorGroups` will only contain a single array of context selectors.)\n const contextSelectorGroups = [[]];\n // There may be more than `:host-context` in this selector so `selectorText` could look like:\n // `:host-context(.one):host-context(.two)`.\n // Execute `_cssColonHostContextRe` over and over until we have extracted all the\n // `:host-context` selectors from this selector.\n let match;\n while (match = _cssColonHostContextRe.exec(selectorText)) {\n // `match` = [':host-context()', , ]\n // The `` could actually be a comma separated list: `:host-context(.one, .two)`.\n const newContextSelectors = ((_a = match[1]) !== null && _a !== void 0 ? _a : '').trim().split(',').map(m => m.trim()).filter(m => m !== '');\n // We must duplicate the current selector group for each of these new selectors.\n // For example if the current groups are:\n // ```\n // [\n // ['a', 'b', 'c'],\n // ['x', 'y', 'z'],\n // ]\n // ```\n // And we have a new set of comma separated selectors: `:host-context(m,n)` then the new\n // groups are:\n // ```\n // [\n // ['a', 'b', 'c', 'm'],\n // ['x', 'y', 'z', 'm'],\n // ['a', 'b', 'c', 'n'],\n // ['x', 'y', 'z', 'n'],\n // ]\n // ```\n const contextSelectorGroupsLength = contextSelectorGroups.length;\n repeatGroups(contextSelectorGroups, newContextSelectors.length);\n for (let i = 0; i < newContextSelectors.length; i++) {\n for (let j = 0; j < contextSelectorGroupsLength; j++) {\n contextSelectorGroups[j + (i * contextSelectorGroupsLength)].push(newContextSelectors[i]);\n }\n }\n // Update the `selectorText` and see repeat to see if there are more `:host-context`s.\n selectorText = match[2];\n }\n // The context selectors now must be combined with each other to capture all the possible\n // selectors that `:host-context` can match. See `combineHostContextSelectors()` for more\n // info about how this is done.\n return contextSelectorGroups\n .map(contextSelectors => combineHostContextSelectors(contextSelectors, selectorText))\n .join(', ');\n });\n }\n /*\n * Convert combinators like ::shadow and pseudo-elements like ::content\n * by replacing with space.\n */\n _convertShadowDOMSelectors(cssText) {\n return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText);\n }\n // change a selector like 'div' to 'name div'\n _scopeSelectors(cssText, scopeSelector, hostSelector) {\n return processRules(cssText, (rule) => {\n let selector = rule.selector;\n let content = rule.content;\n if (rule.selector[0] !== '@') {\n selector =\n this._scopeSelector(rule.selector, scopeSelector, hostSelector, this.strictStyling);\n }\n else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@document') || rule.selector.startsWith('@layer')) {\n content = this._scopeSelectors(rule.content, scopeSelector, hostSelector);\n }\n else if (rule.selector.startsWith('@font-face') || rule.selector.startsWith('@page')) {\n content = this._stripScopingSelectors(rule.content);\n }\n return new CssRule(selector, content);\n });\n }\n /**\n * Handle a css text that is within a rule that should not contain scope selectors by simply\n * removing them! An example of such a rule is `@font-face`.\n *\n * `@font-face` rules cannot contain nested selectors. Nor can they be nested under a selector.\n * Normally this would be a syntax error by the author of the styles. But in some rare cases, such\n * as importing styles from a library, and applying `:host ::ng-deep` to the imported styles, we\n * can end up with broken css if the imported styles happen to contain @font-face rules.\n *\n * For example:\n *\n * ```\n * :host ::ng-deep {\n * import 'some/lib/containing/font-face';\n * }\n *\n * Similar logic applies to `@page` rules which can contain a particular set of properties,\n * as well as some specific at-rules. Since they can't be encapsulated, we have to strip\n * any scoping selectors from them. For more information: https://www.w3.org/TR/css-page-3\n * ```\n */\n _stripScopingSelectors(cssText) {\n return processRules(cssText, rule => {\n const selector = rule.selector.replace(_shadowDeepSelectors, ' ')\n .replace(_polyfillHostNoCombinatorRe, ' ');\n return new CssRule(selector, rule.content);\n });\n }\n _scopeSelector(selector, scopeSelector, hostSelector, strict) {\n return selector.split(',')\n .map(part => part.trim().split(_shadowDeepSelectors))\n .map((deepParts) => {\n const [shallowPart, ...otherParts] = deepParts;\n const applyScope = (shallowPart) => {\n if (this._selectorNeedsScoping(shallowPart, scopeSelector)) {\n return strict ?\n this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) :\n this._applySelectorScope(shallowPart, scopeSelector, hostSelector);\n }\n else {\n return shallowPart;\n }\n };\n return [applyScope(shallowPart), ...otherParts].join(' ');\n })\n .join(', ');\n }\n _selectorNeedsScoping(selector, scopeSelector) {\n const re = this._makeScopeMatcher(scopeSelector);\n return !re.test(selector);\n }\n _makeScopeMatcher(scopeSelector) {\n const lre = /\\[/g;\n const rre = /\\]/g;\n scopeSelector = scopeSelector.replace(lre, '\\\\[').replace(rre, '\\\\]');\n return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');\n }\n _applySelectorScope(selector, scopeSelector, hostSelector) {\n // Difference from webcomponents.js: scopeSelector could not be an array\n return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector);\n }\n // scope via name and [is=name]\n _applySimpleSelectorScope(selector, scopeSelector, hostSelector) {\n // In Android browser, the lastIndex is not reset when the regex is used in String.replace()\n _polyfillHostRe.lastIndex = 0;\n if (_polyfillHostRe.test(selector)) {\n const replaceBy = this.strictStyling ? `[${hostSelector}]` : scopeSelector;\n return selector\n .replace(_polyfillHostNoCombinatorRe, (hnc, selector) => {\n return selector.replace(/([^:]*)(:*)(.*)/, (_, before, colon, after) => {\n return before + replaceBy + colon + after;\n });\n })\n .replace(_polyfillHostRe, replaceBy + ' ');\n }\n return scopeSelector + ' ' + selector;\n }\n // return a selector with [name] suffix on each simple selector\n // e.g. .foo.bar > .zot becomes .foo[name].bar[name] > .zot[name] /** @internal */\n _applyStrictSelectorScope(selector, scopeSelector, hostSelector) {\n const isRe = /\\[is=([^\\]]*)\\]/g;\n scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]);\n const attrName = '[' + scopeSelector + ']';\n const _scopeSelectorPart = (p) => {\n let scopedP = p.trim();\n if (!scopedP) {\n return '';\n }\n if (p.indexOf(_polyfillHostNoCombinator) > -1) {\n scopedP = this._applySimpleSelectorScope(p, scopeSelector, hostSelector);\n }\n else {\n // remove :host since it should be unnecessary\n const t = p.replace(_polyfillHostRe, '');\n if (t.length > 0) {\n const matches = t.match(/([^:]*)(:*)(.*)/);\n if (matches) {\n scopedP = matches[1] + attrName + matches[2] + matches[3];\n }\n }\n }\n return scopedP;\n };\n const safeContent = new SafeSelector(selector);\n selector = safeContent.content();\n let scopedSelector = '';\n let startIndex = 0;\n let res;\n const sep = /( |>|\\+|~(?!=))\\s*/g;\n // If a selector appears before :host it should not be shimmed as it\n // matches on ancestor elements and not on elements in the host's shadow\n // `:host-context(div)` is transformed to\n // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`\n // the `div` is not part of the component in the 2nd selectors and should not be scoped.\n // Historically `component-tag:host` was matching the component so we also want to preserve\n // this behavior to avoid breaking legacy apps (it should not match).\n // The behavior should be:\n // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)\n // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a\n // `:host-context(tag)`)\n const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;\n // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present\n let shouldScope = !hasHost;\n while ((res = sep.exec(selector)) !== null) {\n const separator = res[1];\n const part = selector.slice(startIndex, res.index).trim();\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n const scopedPart = shouldScope ? _scopeSelectorPart(part) : part;\n scopedSelector += `${scopedPart} ${separator} `;\n startIndex = sep.lastIndex;\n }\n const part = selector.substring(startIndex);\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;\n // replace the placeholders with their original values\n return safeContent.restore(scopedSelector);\n }\n _insertPolyfillHostInCssText(selector) {\n return selector.replace(_colonHostContextRe, _polyfillHostContext)\n .replace(_colonHostRe, _polyfillHost);\n }\n}\nclass SafeSelector {\n constructor(selector) {\n this.placeholders = [];\n this.index = 0;\n // Replaces attribute selectors with placeholders.\n // The WS in [attr=\"va lue\"] would otherwise be interpreted as a selector separator.\n selector = this._escapeRegexMatches(selector, /(\\[[^\\]]*\\])/g);\n // CSS allows for certain special characters to be used in selectors if they're escaped.\n // E.g. `.foo:blue` won't match a class called `foo:blue`, because the colon denotes a\n // pseudo-class, but writing `.foo\\:blue` will match, because the colon was escaped.\n // Replace all escape sequences (`\\` followed by a character) with a placeholder so\n // that our handling of pseudo-selectors doesn't mess with them.\n selector = this._escapeRegexMatches(selector, /(\\\\.)/g);\n // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.\n // WS and \"+\" would otherwise be interpreted as selector separators.\n this._content = selector.replace(/(:nth-[-\\w]+)(\\([^)]+\\))/g, (_, pseudo, exp) => {\n const replaceBy = `__ph-${this.index}__`;\n this.placeholders.push(exp);\n this.index++;\n return pseudo + replaceBy;\n });\n }\n restore(content) {\n return content.replace(/__ph-(\\d+)__/g, (_ph, index) => this.placeholders[+index]);\n }\n content() {\n return this._content;\n }\n /**\n * Replaces all of the substrings that match a regex within a\n * special string (e.g. `__ph-0__`, `__ph-1__`, etc).\n */\n _escapeRegexMatches(content, pattern) {\n return content.replace(pattern, (_, keep) => {\n const replaceBy = `__ph-${this.index}__`;\n this.placeholders.push(keep);\n this.index++;\n return replaceBy;\n });\n }\n}\nconst _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\\s]*?(['\"])(.*?)\\1[;\\s]*}([^{]*?){/gim;\nconst _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nconst _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nconst _polyfillHost = '-shadowcsshost';\n// note: :host-context pre-processed to -shadowcsshostcontext.\nconst _polyfillHostContext = '-shadowcsscontext';\nconst _parenSuffix = '(?:\\\\((' +\n '(?:\\\\([^)(]*\\\\)|[^)(]*)+?' +\n ')\\\\))?([^,{]*)';\nconst _cssColonHostRe = new RegExp(_polyfillHost + _parenSuffix, 'gim');\nconst _cssColonHostContextReGlobal = new RegExp(_polyfillHostContext + _parenSuffix, 'gim');\nconst _cssColonHostContextRe = new RegExp(_polyfillHostContext + _parenSuffix, 'im');\nconst _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';\nconst _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\\s]*)/;\nconst _shadowDOMSelectorsRe = [\n /::shadow/g,\n /::content/g,\n // Deprecated selectors\n /\\/shadow-deep\\//g,\n /\\/shadow\\//g,\n];\n// The deep combinator is deprecated in the CSS spec\n// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future.\n// see https://github.com/angular/angular/pull/17677\nconst _shadowDeepSelectors = /(?:>>>)|(?:\\/deep\\/)|(?:::ng-deep)/g;\nconst _selectorReSuffix = '([>\\\\s~+[.,{:][\\\\s\\\\S]*)?$';\nconst _polyfillHostRe = /-shadowcsshost/gim;\nconst _colonHostRe = /:host/gim;\nconst _colonHostContextRe = /:host-context/gim;\nconst _commentRe = /\\/\\*[\\s\\S]*?\\*\\//g;\nfunction stripComments(input) {\n return input.replace(_commentRe, '');\n}\nconst _commentWithHashRe = /\\/\\*\\s*#\\s*source(Mapping)?URL=[\\s\\S]+?\\*\\//g;\nfunction extractCommentsWithHash(input) {\n return input.match(_commentWithHashRe) || [];\n}\nconst BLOCK_PLACEHOLDER = '%BLOCK%';\nconst QUOTE_PLACEHOLDER = '%QUOTED%';\nconst _ruleRe = /(\\s*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))/g;\nconst _quotedRe = /%QUOTED%/g;\nconst CONTENT_PAIRS = new Map([['{', '}']]);\nconst QUOTE_PAIRS = new Map([[`\"`, `\"`], [`'`, `'`]]);\nclass CssRule {\n constructor(selector, content) {\n this.selector = selector;\n this.content = content;\n }\n}\nfunction processRules(input, ruleCallback) {\n const inputWithEscapedQuotes = escapeBlocks(input, QUOTE_PAIRS, QUOTE_PLACEHOLDER);\n const inputWithEscapedBlocks = escapeBlocks(inputWithEscapedQuotes.escapedString, CONTENT_PAIRS, BLOCK_PLACEHOLDER);\n let nextBlockIndex = 0;\n let nextQuoteIndex = 0;\n return inputWithEscapedBlocks.escapedString\n .replace(_ruleRe, (...m) => {\n const selector = m[2];\n let content = '';\n let suffix = m[4];\n let contentPrefix = '';\n if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {\n content = inputWithEscapedBlocks.blocks[nextBlockIndex++];\n suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);\n contentPrefix = '{';\n }\n const rule = ruleCallback(new CssRule(selector, content));\n return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;\n })\n .replace(_quotedRe, () => inputWithEscapedQuotes.blocks[nextQuoteIndex++]);\n}\nclass StringWithEscapedBlocks {\n constructor(escapedString, blocks) {\n this.escapedString = escapedString;\n this.blocks = blocks;\n }\n}\nfunction escapeBlocks(input, charPairs, placeholder) {\n const resultParts = [];\n const escapedBlocks = [];\n let openCharCount = 0;\n let nonBlockStartIndex = 0;\n let blockStartIndex = -1;\n let openChar;\n let closeChar;\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n if (char === '\\\\') {\n i++;\n }\n else if (char === closeChar) {\n openCharCount--;\n if (openCharCount === 0) {\n escapedBlocks.push(input.substring(blockStartIndex, i));\n resultParts.push(placeholder);\n nonBlockStartIndex = i;\n blockStartIndex = -1;\n openChar = closeChar = undefined;\n }\n }\n else if (char === openChar) {\n openCharCount++;\n }\n else if (openCharCount === 0 && charPairs.has(char)) {\n openChar = char;\n closeChar = charPairs.get(char);\n openCharCount = 1;\n blockStartIndex = i + 1;\n resultParts.push(input.substring(nonBlockStartIndex, blockStartIndex));\n }\n }\n if (blockStartIndex !== -1) {\n escapedBlocks.push(input.substring(blockStartIndex));\n resultParts.push(placeholder);\n }\n else {\n resultParts.push(input.substring(nonBlockStartIndex));\n }\n return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks);\n}\n/**\n * Combine the `contextSelectors` with the `hostMarker` and the `otherSelectors`\n * to create a selector that matches the same as `:host-context()`.\n *\n * Given a single context selector `A` we need to output selectors that match on the host and as an\n * ancestor of the host:\n *\n * ```\n * A , A {}\n * ```\n *\n * When there is more than one context selector we also have to create combinations of those\n * selectors with each other. For example if there are `A` and `B` selectors the output is:\n *\n * ```\n * AB, AB , A B,\n * B A, A B , B A {}\n * ```\n *\n * And so on...\n *\n * @param hostMarker the string that selects the host element.\n * @param contextSelectors an array of context selectors that will be combined.\n * @param otherSelectors the rest of the selectors that are not context selectors.\n */\nfunction combineHostContextSelectors(contextSelectors, otherSelectors) {\n const hostMarker = _polyfillHostNoCombinator;\n _polyfillHostRe.lastIndex = 0; // reset the regex to ensure we get an accurate test\n const otherSelectorsHasHost = _polyfillHostRe.test(otherSelectors);\n // If there are no context selectors then just output a host marker\n if (contextSelectors.length === 0) {\n return hostMarker + otherSelectors;\n }\n const combined = [contextSelectors.pop() || ''];\n while (contextSelectors.length > 0) {\n const length = combined.length;\n const contextSelector = contextSelectors.pop();\n for (let i = 0; i < length; i++) {\n const previousSelectors = combined[i];\n // Add the new selector as a descendant of the previous selectors\n combined[length * 2 + i] = previousSelectors + ' ' + contextSelector;\n // Add the new selector as an ancestor of the previous selectors\n combined[length + i] = contextSelector + ' ' + previousSelectors;\n // Add the new selector to act on the same element as the previous selectors\n combined[i] = contextSelector + previousSelectors;\n }\n }\n // Finally connect the selector to the `hostMarker`s: either acting directly on the host\n // (A) or as an ancestor (A ).\n return combined\n .map(s => otherSelectorsHasHost ?\n `${s}${otherSelectors}` :\n `${s}${hostMarker}${otherSelectors}, ${s} ${hostMarker}${otherSelectors}`)\n .join(',');\n}\n/**\n * Mutate the given `groups` array so that there are `multiples` clones of the original array\n * stored.\n *\n * For example `repeatGroups([a, b], 3)` will result in `[a, b, a, b, a, b]` - but importantly the\n * newly added groups will be clones of the original.\n *\n * @param groups An array of groups of strings that will be repeated. This array is mutated\n * in-place.\n * @param multiples The number of times the current groups should appear.\n */\nfunction repeatGroups(groups, multiples) {\n const length = groups.length;\n for (let i = 1; i < multiples; i++) {\n for (let j = 0; j < length; j++) {\n groups[j + (i * length)] = groups[j].slice(0);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Parses string representation of a style and converts it into object literal.\n *\n * @param value string representation of style as used in the `style` attribute in HTML.\n * Example: `color: red; height: auto`.\n * @returns An array of style property name and value pairs, e.g. `['color', 'red', 'height',\n * 'auto']`\n */\nfunction parse(value) {\n // we use a string array here instead of a string map\n // because a string-map is not guaranteed to retain the\n // order of the entries whereas a string array can be\n // constructed in a [key, value, key, value] format.\n const styles = [];\n let i = 0;\n let parenDepth = 0;\n let quote = 0 /* Char.QuoteNone */;\n let valueStart = 0;\n let propStart = 0;\n let currentProp = null;\n let valueHasQuotes = false;\n while (i < value.length) {\n const token = value.charCodeAt(i++);\n switch (token) {\n case 40 /* Char.OpenParen */:\n parenDepth++;\n break;\n case 41 /* Char.CloseParen */:\n parenDepth--;\n break;\n case 39 /* Char.QuoteSingle */:\n // valueStart needs to be there since prop values don't\n // have quotes in CSS\n valueHasQuotes = valueHasQuotes || valueStart > 0;\n if (quote === 0 /* Char.QuoteNone */) {\n quote = 39 /* Char.QuoteSingle */;\n }\n else if (quote === 39 /* Char.QuoteSingle */ && value.charCodeAt(i - 1) !== 92 /* Char.BackSlash */) {\n quote = 0 /* Char.QuoteNone */;\n }\n break;\n case 34 /* Char.QuoteDouble */:\n // same logic as above\n valueHasQuotes = valueHasQuotes || valueStart > 0;\n if (quote === 0 /* Char.QuoteNone */) {\n quote = 34 /* Char.QuoteDouble */;\n }\n else if (quote === 34 /* Char.QuoteDouble */ && value.charCodeAt(i - 1) !== 92 /* Char.BackSlash */) {\n quote = 0 /* Char.QuoteNone */;\n }\n break;\n case 58 /* Char.Colon */:\n if (!currentProp && parenDepth === 0 && quote === 0 /* Char.QuoteNone */) {\n currentProp = hyphenate(value.substring(propStart, i - 1).trim());\n valueStart = i;\n }\n break;\n case 59 /* Char.Semicolon */:\n if (currentProp && valueStart > 0 && parenDepth === 0 && quote === 0 /* Char.QuoteNone */) {\n const styleVal = value.substring(valueStart, i - 1).trim();\n styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal);\n propStart = i;\n valueStart = 0;\n currentProp = null;\n valueHasQuotes = false;\n }\n break;\n }\n }\n if (currentProp && valueStart) {\n const styleVal = value.slice(valueStart).trim();\n styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal);\n }\n return styles;\n}\nfunction stripUnnecessaryQuotes(value) {\n const qS = value.charCodeAt(0);\n const qE = value.charCodeAt(value.length - 1);\n if (qS == qE && (qS == 39 /* Char.QuoteSingle */ || qS == 34 /* Char.QuoteDouble */)) {\n const tempValue = value.substring(1, value.length - 1);\n // special case to avoid using a multi-quoted string that was just chomped\n // (e.g. `font-family: \"Verdana\", \"sans-serif\"`)\n if (tempValue.indexOf('\\'') == -1 && tempValue.indexOf('\"') == -1) {\n value = tempValue;\n }\n }\n return value;\n}\nfunction hyphenate(value) {\n return value\n .replace(/[a-z][A-Z]/g, v => {\n return v.charAt(0) + '-' + v.charAt(1);\n })\n .toLowerCase();\n}\n\nconst IMPORTANT_FLAG = '!important';\n/**\n * Minimum amount of binding slots required in the runtime for style/class bindings.\n *\n * Styling in Angular uses up two slots in the runtime LView/TData data structures to\n * record binding data, property information and metadata.\n *\n * When a binding is registered it will place the following information in the `LView`:\n *\n * slot 1) binding value\n * slot 2) cached value (all other values collected before it in string form)\n *\n * When a binding is registered it will place the following information in the `TData`:\n *\n * slot 1) prop name\n * slot 2) binding index that points to the previous style/class binding (and some extra config\n * values)\n *\n * Let's imagine we have a binding that looks like so:\n *\n * ```\n *
    \n * ```\n *\n * Our `LView` and `TData` data-structures look like so:\n *\n * ```typescript\n * LView = [\n * // ...\n * x, // value of x\n * \"width: x\",\n *\n * y, // value of y\n * \"width: x; height: y\",\n * // ...\n * ];\n *\n * TData = [\n * // ...\n * \"width\", // binding slot 20\n * 0,\n *\n * \"height\",\n * 20,\n * // ...\n * ];\n * ```\n *\n * */\nconst MIN_STYLING_BINDING_SLOTS_REQUIRED = 2;\n/**\n * Produces creation/update instructions for all styling bindings (class and style)\n *\n * It also produces the creation instruction to register all initial styling values\n * (which are all the static class=\"...\" and style=\"...\" attribute values that exist\n * on an element within a template).\n *\n * The builder class below handles producing instructions for the following cases:\n *\n * - Static style/class attributes (style=\"...\" and class=\"...\")\n * - Dynamic style/class map bindings ([style]=\"map\" and [class]=\"map|string\")\n * - Dynamic style/class property bindings ([style.prop]=\"exp\" and [class.name]=\"exp\")\n *\n * Due to the complex relationship of all of these cases, the instructions generated\n * for these attributes/properties/bindings must be done so in the correct order. The\n * order which these must be generated is as follows:\n *\n * if (createMode) {\n * styling(...)\n * }\n * if (updateMode) {\n * styleMap(...)\n * classMap(...)\n * styleProp(...)\n * classProp(...)\n * }\n *\n * The creation/update methods within the builder class produce these instructions.\n */\nclass StylingBuilder {\n constructor(_directiveExpr) {\n this._directiveExpr = _directiveExpr;\n /** Whether or not there are any static styling values present */\n this._hasInitialValues = false;\n /**\n * Whether or not there are any styling bindings present\n * (i.e. `[style]`, `[class]`, `[style.prop]` or `[class.name]`)\n */\n this.hasBindings = false;\n this.hasBindingsWithPipes = false;\n /** the input for [class] (if it exists) */\n this._classMapInput = null;\n /** the input for [style] (if it exists) */\n this._styleMapInput = null;\n /** an array of each [style.prop] input */\n this._singleStyleInputs = null;\n /** an array of each [class.name] input */\n this._singleClassInputs = null;\n this._lastStylingInput = null;\n this._firstStylingInput = null;\n // maps are used instead of hash maps because a Map will\n // retain the ordering of the keys\n /**\n * Represents the location of each style binding in the template\n * (e.g. `
    ` implies\n * that `width=0` and `height=1`)\n */\n this._stylesIndex = new Map();\n /**\n * Represents the location of each class binding in the template\n * (e.g. `
    ` implies\n * that `big=0` and `hidden=1`)\n */\n this._classesIndex = new Map();\n this._initialStyleValues = [];\n this._initialClassValues = [];\n }\n /**\n * Registers a given input to the styling builder to be later used when producing AOT code.\n *\n * The code below will only accept the input if it is somehow tied to styling (whether it be\n * style/class bindings or static style/class attributes).\n */\n registerBoundInput(input) {\n // [attr.style] or [attr.class] are skipped in the code below,\n // they should not be treated as styling-based bindings since\n // they are intended to be written directly to the attr and\n // will therefore skip all style/class resolution that is present\n // with style=\"\", [style]=\"\" and [style.prop]=\"\", class=\"\",\n // [class.prop]=\"\". [class]=\"\" assignments\n let binding = null;\n let name = input.name;\n switch (input.type) {\n case 0 /* BindingType.Property */:\n binding = this.registerInputBasedOnName(name, input.value, input.sourceSpan);\n break;\n case 3 /* BindingType.Style */:\n binding = this.registerStyleInput(name, false, input.value, input.sourceSpan, input.unit);\n break;\n case 2 /* BindingType.Class */:\n binding = this.registerClassInput(name, false, input.value, input.sourceSpan);\n break;\n }\n return binding ? true : false;\n }\n registerInputBasedOnName(name, expression, sourceSpan) {\n let binding = null;\n const prefix = name.substring(0, 6);\n const isStyle = name === 'style' || prefix === 'style.' || prefix === 'style!';\n const isClass = !isStyle && (name === 'class' || prefix === 'class.' || prefix === 'class!');\n if (isStyle || isClass) {\n const isMapBased = name.charAt(5) !== '.'; // style.prop or class.prop makes this a no\n const property = name.slice(isMapBased ? 5 : 6); // the dot explains why there's a +1\n if (isStyle) {\n binding = this.registerStyleInput(property, isMapBased, expression, sourceSpan);\n }\n else {\n binding = this.registerClassInput(property, isMapBased, expression, sourceSpan);\n }\n }\n return binding;\n }\n registerStyleInput(name, isMapBased, value, sourceSpan, suffix) {\n if (isEmptyExpression(value)) {\n return null;\n }\n // CSS custom properties are case-sensitive so we shouldn't normalize them.\n // See: https://www.w3.org/TR/css-variables-1/#defining-variables\n if (!isCssCustomProperty(name)) {\n name = hyphenate(name);\n }\n const { property, hasOverrideFlag, suffix: bindingSuffix } = parseProperty(name);\n suffix = typeof suffix === 'string' && suffix.length !== 0 ? suffix : bindingSuffix;\n const entry = { name: property, suffix: suffix, value, sourceSpan, hasOverrideFlag };\n if (isMapBased) {\n this._styleMapInput = entry;\n }\n else {\n (this._singleStyleInputs = this._singleStyleInputs || []).push(entry);\n registerIntoMap(this._stylesIndex, property);\n }\n this._lastStylingInput = entry;\n this._firstStylingInput = this._firstStylingInput || entry;\n this._checkForPipes(value);\n this.hasBindings = true;\n return entry;\n }\n registerClassInput(name, isMapBased, value, sourceSpan) {\n if (isEmptyExpression(value)) {\n return null;\n }\n const { property, hasOverrideFlag } = parseProperty(name);\n const entry = { name: property, value, sourceSpan, hasOverrideFlag, suffix: null };\n if (isMapBased) {\n this._classMapInput = entry;\n }\n else {\n (this._singleClassInputs = this._singleClassInputs || []).push(entry);\n registerIntoMap(this._classesIndex, property);\n }\n this._lastStylingInput = entry;\n this._firstStylingInput = this._firstStylingInput || entry;\n this._checkForPipes(value);\n this.hasBindings = true;\n return entry;\n }\n _checkForPipes(value) {\n if ((value instanceof ASTWithSource) && (value.ast instanceof BindingPipe)) {\n this.hasBindingsWithPipes = true;\n }\n }\n /**\n * Registers the element's static style string value to the builder.\n *\n * @param value the style string (e.g. `width:100px; height:200px;`)\n */\n registerStyleAttr(value) {\n this._initialStyleValues = parse(value);\n this._hasInitialValues = true;\n }\n /**\n * Registers the element's static class string value to the builder.\n *\n * @param value the className string (e.g. `disabled gold zoom`)\n */\n registerClassAttr(value) {\n this._initialClassValues = value.trim().split(/\\s+/g);\n this._hasInitialValues = true;\n }\n /**\n * Appends all styling-related expressions to the provided attrs array.\n *\n * @param attrs an existing array where each of the styling expressions\n * will be inserted into.\n */\n populateInitialStylingAttrs(attrs) {\n // [CLASS_MARKER, 'foo', 'bar', 'baz' ...]\n if (this._initialClassValues.length) {\n attrs.push(literal(1 /* AttributeMarker.Classes */));\n for (let i = 0; i < this._initialClassValues.length; i++) {\n attrs.push(literal(this._initialClassValues[i]));\n }\n }\n // [STYLE_MARKER, 'width', '200px', 'height', '100px', ...]\n if (this._initialStyleValues.length) {\n attrs.push(literal(2 /* AttributeMarker.Styles */));\n for (let i = 0; i < this._initialStyleValues.length; i += 2) {\n attrs.push(literal(this._initialStyleValues[i]), literal(this._initialStyleValues[i + 1]));\n }\n }\n }\n /**\n * Builds an instruction with all the expressions and parameters for `elementHostAttrs`.\n *\n * The instruction generation code below is used for producing the AOT statement code which is\n * responsible for registering initial styles (within a directive hostBindings' creation block),\n * as well as any of the provided attribute values, to the directive host element.\n */\n assignHostAttrs(attrs, definitionMap) {\n if (this._directiveExpr && (attrs.length || this._hasInitialValues)) {\n this.populateInitialStylingAttrs(attrs);\n definitionMap.set('hostAttrs', literalArr(attrs));\n }\n }\n /**\n * Builds an instruction with all the expressions and parameters for `classMap`.\n *\n * The instruction data will contain all expressions for `classMap` to function\n * which includes the `[class]` expression params.\n */\n buildClassMapInstruction(valueConverter) {\n if (this._classMapInput) {\n return this._buildMapBasedInstruction(valueConverter, true, this._classMapInput);\n }\n return null;\n }\n /**\n * Builds an instruction with all the expressions and parameters for `styleMap`.\n *\n * The instruction data will contain all expressions for `styleMap` to function\n * which includes the `[style]` expression params.\n */\n buildStyleMapInstruction(valueConverter) {\n if (this._styleMapInput) {\n return this._buildMapBasedInstruction(valueConverter, false, this._styleMapInput);\n }\n return null;\n }\n _buildMapBasedInstruction(valueConverter, isClassBased, stylingInput) {\n // each styling binding value is stored in the LView\n // map-based bindings allocate two slots: one for the\n // previous binding value and another for the previous\n // className or style attribute value.\n let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED;\n // these values must be outside of the update block so that they can\n // be evaluated (the AST visit call) during creation time so that any\n // pipes can be picked up in time before the template is built\n const mapValue = stylingInput.value.visit(valueConverter);\n let reference;\n if (mapValue instanceof Interpolation) {\n totalBindingSlotsRequired += mapValue.expressions.length;\n reference = isClassBased ? getClassMapInterpolationExpression(mapValue) :\n getStyleMapInterpolationExpression(mapValue);\n }\n else {\n reference = isClassBased ? Identifiers.classMap : Identifiers.styleMap;\n }\n return {\n reference,\n calls: [{\n supportsInterpolation: true,\n sourceSpan: stylingInput.sourceSpan,\n allocateBindingSlots: totalBindingSlotsRequired,\n params: (convertFn) => {\n const convertResult = convertFn(mapValue);\n const params = Array.isArray(convertResult) ? convertResult : [convertResult];\n return params;\n }\n }]\n };\n }\n _buildSingleInputs(reference, inputs, valueConverter, getInterpolationExpressionFn, isClassBased) {\n const instructions = [];\n inputs.forEach(input => {\n const previousInstruction = instructions[instructions.length - 1];\n const value = input.value.visit(valueConverter);\n let referenceForCall = reference;\n // each styling binding value is stored in the LView\n // but there are two values stored for each binding:\n // 1) the value itself\n // 2) an intermediate value (concatenation of style up to this point).\n // We need to store the intermediate value so that we don't allocate\n // the strings on each CD.\n let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED;\n if (value instanceof Interpolation) {\n totalBindingSlotsRequired += value.expressions.length;\n if (getInterpolationExpressionFn) {\n referenceForCall = getInterpolationExpressionFn(value);\n }\n }\n const call = {\n sourceSpan: input.sourceSpan,\n allocateBindingSlots: totalBindingSlotsRequired,\n supportsInterpolation: !!getInterpolationExpressionFn,\n params: (convertFn) => {\n // params => stylingProp(propName, value, suffix)\n const params = [];\n params.push(literal(input.name));\n const convertResult = convertFn(value);\n if (Array.isArray(convertResult)) {\n params.push(...convertResult);\n }\n else {\n params.push(convertResult);\n }\n // [style.prop] bindings may use suffix values (e.g. px, em, etc...), therefore,\n // if that is detected then we need to pass that in as an optional param.\n if (!isClassBased && input.suffix !== null) {\n params.push(literal(input.suffix));\n }\n return params;\n }\n };\n // If we ended up generating a call to the same instruction as the previous styling property\n // we can chain the calls together safely to save some bytes, otherwise we have to generate\n // a separate instruction call. This is primarily a concern with interpolation instructions\n // where we may start off with one `reference`, but end up using another based on the\n // number of interpolations.\n if (previousInstruction && previousInstruction.reference === referenceForCall) {\n previousInstruction.calls.push(call);\n }\n else {\n instructions.push({ reference: referenceForCall, calls: [call] });\n }\n });\n return instructions;\n }\n _buildClassInputs(valueConverter) {\n if (this._singleClassInputs) {\n return this._buildSingleInputs(Identifiers.classProp, this._singleClassInputs, valueConverter, null, true);\n }\n return [];\n }\n _buildStyleInputs(valueConverter) {\n if (this._singleStyleInputs) {\n return this._buildSingleInputs(Identifiers.styleProp, this._singleStyleInputs, valueConverter, getStylePropInterpolationExpression, false);\n }\n return [];\n }\n /**\n * Constructs all instructions which contain the expressions that will be placed\n * into the update block of a template function or a directive hostBindings function.\n */\n buildUpdateLevelInstructions(valueConverter) {\n const instructions = [];\n if (this.hasBindings) {\n const styleMapInstruction = this.buildStyleMapInstruction(valueConverter);\n if (styleMapInstruction) {\n instructions.push(styleMapInstruction);\n }\n const classMapInstruction = this.buildClassMapInstruction(valueConverter);\n if (classMapInstruction) {\n instructions.push(classMapInstruction);\n }\n instructions.push(...this._buildStyleInputs(valueConverter));\n instructions.push(...this._buildClassInputs(valueConverter));\n }\n return instructions;\n }\n}\nfunction registerIntoMap(map, key) {\n if (!map.has(key)) {\n map.set(key, map.size);\n }\n}\nfunction parseProperty(name) {\n let hasOverrideFlag = false;\n const overrideIndex = name.indexOf(IMPORTANT_FLAG);\n if (overrideIndex !== -1) {\n name = overrideIndex > 0 ? name.substring(0, overrideIndex) : '';\n hasOverrideFlag = true;\n }\n let suffix = null;\n let property = name;\n const unitIndex = name.lastIndexOf('.');\n if (unitIndex > 0) {\n suffix = name.slice(unitIndex + 1);\n property = name.substring(0, unitIndex);\n }\n return { property, suffix, hasOverrideFlag };\n}\n/**\n * Gets the instruction to generate for an interpolated class map.\n * @param interpolation An Interpolation AST\n */\nfunction getClassMapInterpolationExpression(interpolation) {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return Identifiers.classMap;\n case 3:\n return Identifiers.classMapInterpolate1;\n case 5:\n return Identifiers.classMapInterpolate2;\n case 7:\n return Identifiers.classMapInterpolate3;\n case 9:\n return Identifiers.classMapInterpolate4;\n case 11:\n return Identifiers.classMapInterpolate5;\n case 13:\n return Identifiers.classMapInterpolate6;\n case 15:\n return Identifiers.classMapInterpolate7;\n case 17:\n return Identifiers.classMapInterpolate8;\n default:\n return Identifiers.classMapInterpolateV;\n }\n}\n/**\n * Gets the instruction to generate for an interpolated style map.\n * @param interpolation An Interpolation AST\n */\nfunction getStyleMapInterpolationExpression(interpolation) {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return Identifiers.styleMap;\n case 3:\n return Identifiers.styleMapInterpolate1;\n case 5:\n return Identifiers.styleMapInterpolate2;\n case 7:\n return Identifiers.styleMapInterpolate3;\n case 9:\n return Identifiers.styleMapInterpolate4;\n case 11:\n return Identifiers.styleMapInterpolate5;\n case 13:\n return Identifiers.styleMapInterpolate6;\n case 15:\n return Identifiers.styleMapInterpolate7;\n case 17:\n return Identifiers.styleMapInterpolate8;\n default:\n return Identifiers.styleMapInterpolateV;\n }\n}\n/**\n * Gets the instruction to generate for an interpolated style prop.\n * @param interpolation An Interpolation AST\n */\nfunction getStylePropInterpolationExpression(interpolation) {\n switch (getInterpolationArgsLength(interpolation)) {\n case 1:\n return Identifiers.styleProp;\n case 3:\n return Identifiers.stylePropInterpolate1;\n case 5:\n return Identifiers.stylePropInterpolate2;\n case 7:\n return Identifiers.stylePropInterpolate3;\n case 9:\n return Identifiers.stylePropInterpolate4;\n case 11:\n return Identifiers.stylePropInterpolate5;\n case 13:\n return Identifiers.stylePropInterpolate6;\n case 15:\n return Identifiers.stylePropInterpolate7;\n case 17:\n return Identifiers.stylePropInterpolate8;\n default:\n return Identifiers.stylePropInterpolateV;\n }\n}\n/**\n * Checks whether property name is a custom CSS property.\n * See: https://www.w3.org/TR/css-variables-1\n */\nfunction isCssCustomProperty(name) {\n return name.startsWith('--');\n}\nfunction isEmptyExpression(ast) {\n if (ast instanceof ASTWithSource) {\n ast = ast.ast;\n }\n return ast instanceof EmptyExpr;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"Character\"] = 0] = \"Character\";\n TokenType[TokenType[\"Identifier\"] = 1] = \"Identifier\";\n TokenType[TokenType[\"PrivateIdentifier\"] = 2] = \"PrivateIdentifier\";\n TokenType[TokenType[\"Keyword\"] = 3] = \"Keyword\";\n TokenType[TokenType[\"String\"] = 4] = \"String\";\n TokenType[TokenType[\"Operator\"] = 5] = \"Operator\";\n TokenType[TokenType[\"Number\"] = 6] = \"Number\";\n TokenType[TokenType[\"Error\"] = 7] = \"Error\";\n})(TokenType || (TokenType = {}));\nconst KEYWORDS = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];\nclass Lexer {\n tokenize(text) {\n const scanner = new _Scanner(text);\n const tokens = [];\n let token = scanner.scanToken();\n while (token != null) {\n tokens.push(token);\n token = scanner.scanToken();\n }\n return tokens;\n }\n}\nclass Token {\n constructor(index, end, type, numValue, strValue) {\n this.index = index;\n this.end = end;\n this.type = type;\n this.numValue = numValue;\n this.strValue = strValue;\n }\n isCharacter(code) {\n return this.type == TokenType.Character && this.numValue == code;\n }\n isNumber() {\n return this.type == TokenType.Number;\n }\n isString() {\n return this.type == TokenType.String;\n }\n isOperator(operator) {\n return this.type == TokenType.Operator && this.strValue == operator;\n }\n isIdentifier() {\n return this.type == TokenType.Identifier;\n }\n isPrivateIdentifier() {\n return this.type == TokenType.PrivateIdentifier;\n }\n isKeyword() {\n return this.type == TokenType.Keyword;\n }\n isKeywordLet() {\n return this.type == TokenType.Keyword && this.strValue == 'let';\n }\n isKeywordAs() {\n return this.type == TokenType.Keyword && this.strValue == 'as';\n }\n isKeywordNull() {\n return this.type == TokenType.Keyword && this.strValue == 'null';\n }\n isKeywordUndefined() {\n return this.type == TokenType.Keyword && this.strValue == 'undefined';\n }\n isKeywordTrue() {\n return this.type == TokenType.Keyword && this.strValue == 'true';\n }\n isKeywordFalse() {\n return this.type == TokenType.Keyword && this.strValue == 'false';\n }\n isKeywordThis() {\n return this.type == TokenType.Keyword && this.strValue == 'this';\n }\n isError() {\n return this.type == TokenType.Error;\n }\n toNumber() {\n return this.type == TokenType.Number ? this.numValue : -1;\n }\n toString() {\n switch (this.type) {\n case TokenType.Character:\n case TokenType.Identifier:\n case TokenType.Keyword:\n case TokenType.Operator:\n case TokenType.PrivateIdentifier:\n case TokenType.String:\n case TokenType.Error:\n return this.strValue;\n case TokenType.Number:\n return this.numValue.toString();\n default:\n return null;\n }\n }\n}\nfunction newCharacterToken(index, end, code) {\n return new Token(index, end, TokenType.Character, code, String.fromCharCode(code));\n}\nfunction newIdentifierToken(index, end, text) {\n return new Token(index, end, TokenType.Identifier, 0, text);\n}\nfunction newPrivateIdentifierToken(index, end, text) {\n return new Token(index, end, TokenType.PrivateIdentifier, 0, text);\n}\nfunction newKeywordToken(index, end, text) {\n return new Token(index, end, TokenType.Keyword, 0, text);\n}\nfunction newOperatorToken(index, end, text) {\n return new Token(index, end, TokenType.Operator, 0, text);\n}\nfunction newStringToken(index, end, text) {\n return new Token(index, end, TokenType.String, 0, text);\n}\nfunction newNumberToken(index, end, n) {\n return new Token(index, end, TokenType.Number, n, '');\n}\nfunction newErrorToken(index, end, message) {\n return new Token(index, end, TokenType.Error, 0, message);\n}\nconst EOF = new Token(-1, -1, TokenType.Character, 0, '');\nclass _Scanner {\n constructor(input) {\n this.input = input;\n this.peek = 0;\n this.index = -1;\n this.length = input.length;\n this.advance();\n }\n advance() {\n this.peek = ++this.index >= this.length ? $EOF : this.input.charCodeAt(this.index);\n }\n scanToken() {\n const input = this.input, length = this.length;\n let peek = this.peek, index = this.index;\n // Skip whitespace.\n while (peek <= $SPACE) {\n if (++index >= length) {\n peek = $EOF;\n break;\n }\n else {\n peek = input.charCodeAt(index);\n }\n }\n this.peek = peek;\n this.index = index;\n if (index >= length) {\n return null;\n }\n // Handle identifiers and numbers.\n if (isIdentifierStart(peek))\n return this.scanIdentifier();\n if (isDigit(peek))\n return this.scanNumber(index);\n const start = index;\n switch (peek) {\n case $PERIOD:\n this.advance();\n return isDigit(this.peek) ? this.scanNumber(start) :\n newCharacterToken(start, this.index, $PERIOD);\n case $LPAREN:\n case $RPAREN:\n case $LBRACE:\n case $RBRACE:\n case $LBRACKET:\n case $RBRACKET:\n case $COMMA:\n case $COLON:\n case $SEMICOLON:\n return this.scanCharacter(start, peek);\n case $SQ:\n case $DQ:\n return this.scanString();\n case $HASH:\n return this.scanPrivateIdentifier();\n case $PLUS:\n case $MINUS:\n case $STAR:\n case $SLASH:\n case $PERCENT:\n case $CARET:\n return this.scanOperator(start, String.fromCharCode(peek));\n case $QUESTION:\n return this.scanQuestion(start);\n case $LT:\n case $GT:\n return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '=');\n case $BANG:\n case $EQ:\n return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '=', $EQ, '=');\n case $AMPERSAND:\n return this.scanComplexOperator(start, '&', $AMPERSAND, '&');\n case $BAR:\n return this.scanComplexOperator(start, '|', $BAR, '|');\n case $NBSP:\n while (isWhitespace(this.peek))\n this.advance();\n return this.scanToken();\n }\n this.advance();\n return this.error(`Unexpected character [${String.fromCharCode(peek)}]`, 0);\n }\n scanCharacter(start, code) {\n this.advance();\n return newCharacterToken(start, this.index, code);\n }\n scanOperator(start, str) {\n this.advance();\n return newOperatorToken(start, this.index, str);\n }\n /**\n * Tokenize a 2/3 char long operator\n *\n * @param start start index in the expression\n * @param one first symbol (always part of the operator)\n * @param twoCode code point for the second symbol\n * @param two second symbol (part of the operator when the second code point matches)\n * @param threeCode code point for the third symbol\n * @param three third symbol (part of the operator when provided and matches source expression)\n */\n scanComplexOperator(start, one, twoCode, two, threeCode, three) {\n this.advance();\n let str = one;\n if (this.peek == twoCode) {\n this.advance();\n str += two;\n }\n if (threeCode != null && this.peek == threeCode) {\n this.advance();\n str += three;\n }\n return newOperatorToken(start, this.index, str);\n }\n scanIdentifier() {\n const start = this.index;\n this.advance();\n while (isIdentifierPart(this.peek))\n this.advance();\n const str = this.input.substring(start, this.index);\n return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, this.index, str) :\n newIdentifierToken(start, this.index, str);\n }\n /** Scans an ECMAScript private identifier. */\n scanPrivateIdentifier() {\n const start = this.index;\n this.advance();\n if (!isIdentifierStart(this.peek)) {\n return this.error('Invalid character [#]', -1);\n }\n while (isIdentifierPart(this.peek))\n this.advance();\n const identifierName = this.input.substring(start, this.index);\n return newPrivateIdentifierToken(start, this.index, identifierName);\n }\n scanNumber(start) {\n let simple = (this.index === start);\n let hasSeparators = false;\n this.advance(); // Skip initial digit.\n while (true) {\n if (isDigit(this.peek)) {\n // Do nothing.\n }\n else if (this.peek === $_) {\n // Separators are only valid when they're surrounded by digits. E.g. `1_0_1` is\n // valid while `_101` and `101_` are not. The separator can't be next to the decimal\n // point or another separator either. Note that it's unlikely that we'll hit a case where\n // the underscore is at the start, because that's a valid identifier and it will be picked\n // up earlier in the parsing. We validate for it anyway just in case.\n if (!isDigit(this.input.charCodeAt(this.index - 1)) ||\n !isDigit(this.input.charCodeAt(this.index + 1))) {\n return this.error('Invalid numeric separator', 0);\n }\n hasSeparators = true;\n }\n else if (this.peek === $PERIOD) {\n simple = false;\n }\n else if (isExponentStart(this.peek)) {\n this.advance();\n if (isExponentSign(this.peek))\n this.advance();\n if (!isDigit(this.peek))\n return this.error('Invalid exponent', -1);\n simple = false;\n }\n else {\n break;\n }\n this.advance();\n }\n let str = this.input.substring(start, this.index);\n if (hasSeparators) {\n str = str.replace(/_/g, '');\n }\n const value = simple ? parseIntAutoRadix(str) : parseFloat(str);\n return newNumberToken(start, this.index, value);\n }\n scanString() {\n const start = this.index;\n const quote = this.peek;\n this.advance(); // Skip initial quote.\n let buffer = '';\n let marker = this.index;\n const input = this.input;\n while (this.peek != quote) {\n if (this.peek == $BACKSLASH) {\n buffer += input.substring(marker, this.index);\n this.advance();\n let unescapedCode;\n // Workaround for TS2.1-introduced type strictness\n this.peek = this.peek;\n if (this.peek == $u) {\n // 4 character hex code for unicode character.\n const hex = input.substring(this.index + 1, this.index + 5);\n if (/^[0-9a-f]+$/i.test(hex)) {\n unescapedCode = parseInt(hex, 16);\n }\n else {\n return this.error(`Invalid unicode escape [\\\\u${hex}]`, 0);\n }\n for (let i = 0; i < 5; i++) {\n this.advance();\n }\n }\n else {\n unescapedCode = unescape(this.peek);\n this.advance();\n }\n buffer += String.fromCharCode(unescapedCode);\n marker = this.index;\n }\n else if (this.peek == $EOF) {\n return this.error('Unterminated quote', 0);\n }\n else {\n this.advance();\n }\n }\n const last = input.substring(marker, this.index);\n this.advance(); // Skip terminating quote.\n return newStringToken(start, this.index, buffer + last);\n }\n scanQuestion(start) {\n this.advance();\n let str = '?';\n // Either `a ?? b` or 'a?.b'.\n if (this.peek === $QUESTION || this.peek === $PERIOD) {\n str += this.peek === $PERIOD ? '.' : '?';\n this.advance();\n }\n return newOperatorToken(start, this.index, str);\n }\n error(message, offset) {\n const position = this.index + offset;\n return newErrorToken(position, this.index, `Lexer Error: ${message} at column ${position} in expression [${this.input}]`);\n }\n}\nfunction isIdentifierStart(code) {\n return ($a <= code && code <= $z) || ($A <= code && code <= $Z) ||\n (code == $_) || (code == $$);\n}\nfunction isIdentifier(input) {\n if (input.length == 0)\n return false;\n const scanner = new _Scanner(input);\n if (!isIdentifierStart(scanner.peek))\n return false;\n scanner.advance();\n while (scanner.peek !== $EOF) {\n if (!isIdentifierPart(scanner.peek))\n return false;\n scanner.advance();\n }\n return true;\n}\nfunction isIdentifierPart(code) {\n return isAsciiLetter(code) || isDigit(code) || (code == $_) ||\n (code == $$);\n}\nfunction isExponentStart(code) {\n return code == $e || code == $E;\n}\nfunction isExponentSign(code) {\n return code == $MINUS || code == $PLUS;\n}\nfunction unescape(code) {\n switch (code) {\n case $n:\n return $LF;\n case $f:\n return $FF;\n case $r:\n return $CR;\n case $t:\n return $TAB;\n case $v:\n return $VTAB;\n default:\n return code;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SplitInterpolation {\n constructor(strings, expressions, offsets) {\n this.strings = strings;\n this.expressions = expressions;\n this.offsets = offsets;\n }\n}\nclass TemplateBindingParseResult {\n constructor(templateBindings, warnings, errors) {\n this.templateBindings = templateBindings;\n this.warnings = warnings;\n this.errors = errors;\n }\n}\nclass Parser$1 {\n constructor(_lexer) {\n this._lexer = _lexer;\n this.errors = [];\n }\n parseAction(input, isAssignmentEvent, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {\n this._checkNoInterpolation(input, location, interpolationConfig);\n const sourceToLex = this._stripComments(input);\n const tokens = this._lexer.tokenize(sourceToLex);\n let flags = 1 /* ParseFlags.Action */;\n if (isAssignmentEvent) {\n flags |= 2 /* ParseFlags.AssignmentEvent */;\n }\n const ast = new _ParseAST(input, location, absoluteOffset, tokens, flags, this.errors, 0).parseChain();\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n parseBinding(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {\n const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig);\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n checkSimpleExpression(ast) {\n const checker = new SimpleExpressionChecker();\n ast.visit(checker);\n return checker.errors;\n }\n parseSimpleBinding(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {\n const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig);\n const errors = this.checkSimpleExpression(ast);\n if (errors.length > 0) {\n this._reportError(`Host binding expression cannot contain ${errors.join(' ')}`, input, location);\n }\n return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);\n }\n _reportError(message, input, errLocation, ctxLocation) {\n this.errors.push(new ParserError(message, input, errLocation, ctxLocation));\n }\n _parseBindingAst(input, location, absoluteOffset, interpolationConfig) {\n this._checkNoInterpolation(input, location, interpolationConfig);\n const sourceToLex = this._stripComments(input);\n const tokens = this._lexer.tokenize(sourceToLex);\n return new _ParseAST(input, location, absoluteOffset, tokens, 0 /* ParseFlags.None */, this.errors, 0)\n .parseChain();\n }\n /**\n * Parse microsyntax template expression and return a list of bindings or\n * parsing errors in case the given expression is invalid.\n *\n * For example,\n * ```\n *
    \n * ^ ^ absoluteValueOffset for `templateValue`\n * absoluteKeyOffset for `templateKey`\n * ```\n * contains three bindings:\n * 1. ngFor -> null\n * 2. item -> NgForOfContext.$implicit\n * 3. ngForOf -> items\n *\n * This is apparent from the de-sugared template:\n * ```\n * \n * ```\n *\n * @param templateKey name of directive, without the * prefix. For example: ngIf, ngFor\n * @param templateValue RHS of the microsyntax attribute\n * @param templateUrl template filename if it's external, component filename if it's inline\n * @param absoluteKeyOffset start of the `templateKey`\n * @param absoluteValueOffset start of the `templateValue`\n */\n parseTemplateBindings(templateKey, templateValue, templateUrl, absoluteKeyOffset, absoluteValueOffset) {\n const tokens = this._lexer.tokenize(templateValue);\n const parser = new _ParseAST(templateValue, templateUrl, absoluteValueOffset, tokens, 0 /* ParseFlags.None */, this.errors, 0 /* relative offset */);\n return parser.parseTemplateBindings({\n source: templateKey,\n span: new AbsoluteSourceSpan(absoluteKeyOffset, absoluteKeyOffset + templateKey.length),\n });\n }\n parseInterpolation(input, location, absoluteOffset, interpolatedTokens, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {\n const { strings, expressions, offsets } = this.splitInterpolation(input, location, interpolatedTokens, interpolationConfig);\n if (expressions.length === 0)\n return null;\n const expressionNodes = [];\n for (let i = 0; i < expressions.length; ++i) {\n const expressionText = expressions[i].text;\n const sourceToLex = this._stripComments(expressionText);\n const tokens = this._lexer.tokenize(sourceToLex);\n const ast = new _ParseAST(input, location, absoluteOffset, tokens, 0 /* ParseFlags.None */, this.errors, offsets[i])\n .parseChain();\n expressionNodes.push(ast);\n }\n return this.createInterpolationAst(strings.map(s => s.text), expressionNodes, input, location, absoluteOffset);\n }\n /**\n * Similar to `parseInterpolation`, but treats the provided string as a single expression\n * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).\n * This is used for parsing the switch expression in ICUs.\n */\n parseInterpolationExpression(expression, location, absoluteOffset) {\n const sourceToLex = this._stripComments(expression);\n const tokens = this._lexer.tokenize(sourceToLex);\n const ast = new _ParseAST(expression, location, absoluteOffset, tokens, 0 /* ParseFlags.None */, this.errors, 0)\n .parseChain();\n const strings = ['', '']; // The prefix and suffix strings are both empty\n return this.createInterpolationAst(strings, [ast], expression, location, absoluteOffset);\n }\n createInterpolationAst(strings, expressions, input, location, absoluteOffset) {\n const span = new ParseSpan(0, input.length);\n const interpolation = new Interpolation(span, span.toAbsolute(absoluteOffset), strings, expressions);\n return new ASTWithSource(interpolation, input, location, absoluteOffset, this.errors);\n }\n /**\n * Splits a string of text into \"raw\" text segments and expressions present in interpolations in\n * the string.\n * Returns `null` if there are no interpolations, otherwise a\n * `SplitInterpolation` with splits that look like\n * ... \n */\n splitInterpolation(input, location, interpolatedTokens, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {\n var _a;\n const strings = [];\n const expressions = [];\n const offsets = [];\n const inputToTemplateIndexMap = interpolatedTokens ? getIndexMapForOriginalTemplate(interpolatedTokens) : null;\n let i = 0;\n let atInterpolation = false;\n let extendLastString = false;\n let { start: interpStart, end: interpEnd } = interpolationConfig;\n while (i < input.length) {\n if (!atInterpolation) {\n // parse until starting {{\n const start = i;\n i = input.indexOf(interpStart, i);\n if (i === -1) {\n i = input.length;\n }\n const text = input.substring(start, i);\n strings.push({ text, start, end: i });\n atInterpolation = true;\n }\n else {\n // parse from starting {{ to ending }} while ignoring content inside quotes.\n const fullStart = i;\n const exprStart = fullStart + interpStart.length;\n const exprEnd = this._getInterpolationEndIndex(input, interpEnd, exprStart);\n if (exprEnd === -1) {\n // Could not find the end of the interpolation; do not parse an expression.\n // Instead we should extend the content on the last raw string.\n atInterpolation = false;\n extendLastString = true;\n break;\n }\n const fullEnd = exprEnd + interpEnd.length;\n const text = input.substring(exprStart, exprEnd);\n if (text.trim().length === 0) {\n this._reportError('Blank expressions are not allowed in interpolated strings', input, `at column ${i} in`, location);\n }\n expressions.push({ text, start: fullStart, end: fullEnd });\n const startInOriginalTemplate = (_a = inputToTemplateIndexMap === null || inputToTemplateIndexMap === void 0 ? void 0 : inputToTemplateIndexMap.get(fullStart)) !== null && _a !== void 0 ? _a : fullStart;\n const offset = startInOriginalTemplate + interpStart.length;\n offsets.push(offset);\n i = fullEnd;\n atInterpolation = false;\n }\n }\n if (!atInterpolation) {\n // If we are now at a text section, add the remaining content as a raw string.\n if (extendLastString) {\n const piece = strings[strings.length - 1];\n piece.text += input.substring(i);\n piece.end = input.length;\n }\n else {\n strings.push({ text: input.substring(i), start: i, end: input.length });\n }\n }\n return new SplitInterpolation(strings, expressions, offsets);\n }\n wrapLiteralPrimitive(input, location, absoluteOffset) {\n const span = new ParseSpan(0, input == null ? 0 : input.length);\n return new ASTWithSource(new LiteralPrimitive(span, span.toAbsolute(absoluteOffset), input), input, location, absoluteOffset, this.errors);\n }\n _stripComments(input) {\n const i = this._commentStart(input);\n return i != null ? input.substring(0, i) : input;\n }\n _commentStart(input) {\n let outerQuote = null;\n for (let i = 0; i < input.length - 1; i++) {\n const char = input.charCodeAt(i);\n const nextChar = input.charCodeAt(i + 1);\n if (char === $SLASH && nextChar == $SLASH && outerQuote == null)\n return i;\n if (outerQuote === char) {\n outerQuote = null;\n }\n else if (outerQuote == null && isQuote(char)) {\n outerQuote = char;\n }\n }\n return null;\n }\n _checkNoInterpolation(input, location, { start, end }) {\n let startIndex = -1;\n let endIndex = -1;\n for (const charIndex of this._forEachUnquotedChar(input, 0)) {\n if (startIndex === -1) {\n if (input.startsWith(start)) {\n startIndex = charIndex;\n }\n }\n else {\n endIndex = this._getInterpolationEndIndex(input, end, charIndex);\n if (endIndex > -1) {\n break;\n }\n }\n }\n if (startIndex > -1 && endIndex > -1) {\n this._reportError(`Got interpolation (${start}${end}) where expression was expected`, input, `at column ${startIndex} in`, location);\n }\n }\n /**\n * Finds the index of the end of an interpolation expression\n * while ignoring comments and quoted content.\n */\n _getInterpolationEndIndex(input, expressionEnd, start) {\n for (const charIndex of this._forEachUnquotedChar(input, start)) {\n if (input.startsWith(expressionEnd, charIndex)) {\n return charIndex;\n }\n // Nothing else in the expression matters after we've\n // hit a comment so look directly for the end token.\n if (input.startsWith('//', charIndex)) {\n return input.indexOf(expressionEnd, charIndex);\n }\n }\n return -1;\n }\n /**\n * Generator used to iterate over the character indexes of a string that are outside of quotes.\n * @param input String to loop through.\n * @param start Index within the string at which to start.\n */\n *_forEachUnquotedChar(input, start) {\n let currentQuote = null;\n let escapeCount = 0;\n for (let i = start; i < input.length; i++) {\n const char = input[i];\n // Skip the characters inside quotes. Note that we only care about the outer-most\n // quotes matching up and we need to account for escape characters.\n if (isQuote(input.charCodeAt(i)) && (currentQuote === null || currentQuote === char) &&\n escapeCount % 2 === 0) {\n currentQuote = currentQuote === null ? char : null;\n }\n else if (currentQuote === null) {\n yield i;\n }\n escapeCount = char === '\\\\' ? escapeCount + 1 : 0;\n }\n }\n}\n/** Describes a stateful context an expression parser is in. */\nvar ParseContextFlags;\n(function (ParseContextFlags) {\n ParseContextFlags[ParseContextFlags[\"None\"] = 0] = \"None\";\n /**\n * A Writable context is one in which a value may be written to an lvalue.\n * For example, after we see a property access, we may expect a write to the\n * property via the \"=\" operator.\n * prop\n * ^ possible \"=\" after\n */\n ParseContextFlags[ParseContextFlags[\"Writable\"] = 1] = \"Writable\";\n})(ParseContextFlags || (ParseContextFlags = {}));\nclass _ParseAST {\n constructor(input, location, absoluteOffset, tokens, parseFlags, errors, offset) {\n this.input = input;\n this.location = location;\n this.absoluteOffset = absoluteOffset;\n this.tokens = tokens;\n this.parseFlags = parseFlags;\n this.errors = errors;\n this.offset = offset;\n this.rparensExpected = 0;\n this.rbracketsExpected = 0;\n this.rbracesExpected = 0;\n this.context = ParseContextFlags.None;\n // Cache of expression start and input indeces to the absolute source span they map to, used to\n // prevent creating superfluous source spans in `sourceSpan`.\n // A serial of the expression start and input index is used for mapping because both are stateful\n // and may change for subsequent expressions visited by the parser.\n this.sourceSpanCache = new Map();\n this.index = 0;\n }\n peek(offset) {\n const i = this.index + offset;\n return i < this.tokens.length ? this.tokens[i] : EOF;\n }\n get next() {\n return this.peek(0);\n }\n /** Whether all the parser input has been processed. */\n get atEOF() {\n return this.index >= this.tokens.length;\n }\n /**\n * Index of the next token to be processed, or the end of the last token if all have been\n * processed.\n */\n get inputIndex() {\n return this.atEOF ? this.currentEndIndex : this.next.index + this.offset;\n }\n /**\n * End index of the last processed token, or the start of the first token if none have been\n * processed.\n */\n get currentEndIndex() {\n if (this.index > 0) {\n const curToken = this.peek(-1);\n return curToken.end + this.offset;\n }\n // No tokens have been processed yet; return the next token's start or the length of the input\n // if there is no token.\n if (this.tokens.length === 0) {\n return this.input.length + this.offset;\n }\n return this.next.index + this.offset;\n }\n /**\n * Returns the absolute offset of the start of the current token.\n */\n get currentAbsoluteOffset() {\n return this.absoluteOffset + this.inputIndex;\n }\n /**\n * Retrieve a `ParseSpan` from `start` to the current position (or to `artificialEndIndex` if\n * provided).\n *\n * @param start Position from which the `ParseSpan` will start.\n * @param artificialEndIndex Optional ending index to be used if provided (and if greater than the\n * natural ending index)\n */\n span(start, artificialEndIndex) {\n let endIndex = this.currentEndIndex;\n if (artificialEndIndex !== undefined && artificialEndIndex > this.currentEndIndex) {\n endIndex = artificialEndIndex;\n }\n // In some unusual parsing scenarios (like when certain tokens are missing and an `EmptyExpr` is\n // being created), the current token may already be advanced beyond the `currentEndIndex`. This\n // appears to be a deep-seated parser bug.\n //\n // As a workaround for now, swap the start and end indices to ensure a valid `ParseSpan`.\n // TODO(alxhub): fix the bug upstream in the parser state, and remove this workaround.\n if (start > endIndex) {\n const tmp = endIndex;\n endIndex = start;\n start = tmp;\n }\n return new ParseSpan(start, endIndex);\n }\n sourceSpan(start, artificialEndIndex) {\n const serial = `${start}@${this.inputIndex}:${artificialEndIndex}`;\n if (!this.sourceSpanCache.has(serial)) {\n this.sourceSpanCache.set(serial, this.span(start, artificialEndIndex).toAbsolute(this.absoluteOffset));\n }\n return this.sourceSpanCache.get(serial);\n }\n advance() {\n this.index++;\n }\n /**\n * Executes a callback in the provided context.\n */\n withContext(context, cb) {\n this.context |= context;\n const ret = cb();\n this.context ^= context;\n return ret;\n }\n consumeOptionalCharacter(code) {\n if (this.next.isCharacter(code)) {\n this.advance();\n return true;\n }\n else {\n return false;\n }\n }\n peekKeywordLet() {\n return this.next.isKeywordLet();\n }\n peekKeywordAs() {\n return this.next.isKeywordAs();\n }\n /**\n * Consumes an expected character, otherwise emits an error about the missing expected character\n * and skips over the token stream until reaching a recoverable point.\n *\n * See `this.error` and `this.skip` for more details.\n */\n expectCharacter(code) {\n if (this.consumeOptionalCharacter(code))\n return;\n this.error(`Missing expected ${String.fromCharCode(code)}`);\n }\n consumeOptionalOperator(op) {\n if (this.next.isOperator(op)) {\n this.advance();\n return true;\n }\n else {\n return false;\n }\n }\n expectOperator(operator) {\n if (this.consumeOptionalOperator(operator))\n return;\n this.error(`Missing expected operator ${operator}`);\n }\n prettyPrintToken(tok) {\n return tok === EOF ? 'end of input' : `token ${tok}`;\n }\n expectIdentifierOrKeyword() {\n const n = this.next;\n if (!n.isIdentifier() && !n.isKeyword()) {\n if (n.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(n, 'expected identifier or keyword');\n }\n else {\n this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier or keyword`);\n }\n return null;\n }\n this.advance();\n return n.toString();\n }\n expectIdentifierOrKeywordOrString() {\n const n = this.next;\n if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {\n if (n.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(n, 'expected identifier, keyword or string');\n }\n else {\n this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier, keyword, or string`);\n }\n return '';\n }\n this.advance();\n return n.toString();\n }\n parseChain() {\n const exprs = [];\n const start = this.inputIndex;\n while (this.index < this.tokens.length) {\n const expr = this.parsePipe();\n exprs.push(expr);\n if (this.consumeOptionalCharacter($SEMICOLON)) {\n if (!(this.parseFlags & 1 /* ParseFlags.Action */)) {\n this.error('Binding expression cannot contain chained expression');\n }\n while (this.consumeOptionalCharacter($SEMICOLON)) {\n } // read all semicolons\n }\n else if (this.index < this.tokens.length) {\n const errorIndex = this.index;\n this.error(`Unexpected token '${this.next}'`);\n // The `error` call above will skip ahead to the next recovery point in an attempt to\n // recover part of the expression, but that might be the token we started from which will\n // lead to an infinite loop. If that's the case, break the loop assuming that we can't\n // parse further.\n if (this.index === errorIndex) {\n break;\n }\n }\n }\n if (exprs.length === 0) {\n // We have no expressions so create an empty expression that spans the entire input length\n const artificialStart = this.offset;\n const artificialEnd = this.offset + this.input.length;\n return new EmptyExpr(this.span(artificialStart, artificialEnd), this.sourceSpan(artificialStart, artificialEnd));\n }\n if (exprs.length == 1)\n return exprs[0];\n return new Chain(this.span(start), this.sourceSpan(start), exprs);\n }\n parsePipe() {\n const start = this.inputIndex;\n let result = this.parseExpression();\n if (this.consumeOptionalOperator('|')) {\n if (this.parseFlags & 1 /* ParseFlags.Action */) {\n this.error('Cannot have a pipe in an action expression');\n }\n do {\n const nameStart = this.inputIndex;\n let nameId = this.expectIdentifierOrKeyword();\n let nameSpan;\n let fullSpanEnd = undefined;\n if (nameId !== null) {\n nameSpan = this.sourceSpan(nameStart);\n }\n else {\n // No valid identifier was found, so we'll assume an empty pipe name ('').\n nameId = '';\n // However, there may have been whitespace present between the pipe character and the next\n // token in the sequence (or the end of input). We want to track this whitespace so that\n // the `BindingPipe` we produce covers not just the pipe character, but any trailing\n // whitespace beyond it. Another way of thinking about this is that the zero-length name\n // is assumed to be at the end of any whitespace beyond the pipe character.\n //\n // Therefore, we push the end of the `ParseSpan` for this pipe all the way up to the\n // beginning of the next token, or until the end of input if the next token is EOF.\n fullSpanEnd = this.next.index !== -1 ? this.next.index : this.input.length + this.offset;\n // The `nameSpan` for an empty pipe name is zero-length at the end of any whitespace\n // beyond the pipe character.\n nameSpan = new ParseSpan(fullSpanEnd, fullSpanEnd).toAbsolute(this.absoluteOffset);\n }\n const args = [];\n while (this.consumeOptionalCharacter($COLON)) {\n args.push(this.parseExpression());\n // If there are additional expressions beyond the name, then the artificial end for the\n // name is no longer relevant.\n }\n result = new BindingPipe(this.span(start), this.sourceSpan(start, fullSpanEnd), result, nameId, args, nameSpan);\n } while (this.consumeOptionalOperator('|'));\n }\n return result;\n }\n parseExpression() {\n return this.parseConditional();\n }\n parseConditional() {\n const start = this.inputIndex;\n const result = this.parseLogicalOr();\n if (this.consumeOptionalOperator('?')) {\n const yes = this.parsePipe();\n let no;\n if (!this.consumeOptionalCharacter($COLON)) {\n const end = this.inputIndex;\n const expression = this.input.substring(start, end);\n this.error(`Conditional expression ${expression} requires all 3 expressions`);\n no = new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n else {\n no = this.parsePipe();\n }\n return new Conditional(this.span(start), this.sourceSpan(start), result, yes, no);\n }\n else {\n return result;\n }\n }\n parseLogicalOr() {\n // '||'\n const start = this.inputIndex;\n let result = this.parseLogicalAnd();\n while (this.consumeOptionalOperator('||')) {\n const right = this.parseLogicalAnd();\n result = new Binary(this.span(start), this.sourceSpan(start), '||', result, right);\n }\n return result;\n }\n parseLogicalAnd() {\n // '&&'\n const start = this.inputIndex;\n let result = this.parseNullishCoalescing();\n while (this.consumeOptionalOperator('&&')) {\n const right = this.parseNullishCoalescing();\n result = new Binary(this.span(start), this.sourceSpan(start), '&&', result, right);\n }\n return result;\n }\n parseNullishCoalescing() {\n // '??'\n const start = this.inputIndex;\n let result = this.parseEquality();\n while (this.consumeOptionalOperator('??')) {\n const right = this.parseEquality();\n result = new Binary(this.span(start), this.sourceSpan(start), '??', result, right);\n }\n return result;\n }\n parseEquality() {\n // '==','!=','===','!=='\n const start = this.inputIndex;\n let result = this.parseRelational();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '==':\n case '===':\n case '!=':\n case '!==':\n this.advance();\n const right = this.parseRelational();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n parseRelational() {\n // '<', '>', '<=', '>='\n const start = this.inputIndex;\n let result = this.parseAdditive();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '<':\n case '>':\n case '<=':\n case '>=':\n this.advance();\n const right = this.parseAdditive();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n parseAdditive() {\n // '+', '-'\n const start = this.inputIndex;\n let result = this.parseMultiplicative();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '+':\n case '-':\n this.advance();\n let right = this.parseMultiplicative();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n parseMultiplicative() {\n // '*', '%', '/'\n const start = this.inputIndex;\n let result = this.parsePrefix();\n while (this.next.type == TokenType.Operator) {\n const operator = this.next.strValue;\n switch (operator) {\n case '*':\n case '%':\n case '/':\n this.advance();\n let right = this.parsePrefix();\n result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n }\n parsePrefix() {\n if (this.next.type == TokenType.Operator) {\n const start = this.inputIndex;\n const operator = this.next.strValue;\n let result;\n switch (operator) {\n case '+':\n this.advance();\n result = this.parsePrefix();\n return Unary.createPlus(this.span(start), this.sourceSpan(start), result);\n case '-':\n this.advance();\n result = this.parsePrefix();\n return Unary.createMinus(this.span(start), this.sourceSpan(start), result);\n case '!':\n this.advance();\n result = this.parsePrefix();\n return new PrefixNot(this.span(start), this.sourceSpan(start), result);\n }\n }\n return this.parseCallChain();\n }\n parseCallChain() {\n const start = this.inputIndex;\n let result = this.parsePrimary();\n while (true) {\n if (this.consumeOptionalCharacter($PERIOD)) {\n result = this.parseAccessMember(result, start, false);\n }\n else if (this.consumeOptionalOperator('?.')) {\n if (this.consumeOptionalCharacter($LPAREN)) {\n result = this.parseCall(result, start, true);\n }\n else {\n result = this.consumeOptionalCharacter($LBRACKET) ?\n this.parseKeyedReadOrWrite(result, start, true) :\n this.parseAccessMember(result, start, true);\n }\n }\n else if (this.consumeOptionalCharacter($LBRACKET)) {\n result = this.parseKeyedReadOrWrite(result, start, false);\n }\n else if (this.consumeOptionalCharacter($LPAREN)) {\n result = this.parseCall(result, start, false);\n }\n else if (this.consumeOptionalOperator('!')) {\n result = new NonNullAssert(this.span(start), this.sourceSpan(start), result);\n }\n else {\n return result;\n }\n }\n }\n parsePrimary() {\n const start = this.inputIndex;\n if (this.consumeOptionalCharacter($LPAREN)) {\n this.rparensExpected++;\n const result = this.parsePipe();\n this.rparensExpected--;\n this.expectCharacter($RPAREN);\n return result;\n }\n else if (this.next.isKeywordNull()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), null);\n }\n else if (this.next.isKeywordUndefined()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), void 0);\n }\n else if (this.next.isKeywordTrue()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), true);\n }\n else if (this.next.isKeywordFalse()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), false);\n }\n else if (this.next.isKeywordThis()) {\n this.advance();\n return new ThisReceiver(this.span(start), this.sourceSpan(start));\n }\n else if (this.consumeOptionalCharacter($LBRACKET)) {\n this.rbracketsExpected++;\n const elements = this.parseExpressionList($RBRACKET);\n this.rbracketsExpected--;\n this.expectCharacter($RBRACKET);\n return new LiteralArray(this.span(start), this.sourceSpan(start), elements);\n }\n else if (this.next.isCharacter($LBRACE)) {\n return this.parseLiteralMap();\n }\n else if (this.next.isIdentifier()) {\n return this.parseAccessMember(new ImplicitReceiver(this.span(start), this.sourceSpan(start)), start, false);\n }\n else if (this.next.isNumber()) {\n const value = this.next.toNumber();\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), value);\n }\n else if (this.next.isString()) {\n const literalValue = this.next.toString();\n this.advance();\n return new LiteralPrimitive(this.span(start), this.sourceSpan(start), literalValue);\n }\n else if (this.next.isPrivateIdentifier()) {\n this._reportErrorForPrivateIdentifier(this.next, null);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n else if (this.index >= this.tokens.length) {\n this.error(`Unexpected end of expression: ${this.input}`);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n else {\n this.error(`Unexpected token ${this.next}`);\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n }\n parseExpressionList(terminator) {\n const result = [];\n do {\n if (!this.next.isCharacter(terminator)) {\n result.push(this.parsePipe());\n }\n else {\n break;\n }\n } while (this.consumeOptionalCharacter($COMMA));\n return result;\n }\n parseLiteralMap() {\n const keys = [];\n const values = [];\n const start = this.inputIndex;\n this.expectCharacter($LBRACE);\n if (!this.consumeOptionalCharacter($RBRACE)) {\n this.rbracesExpected++;\n do {\n const keyStart = this.inputIndex;\n const quoted = this.next.isString();\n const key = this.expectIdentifierOrKeywordOrString();\n keys.push({ key, quoted });\n // Properties with quoted keys can't use the shorthand syntax.\n if (quoted) {\n this.expectCharacter($COLON);\n values.push(this.parsePipe());\n }\n else if (this.consumeOptionalCharacter($COLON)) {\n values.push(this.parsePipe());\n }\n else {\n const span = this.span(keyStart);\n const sourceSpan = this.sourceSpan(keyStart);\n values.push(new PropertyRead(span, sourceSpan, sourceSpan, new ImplicitReceiver(span, sourceSpan), key));\n }\n } while (this.consumeOptionalCharacter($COMMA));\n this.rbracesExpected--;\n this.expectCharacter($RBRACE);\n }\n return new LiteralMap(this.span(start), this.sourceSpan(start), keys, values);\n }\n parseAccessMember(readReceiver, start, isSafe) {\n const nameStart = this.inputIndex;\n const id = this.withContext(ParseContextFlags.Writable, () => {\n var _a;\n const id = (_a = this.expectIdentifierOrKeyword()) !== null && _a !== void 0 ? _a : '';\n if (id.length === 0) {\n this.error(`Expected identifier for property access`, readReceiver.span.end);\n }\n return id;\n });\n const nameSpan = this.sourceSpan(nameStart);\n let receiver;\n if (isSafe) {\n if (this.consumeOptionalAssignment()) {\n this.error('The \\'?.\\' operator cannot be used in the assignment');\n receiver = new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n else {\n receiver = new SafePropertyRead(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id);\n }\n }\n else {\n if (this.consumeOptionalAssignment()) {\n if (!(this.parseFlags & 1 /* ParseFlags.Action */)) {\n this.error('Bindings cannot contain assignments');\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n }\n const value = this.parseConditional();\n receiver = new PropertyWrite(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id, value);\n }\n else {\n receiver =\n new PropertyRead(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id);\n }\n }\n return receiver;\n }\n parseCall(receiver, start, isSafe) {\n const argumentStart = this.inputIndex;\n this.rparensExpected++;\n const args = this.parseCallArguments();\n const argumentSpan = this.span(argumentStart, this.inputIndex).toAbsolute(this.absoluteOffset);\n this.expectCharacter($RPAREN);\n this.rparensExpected--;\n const span = this.span(start);\n const sourceSpan = this.sourceSpan(start);\n return isSafe ? new SafeCall(span, sourceSpan, receiver, args, argumentSpan) :\n new Call(span, sourceSpan, receiver, args, argumentSpan);\n }\n consumeOptionalAssignment() {\n // When parsing assignment events (originating from two-way-binding aka banana-in-a-box syntax),\n // it is valid for the primary expression to be terminated by the non-null operator. This\n // primary expression is substituted as LHS of the assignment operator to achieve\n // two-way-binding, such that the LHS could be the non-null operator. The grammar doesn't\n // naturally allow for this syntax, so assignment events are parsed specially.\n if ((this.parseFlags & 2 /* ParseFlags.AssignmentEvent */) && this.next.isOperator('!') &&\n this.peek(1).isOperator('=')) {\n // First skip over the ! operator.\n this.advance();\n // Then skip over the = operator, to fully consume the optional assignment operator.\n this.advance();\n return true;\n }\n return this.consumeOptionalOperator('=');\n }\n parseCallArguments() {\n if (this.next.isCharacter($RPAREN))\n return [];\n const positionals = [];\n do {\n positionals.push(this.parsePipe());\n } while (this.consumeOptionalCharacter($COMMA));\n return positionals;\n }\n /**\n * Parses an identifier, a keyword, a string with an optional `-` in between,\n * and returns the string along with its absolute source span.\n */\n expectTemplateBindingKey() {\n let result = '';\n let operatorFound = false;\n const start = this.currentAbsoluteOffset;\n do {\n result += this.expectIdentifierOrKeywordOrString();\n operatorFound = this.consumeOptionalOperator('-');\n if (operatorFound) {\n result += '-';\n }\n } while (operatorFound);\n return {\n source: result,\n span: new AbsoluteSourceSpan(start, start + result.length),\n };\n }\n /**\n * Parse microsyntax template expression and return a list of bindings or\n * parsing errors in case the given expression is invalid.\n *\n * For example,\n * ```\n *
    \n * ```\n * contains five bindings:\n * 1. ngFor -> null\n * 2. item -> NgForOfContext.$implicit\n * 3. ngForOf -> items\n * 4. i -> NgForOfContext.index\n * 5. ngForTrackBy -> func\n *\n * For a full description of the microsyntax grammar, see\n * https://gist.github.com/mhevery/d3530294cff2e4a1b3fe15ff75d08855\n *\n * @param templateKey name of the microsyntax directive, like ngIf, ngFor,\n * without the *, along with its absolute span.\n */\n parseTemplateBindings(templateKey) {\n const bindings = [];\n // The first binding is for the template key itself\n // In *ngFor=\"let item of items\", key = \"ngFor\", value = null\n // In *ngIf=\"cond | pipe\", key = \"ngIf\", value = \"cond | pipe\"\n bindings.push(...this.parseDirectiveKeywordBindings(templateKey));\n while (this.index < this.tokens.length) {\n // If it starts with 'let', then this must be variable declaration\n const letBinding = this.parseLetBinding();\n if (letBinding) {\n bindings.push(letBinding);\n }\n else {\n // Two possible cases here, either `value \"as\" key` or\n // \"directive-keyword expression\". We don't know which case, but both\n // \"value\" and \"directive-keyword\" are template binding key, so consume\n // the key first.\n const key = this.expectTemplateBindingKey();\n // Peek at the next token, if it is \"as\" then this must be variable\n // declaration.\n const binding = this.parseAsBinding(key);\n if (binding) {\n bindings.push(binding);\n }\n else {\n // Otherwise the key must be a directive keyword, like \"of\". Transform\n // the key to actual key. Eg. of -> ngForOf, trackBy -> ngForTrackBy\n key.source =\n templateKey.source + key.source.charAt(0).toUpperCase() + key.source.substring(1);\n bindings.push(...this.parseDirectiveKeywordBindings(key));\n }\n }\n this.consumeStatementTerminator();\n }\n return new TemplateBindingParseResult(bindings, [] /* warnings */, this.errors);\n }\n parseKeyedReadOrWrite(receiver, start, isSafe) {\n return this.withContext(ParseContextFlags.Writable, () => {\n this.rbracketsExpected++;\n const key = this.parsePipe();\n if (key instanceof EmptyExpr) {\n this.error(`Key access cannot be empty`);\n }\n this.rbracketsExpected--;\n this.expectCharacter($RBRACKET);\n if (this.consumeOptionalOperator('=')) {\n if (isSafe) {\n this.error('The \\'?.\\' operator cannot be used in the assignment');\n }\n else {\n const value = this.parseConditional();\n return new KeyedWrite(this.span(start), this.sourceSpan(start), receiver, key, value);\n }\n }\n else {\n return isSafe ? new SafeKeyedRead(this.span(start), this.sourceSpan(start), receiver, key) :\n new KeyedRead(this.span(start), this.sourceSpan(start), receiver, key);\n }\n return new EmptyExpr(this.span(start), this.sourceSpan(start));\n });\n }\n /**\n * Parse a directive keyword, followed by a mandatory expression.\n * For example, \"of items\", \"trackBy: func\".\n * The bindings are: ngForOf -> items, ngForTrackBy -> func\n * There could be an optional \"as\" binding that follows the expression.\n * For example,\n * ```\n * *ngFor=\"let item of items | slice:0:1 as collection\".\n * ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^\n * keyword bound target optional 'as' binding\n * ```\n *\n * @param key binding key, for example, ngFor, ngIf, ngForOf, along with its\n * absolute span.\n */\n parseDirectiveKeywordBindings(key) {\n const bindings = [];\n this.consumeOptionalCharacter($COLON); // trackBy: trackByFunction\n const value = this.getDirectiveBoundTarget();\n let spanEnd = this.currentAbsoluteOffset;\n // The binding could optionally be followed by \"as\". For example,\n // *ngIf=\"cond | pipe as x\". In this case, the key in the \"as\" binding\n // is \"x\" and the value is the template key itself (\"ngIf\"). Note that the\n // 'key' in the current context now becomes the \"value\" in the next binding.\n const asBinding = this.parseAsBinding(key);\n if (!asBinding) {\n this.consumeStatementTerminator();\n spanEnd = this.currentAbsoluteOffset;\n }\n const sourceSpan = new AbsoluteSourceSpan(key.span.start, spanEnd);\n bindings.push(new ExpressionBinding(sourceSpan, key, value));\n if (asBinding) {\n bindings.push(asBinding);\n }\n return bindings;\n }\n /**\n * Return the expression AST for the bound target of a directive keyword\n * binding. For example,\n * ```\n * *ngIf=\"condition | pipe\"\n * ^^^^^^^^^^^^^^^^ bound target for \"ngIf\"\n * *ngFor=\"let item of items\"\n * ^^^^^ bound target for \"ngForOf\"\n * ```\n */\n getDirectiveBoundTarget() {\n if (this.next === EOF || this.peekKeywordAs() || this.peekKeywordLet()) {\n return null;\n }\n const ast = this.parsePipe(); // example: \"condition | async\"\n const { start, end } = ast.span;\n const value = this.input.substring(start, end);\n return new ASTWithSource(ast, value, this.location, this.absoluteOffset + start, this.errors);\n }\n /**\n * Return the binding for a variable declared using `as`. Note that the order\n * of the key-value pair in this declaration is reversed. For example,\n * ```\n * *ngFor=\"let item of items; index as i\"\n * ^^^^^ ^\n * value key\n * ```\n *\n * @param value name of the value in the declaration, \"ngIf\" in the example\n * above, along with its absolute span.\n */\n parseAsBinding(value) {\n if (!this.peekKeywordAs()) {\n return null;\n }\n this.advance(); // consume the 'as' keyword\n const key = this.expectTemplateBindingKey();\n this.consumeStatementTerminator();\n const sourceSpan = new AbsoluteSourceSpan(value.span.start, this.currentAbsoluteOffset);\n return new VariableBinding(sourceSpan, key, value);\n }\n /**\n * Return the binding for a variable declared using `let`. For example,\n * ```\n * *ngFor=\"let item of items; let i=index;\"\n * ^^^^^^^^ ^^^^^^^^^^^\n * ```\n * In the first binding, `item` is bound to `NgForOfContext.$implicit`.\n * In the second binding, `i` is bound to `NgForOfContext.index`.\n */\n parseLetBinding() {\n if (!this.peekKeywordLet()) {\n return null;\n }\n const spanStart = this.currentAbsoluteOffset;\n this.advance(); // consume the 'let' keyword\n const key = this.expectTemplateBindingKey();\n let value = null;\n if (this.consumeOptionalOperator('=')) {\n value = this.expectTemplateBindingKey();\n }\n this.consumeStatementTerminator();\n const sourceSpan = new AbsoluteSourceSpan(spanStart, this.currentAbsoluteOffset);\n return new VariableBinding(sourceSpan, key, value);\n }\n /**\n * Consume the optional statement terminator: semicolon or comma.\n */\n consumeStatementTerminator() {\n this.consumeOptionalCharacter($SEMICOLON) || this.consumeOptionalCharacter($COMMA);\n }\n /**\n * Records an error and skips over the token stream until reaching a recoverable point. See\n * `this.skip` for more details on token skipping.\n */\n error(message, index = null) {\n this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location));\n this.skip();\n }\n locationText(index = null) {\n if (index == null)\n index = this.index;\n return (index < this.tokens.length) ? `at column ${this.tokens[index].index + 1} in` :\n `at the end of the expression`;\n }\n /**\n * Records an error for an unexpected private identifier being discovered.\n * @param token Token representing a private identifier.\n * @param extraMessage Optional additional message being appended to the error.\n */\n _reportErrorForPrivateIdentifier(token, extraMessage) {\n let errorMessage = `Private identifiers are not supported. Unexpected private identifier: ${token}`;\n if (extraMessage !== null) {\n errorMessage += `, ${extraMessage}`;\n }\n this.error(errorMessage);\n }\n /**\n * Error recovery should skip tokens until it encounters a recovery point.\n *\n * The following are treated as unconditional recovery points:\n * - end of input\n * - ';' (parseChain() is always the root production, and it expects a ';')\n * - '|' (since pipes may be chained and each pipe expression may be treated independently)\n *\n * The following are conditional recovery points:\n * - ')', '}', ']' if one of calling productions is expecting one of these symbols\n * - This allows skip() to recover from errors such as '(a.) + 1' allowing more of the AST to\n * be retained (it doesn't skip any tokens as the ')' is retained because of the '(' begins\n * an '(' ')' production).\n * The recovery points of grouping symbols must be conditional as they must be skipped if\n * none of the calling productions are not expecting the closing token else we will never\n * make progress in the case of an extraneous group closing symbol (such as a stray ')').\n * That is, we skip a closing symbol if we are not in a grouping production.\n * - '=' in a `Writable` context\n * - In this context, we are able to recover after seeing the `=` operator, which\n * signals the presence of an independent rvalue expression following the `=` operator.\n *\n * If a production expects one of these token it increments the corresponding nesting count,\n * and then decrements it just prior to checking if the token is in the input.\n */\n skip() {\n let n = this.next;\n while (this.index < this.tokens.length && !n.isCharacter($SEMICOLON) &&\n !n.isOperator('|') && (this.rparensExpected <= 0 || !n.isCharacter($RPAREN)) &&\n (this.rbracesExpected <= 0 || !n.isCharacter($RBRACE)) &&\n (this.rbracketsExpected <= 0 || !n.isCharacter($RBRACKET)) &&\n (!(this.context & ParseContextFlags.Writable) || !n.isOperator('='))) {\n if (this.next.isError()) {\n this.errors.push(new ParserError(this.next.toString(), this.input, this.locationText(), this.location));\n }\n this.advance();\n n = this.next;\n }\n }\n}\nclass SimpleExpressionChecker extends RecursiveAstVisitor {\n constructor() {\n super(...arguments);\n this.errors = [];\n }\n visitPipe() {\n this.errors.push('pipes');\n }\n}\n/**\n * Computes the real offset in the original template for indexes in an interpolation.\n *\n * Because templates can have encoded HTML entities and the input passed to the parser at this stage\n * of the compiler is the _decoded_ value, we need to compute the real offset using the original\n * encoded values in the interpolated tokens. Note that this is only a special case handling for\n * `MlParserTokenType.ENCODED_ENTITY` token types. All other interpolated tokens are expected to\n * have parts which exactly match the input string for parsing the interpolation.\n *\n * @param interpolatedTokens The tokens for the interpolated value.\n *\n * @returns A map of index locations in the decoded template to indexes in the original template\n */\nfunction getIndexMapForOriginalTemplate(interpolatedTokens) {\n let offsetMap = new Map();\n let consumedInOriginalTemplate = 0;\n let consumedInInput = 0;\n let tokenIndex = 0;\n while (tokenIndex < interpolatedTokens.length) {\n const currentToken = interpolatedTokens[tokenIndex];\n if (currentToken.type === 9 /* MlParserTokenType.ENCODED_ENTITY */) {\n const [decoded, encoded] = currentToken.parts;\n consumedInOriginalTemplate += encoded.length;\n consumedInInput += decoded.length;\n }\n else {\n const lengthOfParts = currentToken.parts.reduce((sum, current) => sum + current.length, 0);\n consumedInInput += lengthOfParts;\n consumedInOriginalTemplate += lengthOfParts;\n }\n offsetMap.set(consumedInInput, consumedInOriginalTemplate);\n tokenIndex++;\n }\n return offsetMap;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass NodeWithI18n {\n constructor(sourceSpan, i18n) {\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n}\nclass Text extends NodeWithI18n {\n constructor(value, sourceSpan, tokens, i18n) {\n super(sourceSpan, i18n);\n this.value = value;\n this.tokens = tokens;\n }\n visit(visitor, context) {\n return visitor.visitText(this, context);\n }\n}\nclass Expansion extends NodeWithI18n {\n constructor(switchValue, type, cases, sourceSpan, switchValueSourceSpan, i18n) {\n super(sourceSpan, i18n);\n this.switchValue = switchValue;\n this.type = type;\n this.cases = cases;\n this.switchValueSourceSpan = switchValueSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitExpansion(this, context);\n }\n}\nclass ExpansionCase {\n constructor(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) {\n this.value = value;\n this.expression = expression;\n this.sourceSpan = sourceSpan;\n this.valueSourceSpan = valueSourceSpan;\n this.expSourceSpan = expSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitExpansionCase(this, context);\n }\n}\nclass Attribute extends NodeWithI18n {\n constructor(name, value, sourceSpan, keySpan, valueSpan, valueTokens, i18n) {\n super(sourceSpan, i18n);\n this.name = name;\n this.value = value;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.valueTokens = valueTokens;\n }\n visit(visitor, context) {\n return visitor.visitAttribute(this, context);\n }\n}\nclass Element extends NodeWithI18n {\n constructor(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan = null, i18n) {\n super(sourceSpan, i18n);\n this.name = name;\n this.attrs = attrs;\n this.children = children;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitElement(this, context);\n }\n}\nclass Comment {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitComment(this, context);\n }\n}\nfunction visitAll(visitor, nodes, context = null) {\n const result = [];\n const visit = visitor.visit ?\n (ast) => visitor.visit(ast, context) || ast.visit(visitor, context) :\n (ast) => ast.visit(visitor, context);\n nodes.forEach(ast => {\n const astResult = visit(ast);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\nclass RecursiveVisitor {\n constructor() { }\n visitElement(ast, context) {\n this.visitChildren(context, visit => {\n visit(ast.attrs);\n visit(ast.children);\n });\n }\n visitAttribute(ast, context) { }\n visitText(ast, context) { }\n visitComment(ast, context) { }\n visitExpansion(ast, context) {\n return this.visitChildren(context, visit => {\n visit(ast.cases);\n });\n }\n visitExpansionCase(ast, context) { }\n visitChildren(context, cb) {\n let results = [];\n let t = this;\n function visit(children) {\n if (children)\n results.push(visitAll(t, children, context));\n }\n cb(visit);\n return Array.prototype.concat.apply([], results);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Mapping between all HTML entity names and their unicode representation.\n// Generated from https://html.spec.whatwg.org/multipage/entities.json by stripping\n// the `&` and `;` from the keys and removing the duplicates.\n// see https://www.w3.org/TR/html51/syntax.html#named-character-references\nconst NAMED_ENTITIES = {\n 'AElig': '\\u00C6',\n 'AMP': '\\u0026',\n 'amp': '\\u0026',\n 'Aacute': '\\u00C1',\n 'Abreve': '\\u0102',\n 'Acirc': '\\u00C2',\n 'Acy': '\\u0410',\n 'Afr': '\\uD835\\uDD04',\n 'Agrave': '\\u00C0',\n 'Alpha': '\\u0391',\n 'Amacr': '\\u0100',\n 'And': '\\u2A53',\n 'Aogon': '\\u0104',\n 'Aopf': '\\uD835\\uDD38',\n 'ApplyFunction': '\\u2061',\n 'af': '\\u2061',\n 'Aring': '\\u00C5',\n 'angst': '\\u00C5',\n 'Ascr': '\\uD835\\uDC9C',\n 'Assign': '\\u2254',\n 'colone': '\\u2254',\n 'coloneq': '\\u2254',\n 'Atilde': '\\u00C3',\n 'Auml': '\\u00C4',\n 'Backslash': '\\u2216',\n 'setminus': '\\u2216',\n 'setmn': '\\u2216',\n 'smallsetminus': '\\u2216',\n 'ssetmn': '\\u2216',\n 'Barv': '\\u2AE7',\n 'Barwed': '\\u2306',\n 'doublebarwedge': '\\u2306',\n 'Bcy': '\\u0411',\n 'Because': '\\u2235',\n 'becaus': '\\u2235',\n 'because': '\\u2235',\n 'Bernoullis': '\\u212C',\n 'Bscr': '\\u212C',\n 'bernou': '\\u212C',\n 'Beta': '\\u0392',\n 'Bfr': '\\uD835\\uDD05',\n 'Bopf': '\\uD835\\uDD39',\n 'Breve': '\\u02D8',\n 'breve': '\\u02D8',\n 'Bumpeq': '\\u224E',\n 'HumpDownHump': '\\u224E',\n 'bump': '\\u224E',\n 'CHcy': '\\u0427',\n 'COPY': '\\u00A9',\n 'copy': '\\u00A9',\n 'Cacute': '\\u0106',\n 'Cap': '\\u22D2',\n 'CapitalDifferentialD': '\\u2145',\n 'DD': '\\u2145',\n 'Cayleys': '\\u212D',\n 'Cfr': '\\u212D',\n 'Ccaron': '\\u010C',\n 'Ccedil': '\\u00C7',\n 'Ccirc': '\\u0108',\n 'Cconint': '\\u2230',\n 'Cdot': '\\u010A',\n 'Cedilla': '\\u00B8',\n 'cedil': '\\u00B8',\n 'CenterDot': '\\u00B7',\n 'centerdot': '\\u00B7',\n 'middot': '\\u00B7',\n 'Chi': '\\u03A7',\n 'CircleDot': '\\u2299',\n 'odot': '\\u2299',\n 'CircleMinus': '\\u2296',\n 'ominus': '\\u2296',\n 'CirclePlus': '\\u2295',\n 'oplus': '\\u2295',\n 'CircleTimes': '\\u2297',\n 'otimes': '\\u2297',\n 'ClockwiseContourIntegral': '\\u2232',\n 'cwconint': '\\u2232',\n 'CloseCurlyDoubleQuote': '\\u201D',\n 'rdquo': '\\u201D',\n 'rdquor': '\\u201D',\n 'CloseCurlyQuote': '\\u2019',\n 'rsquo': '\\u2019',\n 'rsquor': '\\u2019',\n 'Colon': '\\u2237',\n 'Proportion': '\\u2237',\n 'Colone': '\\u2A74',\n 'Congruent': '\\u2261',\n 'equiv': '\\u2261',\n 'Conint': '\\u222F',\n 'DoubleContourIntegral': '\\u222F',\n 'ContourIntegral': '\\u222E',\n 'conint': '\\u222E',\n 'oint': '\\u222E',\n 'Copf': '\\u2102',\n 'complexes': '\\u2102',\n 'Coproduct': '\\u2210',\n 'coprod': '\\u2210',\n 'CounterClockwiseContourIntegral': '\\u2233',\n 'awconint': '\\u2233',\n 'Cross': '\\u2A2F',\n 'Cscr': '\\uD835\\uDC9E',\n 'Cup': '\\u22D3',\n 'CupCap': '\\u224D',\n 'asympeq': '\\u224D',\n 'DDotrahd': '\\u2911',\n 'DJcy': '\\u0402',\n 'DScy': '\\u0405',\n 'DZcy': '\\u040F',\n 'Dagger': '\\u2021',\n 'ddagger': '\\u2021',\n 'Darr': '\\u21A1',\n 'Dashv': '\\u2AE4',\n 'DoubleLeftTee': '\\u2AE4',\n 'Dcaron': '\\u010E',\n 'Dcy': '\\u0414',\n 'Del': '\\u2207',\n 'nabla': '\\u2207',\n 'Delta': '\\u0394',\n 'Dfr': '\\uD835\\uDD07',\n 'DiacriticalAcute': '\\u00B4',\n 'acute': '\\u00B4',\n 'DiacriticalDot': '\\u02D9',\n 'dot': '\\u02D9',\n 'DiacriticalDoubleAcute': '\\u02DD',\n 'dblac': '\\u02DD',\n 'DiacriticalGrave': '\\u0060',\n 'grave': '\\u0060',\n 'DiacriticalTilde': '\\u02DC',\n 'tilde': '\\u02DC',\n 'Diamond': '\\u22C4',\n 'diam': '\\u22C4',\n 'diamond': '\\u22C4',\n 'DifferentialD': '\\u2146',\n 'dd': '\\u2146',\n 'Dopf': '\\uD835\\uDD3B',\n 'Dot': '\\u00A8',\n 'DoubleDot': '\\u00A8',\n 'die': '\\u00A8',\n 'uml': '\\u00A8',\n 'DotDot': '\\u20DC',\n 'DotEqual': '\\u2250',\n 'doteq': '\\u2250',\n 'esdot': '\\u2250',\n 'DoubleDownArrow': '\\u21D3',\n 'Downarrow': '\\u21D3',\n 'dArr': '\\u21D3',\n 'DoubleLeftArrow': '\\u21D0',\n 'Leftarrow': '\\u21D0',\n 'lArr': '\\u21D0',\n 'DoubleLeftRightArrow': '\\u21D4',\n 'Leftrightarrow': '\\u21D4',\n 'hArr': '\\u21D4',\n 'iff': '\\u21D4',\n 'DoubleLongLeftArrow': '\\u27F8',\n 'Longleftarrow': '\\u27F8',\n 'xlArr': '\\u27F8',\n 'DoubleLongLeftRightArrow': '\\u27FA',\n 'Longleftrightarrow': '\\u27FA',\n 'xhArr': '\\u27FA',\n 'DoubleLongRightArrow': '\\u27F9',\n 'Longrightarrow': '\\u27F9',\n 'xrArr': '\\u27F9',\n 'DoubleRightArrow': '\\u21D2',\n 'Implies': '\\u21D2',\n 'Rightarrow': '\\u21D2',\n 'rArr': '\\u21D2',\n 'DoubleRightTee': '\\u22A8',\n 'vDash': '\\u22A8',\n 'DoubleUpArrow': '\\u21D1',\n 'Uparrow': '\\u21D1',\n 'uArr': '\\u21D1',\n 'DoubleUpDownArrow': '\\u21D5',\n 'Updownarrow': '\\u21D5',\n 'vArr': '\\u21D5',\n 'DoubleVerticalBar': '\\u2225',\n 'par': '\\u2225',\n 'parallel': '\\u2225',\n 'shortparallel': '\\u2225',\n 'spar': '\\u2225',\n 'DownArrow': '\\u2193',\n 'ShortDownArrow': '\\u2193',\n 'darr': '\\u2193',\n 'downarrow': '\\u2193',\n 'DownArrowBar': '\\u2913',\n 'DownArrowUpArrow': '\\u21F5',\n 'duarr': '\\u21F5',\n 'DownBreve': '\\u0311',\n 'DownLeftRightVector': '\\u2950',\n 'DownLeftTeeVector': '\\u295E',\n 'DownLeftVector': '\\u21BD',\n 'leftharpoondown': '\\u21BD',\n 'lhard': '\\u21BD',\n 'DownLeftVectorBar': '\\u2956',\n 'DownRightTeeVector': '\\u295F',\n 'DownRightVector': '\\u21C1',\n 'rhard': '\\u21C1',\n 'rightharpoondown': '\\u21C1',\n 'DownRightVectorBar': '\\u2957',\n 'DownTee': '\\u22A4',\n 'top': '\\u22A4',\n 'DownTeeArrow': '\\u21A7',\n 'mapstodown': '\\u21A7',\n 'Dscr': '\\uD835\\uDC9F',\n 'Dstrok': '\\u0110',\n 'ENG': '\\u014A',\n 'ETH': '\\u00D0',\n 'Eacute': '\\u00C9',\n 'Ecaron': '\\u011A',\n 'Ecirc': '\\u00CA',\n 'Ecy': '\\u042D',\n 'Edot': '\\u0116',\n 'Efr': '\\uD835\\uDD08',\n 'Egrave': '\\u00C8',\n 'Element': '\\u2208',\n 'in': '\\u2208',\n 'isin': '\\u2208',\n 'isinv': '\\u2208',\n 'Emacr': '\\u0112',\n 'EmptySmallSquare': '\\u25FB',\n 'EmptyVerySmallSquare': '\\u25AB',\n 'Eogon': '\\u0118',\n 'Eopf': '\\uD835\\uDD3C',\n 'Epsilon': '\\u0395',\n 'Equal': '\\u2A75',\n 'EqualTilde': '\\u2242',\n 'eqsim': '\\u2242',\n 'esim': '\\u2242',\n 'Equilibrium': '\\u21CC',\n 'rightleftharpoons': '\\u21CC',\n 'rlhar': '\\u21CC',\n 'Escr': '\\u2130',\n 'expectation': '\\u2130',\n 'Esim': '\\u2A73',\n 'Eta': '\\u0397',\n 'Euml': '\\u00CB',\n 'Exists': '\\u2203',\n 'exist': '\\u2203',\n 'ExponentialE': '\\u2147',\n 'ee': '\\u2147',\n 'exponentiale': '\\u2147',\n 'Fcy': '\\u0424',\n 'Ffr': '\\uD835\\uDD09',\n 'FilledSmallSquare': '\\u25FC',\n 'FilledVerySmallSquare': '\\u25AA',\n 'blacksquare': '\\u25AA',\n 'squarf': '\\u25AA',\n 'squf': '\\u25AA',\n 'Fopf': '\\uD835\\uDD3D',\n 'ForAll': '\\u2200',\n 'forall': '\\u2200',\n 'Fouriertrf': '\\u2131',\n 'Fscr': '\\u2131',\n 'GJcy': '\\u0403',\n 'GT': '\\u003E',\n 'gt': '\\u003E',\n 'Gamma': '\\u0393',\n 'Gammad': '\\u03DC',\n 'Gbreve': '\\u011E',\n 'Gcedil': '\\u0122',\n 'Gcirc': '\\u011C',\n 'Gcy': '\\u0413',\n 'Gdot': '\\u0120',\n 'Gfr': '\\uD835\\uDD0A',\n 'Gg': '\\u22D9',\n 'ggg': '\\u22D9',\n 'Gopf': '\\uD835\\uDD3E',\n 'GreaterEqual': '\\u2265',\n 'ge': '\\u2265',\n 'geq': '\\u2265',\n 'GreaterEqualLess': '\\u22DB',\n 'gel': '\\u22DB',\n 'gtreqless': '\\u22DB',\n 'GreaterFullEqual': '\\u2267',\n 'gE': '\\u2267',\n 'geqq': '\\u2267',\n 'GreaterGreater': '\\u2AA2',\n 'GreaterLess': '\\u2277',\n 'gl': '\\u2277',\n 'gtrless': '\\u2277',\n 'GreaterSlantEqual': '\\u2A7E',\n 'geqslant': '\\u2A7E',\n 'ges': '\\u2A7E',\n 'GreaterTilde': '\\u2273',\n 'gsim': '\\u2273',\n 'gtrsim': '\\u2273',\n 'Gscr': '\\uD835\\uDCA2',\n 'Gt': '\\u226B',\n 'NestedGreaterGreater': '\\u226B',\n 'gg': '\\u226B',\n 'HARDcy': '\\u042A',\n 'Hacek': '\\u02C7',\n 'caron': '\\u02C7',\n 'Hat': '\\u005E',\n 'Hcirc': '\\u0124',\n 'Hfr': '\\u210C',\n 'Poincareplane': '\\u210C',\n 'HilbertSpace': '\\u210B',\n 'Hscr': '\\u210B',\n 'hamilt': '\\u210B',\n 'Hopf': '\\u210D',\n 'quaternions': '\\u210D',\n 'HorizontalLine': '\\u2500',\n 'boxh': '\\u2500',\n 'Hstrok': '\\u0126',\n 'HumpEqual': '\\u224F',\n 'bumpe': '\\u224F',\n 'bumpeq': '\\u224F',\n 'IEcy': '\\u0415',\n 'IJlig': '\\u0132',\n 'IOcy': '\\u0401',\n 'Iacute': '\\u00CD',\n 'Icirc': '\\u00CE',\n 'Icy': '\\u0418',\n 'Idot': '\\u0130',\n 'Ifr': '\\u2111',\n 'Im': '\\u2111',\n 'image': '\\u2111',\n 'imagpart': '\\u2111',\n 'Igrave': '\\u00CC',\n 'Imacr': '\\u012A',\n 'ImaginaryI': '\\u2148',\n 'ii': '\\u2148',\n 'Int': '\\u222C',\n 'Integral': '\\u222B',\n 'int': '\\u222B',\n 'Intersection': '\\u22C2',\n 'bigcap': '\\u22C2',\n 'xcap': '\\u22C2',\n 'InvisibleComma': '\\u2063',\n 'ic': '\\u2063',\n 'InvisibleTimes': '\\u2062',\n 'it': '\\u2062',\n 'Iogon': '\\u012E',\n 'Iopf': '\\uD835\\uDD40',\n 'Iota': '\\u0399',\n 'Iscr': '\\u2110',\n 'imagline': '\\u2110',\n 'Itilde': '\\u0128',\n 'Iukcy': '\\u0406',\n 'Iuml': '\\u00CF',\n 'Jcirc': '\\u0134',\n 'Jcy': '\\u0419',\n 'Jfr': '\\uD835\\uDD0D',\n 'Jopf': '\\uD835\\uDD41',\n 'Jscr': '\\uD835\\uDCA5',\n 'Jsercy': '\\u0408',\n 'Jukcy': '\\u0404',\n 'KHcy': '\\u0425',\n 'KJcy': '\\u040C',\n 'Kappa': '\\u039A',\n 'Kcedil': '\\u0136',\n 'Kcy': '\\u041A',\n 'Kfr': '\\uD835\\uDD0E',\n 'Kopf': '\\uD835\\uDD42',\n 'Kscr': '\\uD835\\uDCA6',\n 'LJcy': '\\u0409',\n 'LT': '\\u003C',\n 'lt': '\\u003C',\n 'Lacute': '\\u0139',\n 'Lambda': '\\u039B',\n 'Lang': '\\u27EA',\n 'Laplacetrf': '\\u2112',\n 'Lscr': '\\u2112',\n 'lagran': '\\u2112',\n 'Larr': '\\u219E',\n 'twoheadleftarrow': '\\u219E',\n 'Lcaron': '\\u013D',\n 'Lcedil': '\\u013B',\n 'Lcy': '\\u041B',\n 'LeftAngleBracket': '\\u27E8',\n 'lang': '\\u27E8',\n 'langle': '\\u27E8',\n 'LeftArrow': '\\u2190',\n 'ShortLeftArrow': '\\u2190',\n 'larr': '\\u2190',\n 'leftarrow': '\\u2190',\n 'slarr': '\\u2190',\n 'LeftArrowBar': '\\u21E4',\n 'larrb': '\\u21E4',\n 'LeftArrowRightArrow': '\\u21C6',\n 'leftrightarrows': '\\u21C6',\n 'lrarr': '\\u21C6',\n 'LeftCeiling': '\\u2308',\n 'lceil': '\\u2308',\n 'LeftDoubleBracket': '\\u27E6',\n 'lobrk': '\\u27E6',\n 'LeftDownTeeVector': '\\u2961',\n 'LeftDownVector': '\\u21C3',\n 'dharl': '\\u21C3',\n 'downharpoonleft': '\\u21C3',\n 'LeftDownVectorBar': '\\u2959',\n 'LeftFloor': '\\u230A',\n 'lfloor': '\\u230A',\n 'LeftRightArrow': '\\u2194',\n 'harr': '\\u2194',\n 'leftrightarrow': '\\u2194',\n 'LeftRightVector': '\\u294E',\n 'LeftTee': '\\u22A3',\n 'dashv': '\\u22A3',\n 'LeftTeeArrow': '\\u21A4',\n 'mapstoleft': '\\u21A4',\n 'LeftTeeVector': '\\u295A',\n 'LeftTriangle': '\\u22B2',\n 'vartriangleleft': '\\u22B2',\n 'vltri': '\\u22B2',\n 'LeftTriangleBar': '\\u29CF',\n 'LeftTriangleEqual': '\\u22B4',\n 'ltrie': '\\u22B4',\n 'trianglelefteq': '\\u22B4',\n 'LeftUpDownVector': '\\u2951',\n 'LeftUpTeeVector': '\\u2960',\n 'LeftUpVector': '\\u21BF',\n 'uharl': '\\u21BF',\n 'upharpoonleft': '\\u21BF',\n 'LeftUpVectorBar': '\\u2958',\n 'LeftVector': '\\u21BC',\n 'leftharpoonup': '\\u21BC',\n 'lharu': '\\u21BC',\n 'LeftVectorBar': '\\u2952',\n 'LessEqualGreater': '\\u22DA',\n 'leg': '\\u22DA',\n 'lesseqgtr': '\\u22DA',\n 'LessFullEqual': '\\u2266',\n 'lE': '\\u2266',\n 'leqq': '\\u2266',\n 'LessGreater': '\\u2276',\n 'lessgtr': '\\u2276',\n 'lg': '\\u2276',\n 'LessLess': '\\u2AA1',\n 'LessSlantEqual': '\\u2A7D',\n 'leqslant': '\\u2A7D',\n 'les': '\\u2A7D',\n 'LessTilde': '\\u2272',\n 'lesssim': '\\u2272',\n 'lsim': '\\u2272',\n 'Lfr': '\\uD835\\uDD0F',\n 'Ll': '\\u22D8',\n 'Lleftarrow': '\\u21DA',\n 'lAarr': '\\u21DA',\n 'Lmidot': '\\u013F',\n 'LongLeftArrow': '\\u27F5',\n 'longleftarrow': '\\u27F5',\n 'xlarr': '\\u27F5',\n 'LongLeftRightArrow': '\\u27F7',\n 'longleftrightarrow': '\\u27F7',\n 'xharr': '\\u27F7',\n 'LongRightArrow': '\\u27F6',\n 'longrightarrow': '\\u27F6',\n 'xrarr': '\\u27F6',\n 'Lopf': '\\uD835\\uDD43',\n 'LowerLeftArrow': '\\u2199',\n 'swarr': '\\u2199',\n 'swarrow': '\\u2199',\n 'LowerRightArrow': '\\u2198',\n 'searr': '\\u2198',\n 'searrow': '\\u2198',\n 'Lsh': '\\u21B0',\n 'lsh': '\\u21B0',\n 'Lstrok': '\\u0141',\n 'Lt': '\\u226A',\n 'NestedLessLess': '\\u226A',\n 'll': '\\u226A',\n 'Map': '\\u2905',\n 'Mcy': '\\u041C',\n 'MediumSpace': '\\u205F',\n 'Mellintrf': '\\u2133',\n 'Mscr': '\\u2133',\n 'phmmat': '\\u2133',\n 'Mfr': '\\uD835\\uDD10',\n 'MinusPlus': '\\u2213',\n 'mnplus': '\\u2213',\n 'mp': '\\u2213',\n 'Mopf': '\\uD835\\uDD44',\n 'Mu': '\\u039C',\n 'NJcy': '\\u040A',\n 'Nacute': '\\u0143',\n 'Ncaron': '\\u0147',\n 'Ncedil': '\\u0145',\n 'Ncy': '\\u041D',\n 'NegativeMediumSpace': '\\u200B',\n 'NegativeThickSpace': '\\u200B',\n 'NegativeThinSpace': '\\u200B',\n 'NegativeVeryThinSpace': '\\u200B',\n 'ZeroWidthSpace': '\\u200B',\n 'NewLine': '\\u000A',\n 'Nfr': '\\uD835\\uDD11',\n 'NoBreak': '\\u2060',\n 'NonBreakingSpace': '\\u00A0',\n 'nbsp': '\\u00A0',\n 'Nopf': '\\u2115',\n 'naturals': '\\u2115',\n 'Not': '\\u2AEC',\n 'NotCongruent': '\\u2262',\n 'nequiv': '\\u2262',\n 'NotCupCap': '\\u226D',\n 'NotDoubleVerticalBar': '\\u2226',\n 'npar': '\\u2226',\n 'nparallel': '\\u2226',\n 'nshortparallel': '\\u2226',\n 'nspar': '\\u2226',\n 'NotElement': '\\u2209',\n 'notin': '\\u2209',\n 'notinva': '\\u2209',\n 'NotEqual': '\\u2260',\n 'ne': '\\u2260',\n 'NotEqualTilde': '\\u2242\\u0338',\n 'nesim': '\\u2242\\u0338',\n 'NotExists': '\\u2204',\n 'nexist': '\\u2204',\n 'nexists': '\\u2204',\n 'NotGreater': '\\u226F',\n 'ngt': '\\u226F',\n 'ngtr': '\\u226F',\n 'NotGreaterEqual': '\\u2271',\n 'nge': '\\u2271',\n 'ngeq': '\\u2271',\n 'NotGreaterFullEqual': '\\u2267\\u0338',\n 'ngE': '\\u2267\\u0338',\n 'ngeqq': '\\u2267\\u0338',\n 'NotGreaterGreater': '\\u226B\\u0338',\n 'nGtv': '\\u226B\\u0338',\n 'NotGreaterLess': '\\u2279',\n 'ntgl': '\\u2279',\n 'NotGreaterSlantEqual': '\\u2A7E\\u0338',\n 'ngeqslant': '\\u2A7E\\u0338',\n 'nges': '\\u2A7E\\u0338',\n 'NotGreaterTilde': '\\u2275',\n 'ngsim': '\\u2275',\n 'NotHumpDownHump': '\\u224E\\u0338',\n 'nbump': '\\u224E\\u0338',\n 'NotHumpEqual': '\\u224F\\u0338',\n 'nbumpe': '\\u224F\\u0338',\n 'NotLeftTriangle': '\\u22EA',\n 'nltri': '\\u22EA',\n 'ntriangleleft': '\\u22EA',\n 'NotLeftTriangleBar': '\\u29CF\\u0338',\n 'NotLeftTriangleEqual': '\\u22EC',\n 'nltrie': '\\u22EC',\n 'ntrianglelefteq': '\\u22EC',\n 'NotLess': '\\u226E',\n 'nless': '\\u226E',\n 'nlt': '\\u226E',\n 'NotLessEqual': '\\u2270',\n 'nle': '\\u2270',\n 'nleq': '\\u2270',\n 'NotLessGreater': '\\u2278',\n 'ntlg': '\\u2278',\n 'NotLessLess': '\\u226A\\u0338',\n 'nLtv': '\\u226A\\u0338',\n 'NotLessSlantEqual': '\\u2A7D\\u0338',\n 'nleqslant': '\\u2A7D\\u0338',\n 'nles': '\\u2A7D\\u0338',\n 'NotLessTilde': '\\u2274',\n 'nlsim': '\\u2274',\n 'NotNestedGreaterGreater': '\\u2AA2\\u0338',\n 'NotNestedLessLess': '\\u2AA1\\u0338',\n 'NotPrecedes': '\\u2280',\n 'npr': '\\u2280',\n 'nprec': '\\u2280',\n 'NotPrecedesEqual': '\\u2AAF\\u0338',\n 'npre': '\\u2AAF\\u0338',\n 'npreceq': '\\u2AAF\\u0338',\n 'NotPrecedesSlantEqual': '\\u22E0',\n 'nprcue': '\\u22E0',\n 'NotReverseElement': '\\u220C',\n 'notni': '\\u220C',\n 'notniva': '\\u220C',\n 'NotRightTriangle': '\\u22EB',\n 'nrtri': '\\u22EB',\n 'ntriangleright': '\\u22EB',\n 'NotRightTriangleBar': '\\u29D0\\u0338',\n 'NotRightTriangleEqual': '\\u22ED',\n 'nrtrie': '\\u22ED',\n 'ntrianglerighteq': '\\u22ED',\n 'NotSquareSubset': '\\u228F\\u0338',\n 'NotSquareSubsetEqual': '\\u22E2',\n 'nsqsube': '\\u22E2',\n 'NotSquareSuperset': '\\u2290\\u0338',\n 'NotSquareSupersetEqual': '\\u22E3',\n 'nsqsupe': '\\u22E3',\n 'NotSubset': '\\u2282\\u20D2',\n 'nsubset': '\\u2282\\u20D2',\n 'vnsub': '\\u2282\\u20D2',\n 'NotSubsetEqual': '\\u2288',\n 'nsube': '\\u2288',\n 'nsubseteq': '\\u2288',\n 'NotSucceeds': '\\u2281',\n 'nsc': '\\u2281',\n 'nsucc': '\\u2281',\n 'NotSucceedsEqual': '\\u2AB0\\u0338',\n 'nsce': '\\u2AB0\\u0338',\n 'nsucceq': '\\u2AB0\\u0338',\n 'NotSucceedsSlantEqual': '\\u22E1',\n 'nsccue': '\\u22E1',\n 'NotSucceedsTilde': '\\u227F\\u0338',\n 'NotSuperset': '\\u2283\\u20D2',\n 'nsupset': '\\u2283\\u20D2',\n 'vnsup': '\\u2283\\u20D2',\n 'NotSupersetEqual': '\\u2289',\n 'nsupe': '\\u2289',\n 'nsupseteq': '\\u2289',\n 'NotTilde': '\\u2241',\n 'nsim': '\\u2241',\n 'NotTildeEqual': '\\u2244',\n 'nsime': '\\u2244',\n 'nsimeq': '\\u2244',\n 'NotTildeFullEqual': '\\u2247',\n 'ncong': '\\u2247',\n 'NotTildeTilde': '\\u2249',\n 'nap': '\\u2249',\n 'napprox': '\\u2249',\n 'NotVerticalBar': '\\u2224',\n 'nmid': '\\u2224',\n 'nshortmid': '\\u2224',\n 'nsmid': '\\u2224',\n 'Nscr': '\\uD835\\uDCA9',\n 'Ntilde': '\\u00D1',\n 'Nu': '\\u039D',\n 'OElig': '\\u0152',\n 'Oacute': '\\u00D3',\n 'Ocirc': '\\u00D4',\n 'Ocy': '\\u041E',\n 'Odblac': '\\u0150',\n 'Ofr': '\\uD835\\uDD12',\n 'Ograve': '\\u00D2',\n 'Omacr': '\\u014C',\n 'Omega': '\\u03A9',\n 'ohm': '\\u03A9',\n 'Omicron': '\\u039F',\n 'Oopf': '\\uD835\\uDD46',\n 'OpenCurlyDoubleQuote': '\\u201C',\n 'ldquo': '\\u201C',\n 'OpenCurlyQuote': '\\u2018',\n 'lsquo': '\\u2018',\n 'Or': '\\u2A54',\n 'Oscr': '\\uD835\\uDCAA',\n 'Oslash': '\\u00D8',\n 'Otilde': '\\u00D5',\n 'Otimes': '\\u2A37',\n 'Ouml': '\\u00D6',\n 'OverBar': '\\u203E',\n 'oline': '\\u203E',\n 'OverBrace': '\\u23DE',\n 'OverBracket': '\\u23B4',\n 'tbrk': '\\u23B4',\n 'OverParenthesis': '\\u23DC',\n 'PartialD': '\\u2202',\n 'part': '\\u2202',\n 'Pcy': '\\u041F',\n 'Pfr': '\\uD835\\uDD13',\n 'Phi': '\\u03A6',\n 'Pi': '\\u03A0',\n 'PlusMinus': '\\u00B1',\n 'plusmn': '\\u00B1',\n 'pm': '\\u00B1',\n 'Popf': '\\u2119',\n 'primes': '\\u2119',\n 'Pr': '\\u2ABB',\n 'Precedes': '\\u227A',\n 'pr': '\\u227A',\n 'prec': '\\u227A',\n 'PrecedesEqual': '\\u2AAF',\n 'pre': '\\u2AAF',\n 'preceq': '\\u2AAF',\n 'PrecedesSlantEqual': '\\u227C',\n 'prcue': '\\u227C',\n 'preccurlyeq': '\\u227C',\n 'PrecedesTilde': '\\u227E',\n 'precsim': '\\u227E',\n 'prsim': '\\u227E',\n 'Prime': '\\u2033',\n 'Product': '\\u220F',\n 'prod': '\\u220F',\n 'Proportional': '\\u221D',\n 'prop': '\\u221D',\n 'propto': '\\u221D',\n 'varpropto': '\\u221D',\n 'vprop': '\\u221D',\n 'Pscr': '\\uD835\\uDCAB',\n 'Psi': '\\u03A8',\n 'QUOT': '\\u0022',\n 'quot': '\\u0022',\n 'Qfr': '\\uD835\\uDD14',\n 'Qopf': '\\u211A',\n 'rationals': '\\u211A',\n 'Qscr': '\\uD835\\uDCAC',\n 'RBarr': '\\u2910',\n 'drbkarow': '\\u2910',\n 'REG': '\\u00AE',\n 'circledR': '\\u00AE',\n 'reg': '\\u00AE',\n 'Racute': '\\u0154',\n 'Rang': '\\u27EB',\n 'Rarr': '\\u21A0',\n 'twoheadrightarrow': '\\u21A0',\n 'Rarrtl': '\\u2916',\n 'Rcaron': '\\u0158',\n 'Rcedil': '\\u0156',\n 'Rcy': '\\u0420',\n 'Re': '\\u211C',\n 'Rfr': '\\u211C',\n 'real': '\\u211C',\n 'realpart': '\\u211C',\n 'ReverseElement': '\\u220B',\n 'SuchThat': '\\u220B',\n 'ni': '\\u220B',\n 'niv': '\\u220B',\n 'ReverseEquilibrium': '\\u21CB',\n 'leftrightharpoons': '\\u21CB',\n 'lrhar': '\\u21CB',\n 'ReverseUpEquilibrium': '\\u296F',\n 'duhar': '\\u296F',\n 'Rho': '\\u03A1',\n 'RightAngleBracket': '\\u27E9',\n 'rang': '\\u27E9',\n 'rangle': '\\u27E9',\n 'RightArrow': '\\u2192',\n 'ShortRightArrow': '\\u2192',\n 'rarr': '\\u2192',\n 'rightarrow': '\\u2192',\n 'srarr': '\\u2192',\n 'RightArrowBar': '\\u21E5',\n 'rarrb': '\\u21E5',\n 'RightArrowLeftArrow': '\\u21C4',\n 'rightleftarrows': '\\u21C4',\n 'rlarr': '\\u21C4',\n 'RightCeiling': '\\u2309',\n 'rceil': '\\u2309',\n 'RightDoubleBracket': '\\u27E7',\n 'robrk': '\\u27E7',\n 'RightDownTeeVector': '\\u295D',\n 'RightDownVector': '\\u21C2',\n 'dharr': '\\u21C2',\n 'downharpoonright': '\\u21C2',\n 'RightDownVectorBar': '\\u2955',\n 'RightFloor': '\\u230B',\n 'rfloor': '\\u230B',\n 'RightTee': '\\u22A2',\n 'vdash': '\\u22A2',\n 'RightTeeArrow': '\\u21A6',\n 'map': '\\u21A6',\n 'mapsto': '\\u21A6',\n 'RightTeeVector': '\\u295B',\n 'RightTriangle': '\\u22B3',\n 'vartriangleright': '\\u22B3',\n 'vrtri': '\\u22B3',\n 'RightTriangleBar': '\\u29D0',\n 'RightTriangleEqual': '\\u22B5',\n 'rtrie': '\\u22B5',\n 'trianglerighteq': '\\u22B5',\n 'RightUpDownVector': '\\u294F',\n 'RightUpTeeVector': '\\u295C',\n 'RightUpVector': '\\u21BE',\n 'uharr': '\\u21BE',\n 'upharpoonright': '\\u21BE',\n 'RightUpVectorBar': '\\u2954',\n 'RightVector': '\\u21C0',\n 'rharu': '\\u21C0',\n 'rightharpoonup': '\\u21C0',\n 'RightVectorBar': '\\u2953',\n 'Ropf': '\\u211D',\n 'reals': '\\u211D',\n 'RoundImplies': '\\u2970',\n 'Rrightarrow': '\\u21DB',\n 'rAarr': '\\u21DB',\n 'Rscr': '\\u211B',\n 'realine': '\\u211B',\n 'Rsh': '\\u21B1',\n 'rsh': '\\u21B1',\n 'RuleDelayed': '\\u29F4',\n 'SHCHcy': '\\u0429',\n 'SHcy': '\\u0428',\n 'SOFTcy': '\\u042C',\n 'Sacute': '\\u015A',\n 'Sc': '\\u2ABC',\n 'Scaron': '\\u0160',\n 'Scedil': '\\u015E',\n 'Scirc': '\\u015C',\n 'Scy': '\\u0421',\n 'Sfr': '\\uD835\\uDD16',\n 'ShortUpArrow': '\\u2191',\n 'UpArrow': '\\u2191',\n 'uarr': '\\u2191',\n 'uparrow': '\\u2191',\n 'Sigma': '\\u03A3',\n 'SmallCircle': '\\u2218',\n 'compfn': '\\u2218',\n 'Sopf': '\\uD835\\uDD4A',\n 'Sqrt': '\\u221A',\n 'radic': '\\u221A',\n 'Square': '\\u25A1',\n 'squ': '\\u25A1',\n 'square': '\\u25A1',\n 'SquareIntersection': '\\u2293',\n 'sqcap': '\\u2293',\n 'SquareSubset': '\\u228F',\n 'sqsub': '\\u228F',\n 'sqsubset': '\\u228F',\n 'SquareSubsetEqual': '\\u2291',\n 'sqsube': '\\u2291',\n 'sqsubseteq': '\\u2291',\n 'SquareSuperset': '\\u2290',\n 'sqsup': '\\u2290',\n 'sqsupset': '\\u2290',\n 'SquareSupersetEqual': '\\u2292',\n 'sqsupe': '\\u2292',\n 'sqsupseteq': '\\u2292',\n 'SquareUnion': '\\u2294',\n 'sqcup': '\\u2294',\n 'Sscr': '\\uD835\\uDCAE',\n 'Star': '\\u22C6',\n 'sstarf': '\\u22C6',\n 'Sub': '\\u22D0',\n 'Subset': '\\u22D0',\n 'SubsetEqual': '\\u2286',\n 'sube': '\\u2286',\n 'subseteq': '\\u2286',\n 'Succeeds': '\\u227B',\n 'sc': '\\u227B',\n 'succ': '\\u227B',\n 'SucceedsEqual': '\\u2AB0',\n 'sce': '\\u2AB0',\n 'succeq': '\\u2AB0',\n 'SucceedsSlantEqual': '\\u227D',\n 'sccue': '\\u227D',\n 'succcurlyeq': '\\u227D',\n 'SucceedsTilde': '\\u227F',\n 'scsim': '\\u227F',\n 'succsim': '\\u227F',\n 'Sum': '\\u2211',\n 'sum': '\\u2211',\n 'Sup': '\\u22D1',\n 'Supset': '\\u22D1',\n 'Superset': '\\u2283',\n 'sup': '\\u2283',\n 'supset': '\\u2283',\n 'SupersetEqual': '\\u2287',\n 'supe': '\\u2287',\n 'supseteq': '\\u2287',\n 'THORN': '\\u00DE',\n 'TRADE': '\\u2122',\n 'trade': '\\u2122',\n 'TSHcy': '\\u040B',\n 'TScy': '\\u0426',\n 'Tab': '\\u0009',\n 'Tau': '\\u03A4',\n 'Tcaron': '\\u0164',\n 'Tcedil': '\\u0162',\n 'Tcy': '\\u0422',\n 'Tfr': '\\uD835\\uDD17',\n 'Therefore': '\\u2234',\n 'there4': '\\u2234',\n 'therefore': '\\u2234',\n 'Theta': '\\u0398',\n 'ThickSpace': '\\u205F\\u200A',\n 'ThinSpace': '\\u2009',\n 'thinsp': '\\u2009',\n 'Tilde': '\\u223C',\n 'sim': '\\u223C',\n 'thicksim': '\\u223C',\n 'thksim': '\\u223C',\n 'TildeEqual': '\\u2243',\n 'sime': '\\u2243',\n 'simeq': '\\u2243',\n 'TildeFullEqual': '\\u2245',\n 'cong': '\\u2245',\n 'TildeTilde': '\\u2248',\n 'ap': '\\u2248',\n 'approx': '\\u2248',\n 'asymp': '\\u2248',\n 'thickapprox': '\\u2248',\n 'thkap': '\\u2248',\n 'Topf': '\\uD835\\uDD4B',\n 'TripleDot': '\\u20DB',\n 'tdot': '\\u20DB',\n 'Tscr': '\\uD835\\uDCAF',\n 'Tstrok': '\\u0166',\n 'Uacute': '\\u00DA',\n 'Uarr': '\\u219F',\n 'Uarrocir': '\\u2949',\n 'Ubrcy': '\\u040E',\n 'Ubreve': '\\u016C',\n 'Ucirc': '\\u00DB',\n 'Ucy': '\\u0423',\n 'Udblac': '\\u0170',\n 'Ufr': '\\uD835\\uDD18',\n 'Ugrave': '\\u00D9',\n 'Umacr': '\\u016A',\n 'UnderBar': '\\u005F',\n 'lowbar': '\\u005F',\n 'UnderBrace': '\\u23DF',\n 'UnderBracket': '\\u23B5',\n 'bbrk': '\\u23B5',\n 'UnderParenthesis': '\\u23DD',\n 'Union': '\\u22C3',\n 'bigcup': '\\u22C3',\n 'xcup': '\\u22C3',\n 'UnionPlus': '\\u228E',\n 'uplus': '\\u228E',\n 'Uogon': '\\u0172',\n 'Uopf': '\\uD835\\uDD4C',\n 'UpArrowBar': '\\u2912',\n 'UpArrowDownArrow': '\\u21C5',\n 'udarr': '\\u21C5',\n 'UpDownArrow': '\\u2195',\n 'updownarrow': '\\u2195',\n 'varr': '\\u2195',\n 'UpEquilibrium': '\\u296E',\n 'udhar': '\\u296E',\n 'UpTee': '\\u22A5',\n 'bot': '\\u22A5',\n 'bottom': '\\u22A5',\n 'perp': '\\u22A5',\n 'UpTeeArrow': '\\u21A5',\n 'mapstoup': '\\u21A5',\n 'UpperLeftArrow': '\\u2196',\n 'nwarr': '\\u2196',\n 'nwarrow': '\\u2196',\n 'UpperRightArrow': '\\u2197',\n 'nearr': '\\u2197',\n 'nearrow': '\\u2197',\n 'Upsi': '\\u03D2',\n 'upsih': '\\u03D2',\n 'Upsilon': '\\u03A5',\n 'Uring': '\\u016E',\n 'Uscr': '\\uD835\\uDCB0',\n 'Utilde': '\\u0168',\n 'Uuml': '\\u00DC',\n 'VDash': '\\u22AB',\n 'Vbar': '\\u2AEB',\n 'Vcy': '\\u0412',\n 'Vdash': '\\u22A9',\n 'Vdashl': '\\u2AE6',\n 'Vee': '\\u22C1',\n 'bigvee': '\\u22C1',\n 'xvee': '\\u22C1',\n 'Verbar': '\\u2016',\n 'Vert': '\\u2016',\n 'VerticalBar': '\\u2223',\n 'mid': '\\u2223',\n 'shortmid': '\\u2223',\n 'smid': '\\u2223',\n 'VerticalLine': '\\u007C',\n 'verbar': '\\u007C',\n 'vert': '\\u007C',\n 'VerticalSeparator': '\\u2758',\n 'VerticalTilde': '\\u2240',\n 'wr': '\\u2240',\n 'wreath': '\\u2240',\n 'VeryThinSpace': '\\u200A',\n 'hairsp': '\\u200A',\n 'Vfr': '\\uD835\\uDD19',\n 'Vopf': '\\uD835\\uDD4D',\n 'Vscr': '\\uD835\\uDCB1',\n 'Vvdash': '\\u22AA',\n 'Wcirc': '\\u0174',\n 'Wedge': '\\u22C0',\n 'bigwedge': '\\u22C0',\n 'xwedge': '\\u22C0',\n 'Wfr': '\\uD835\\uDD1A',\n 'Wopf': '\\uD835\\uDD4E',\n 'Wscr': '\\uD835\\uDCB2',\n 'Xfr': '\\uD835\\uDD1B',\n 'Xi': '\\u039E',\n 'Xopf': '\\uD835\\uDD4F',\n 'Xscr': '\\uD835\\uDCB3',\n 'YAcy': '\\u042F',\n 'YIcy': '\\u0407',\n 'YUcy': '\\u042E',\n 'Yacute': '\\u00DD',\n 'Ycirc': '\\u0176',\n 'Ycy': '\\u042B',\n 'Yfr': '\\uD835\\uDD1C',\n 'Yopf': '\\uD835\\uDD50',\n 'Yscr': '\\uD835\\uDCB4',\n 'Yuml': '\\u0178',\n 'ZHcy': '\\u0416',\n 'Zacute': '\\u0179',\n 'Zcaron': '\\u017D',\n 'Zcy': '\\u0417',\n 'Zdot': '\\u017B',\n 'Zeta': '\\u0396',\n 'Zfr': '\\u2128',\n 'zeetrf': '\\u2128',\n 'Zopf': '\\u2124',\n 'integers': '\\u2124',\n 'Zscr': '\\uD835\\uDCB5',\n 'aacute': '\\u00E1',\n 'abreve': '\\u0103',\n 'ac': '\\u223E',\n 'mstpos': '\\u223E',\n 'acE': '\\u223E\\u0333',\n 'acd': '\\u223F',\n 'acirc': '\\u00E2',\n 'acy': '\\u0430',\n 'aelig': '\\u00E6',\n 'afr': '\\uD835\\uDD1E',\n 'agrave': '\\u00E0',\n 'alefsym': '\\u2135',\n 'aleph': '\\u2135',\n 'alpha': '\\u03B1',\n 'amacr': '\\u0101',\n 'amalg': '\\u2A3F',\n 'and': '\\u2227',\n 'wedge': '\\u2227',\n 'andand': '\\u2A55',\n 'andd': '\\u2A5C',\n 'andslope': '\\u2A58',\n 'andv': '\\u2A5A',\n 'ang': '\\u2220',\n 'angle': '\\u2220',\n 'ange': '\\u29A4',\n 'angmsd': '\\u2221',\n 'measuredangle': '\\u2221',\n 'angmsdaa': '\\u29A8',\n 'angmsdab': '\\u29A9',\n 'angmsdac': '\\u29AA',\n 'angmsdad': '\\u29AB',\n 'angmsdae': '\\u29AC',\n 'angmsdaf': '\\u29AD',\n 'angmsdag': '\\u29AE',\n 'angmsdah': '\\u29AF',\n 'angrt': '\\u221F',\n 'angrtvb': '\\u22BE',\n 'angrtvbd': '\\u299D',\n 'angsph': '\\u2222',\n 'angzarr': '\\u237C',\n 'aogon': '\\u0105',\n 'aopf': '\\uD835\\uDD52',\n 'apE': '\\u2A70',\n 'apacir': '\\u2A6F',\n 'ape': '\\u224A',\n 'approxeq': '\\u224A',\n 'apid': '\\u224B',\n 'apos': '\\u0027',\n 'aring': '\\u00E5',\n 'ascr': '\\uD835\\uDCB6',\n 'ast': '\\u002A',\n 'midast': '\\u002A',\n 'atilde': '\\u00E3',\n 'auml': '\\u00E4',\n 'awint': '\\u2A11',\n 'bNot': '\\u2AED',\n 'backcong': '\\u224C',\n 'bcong': '\\u224C',\n 'backepsilon': '\\u03F6',\n 'bepsi': '\\u03F6',\n 'backprime': '\\u2035',\n 'bprime': '\\u2035',\n 'backsim': '\\u223D',\n 'bsim': '\\u223D',\n 'backsimeq': '\\u22CD',\n 'bsime': '\\u22CD',\n 'barvee': '\\u22BD',\n 'barwed': '\\u2305',\n 'barwedge': '\\u2305',\n 'bbrktbrk': '\\u23B6',\n 'bcy': '\\u0431',\n 'bdquo': '\\u201E',\n 'ldquor': '\\u201E',\n 'bemptyv': '\\u29B0',\n 'beta': '\\u03B2',\n 'beth': '\\u2136',\n 'between': '\\u226C',\n 'twixt': '\\u226C',\n 'bfr': '\\uD835\\uDD1F',\n 'bigcirc': '\\u25EF',\n 'xcirc': '\\u25EF',\n 'bigodot': '\\u2A00',\n 'xodot': '\\u2A00',\n 'bigoplus': '\\u2A01',\n 'xoplus': '\\u2A01',\n 'bigotimes': '\\u2A02',\n 'xotime': '\\u2A02',\n 'bigsqcup': '\\u2A06',\n 'xsqcup': '\\u2A06',\n 'bigstar': '\\u2605',\n 'starf': '\\u2605',\n 'bigtriangledown': '\\u25BD',\n 'xdtri': '\\u25BD',\n 'bigtriangleup': '\\u25B3',\n 'xutri': '\\u25B3',\n 'biguplus': '\\u2A04',\n 'xuplus': '\\u2A04',\n 'bkarow': '\\u290D',\n 'rbarr': '\\u290D',\n 'blacklozenge': '\\u29EB',\n 'lozf': '\\u29EB',\n 'blacktriangle': '\\u25B4',\n 'utrif': '\\u25B4',\n 'blacktriangledown': '\\u25BE',\n 'dtrif': '\\u25BE',\n 'blacktriangleleft': '\\u25C2',\n 'ltrif': '\\u25C2',\n 'blacktriangleright': '\\u25B8',\n 'rtrif': '\\u25B8',\n 'blank': '\\u2423',\n 'blk12': '\\u2592',\n 'blk14': '\\u2591',\n 'blk34': '\\u2593',\n 'block': '\\u2588',\n 'bne': '\\u003D\\u20E5',\n 'bnequiv': '\\u2261\\u20E5',\n 'bnot': '\\u2310',\n 'bopf': '\\uD835\\uDD53',\n 'bowtie': '\\u22C8',\n 'boxDL': '\\u2557',\n 'boxDR': '\\u2554',\n 'boxDl': '\\u2556',\n 'boxDr': '\\u2553',\n 'boxH': '\\u2550',\n 'boxHD': '\\u2566',\n 'boxHU': '\\u2569',\n 'boxHd': '\\u2564',\n 'boxHu': '\\u2567',\n 'boxUL': '\\u255D',\n 'boxUR': '\\u255A',\n 'boxUl': '\\u255C',\n 'boxUr': '\\u2559',\n 'boxV': '\\u2551',\n 'boxVH': '\\u256C',\n 'boxVL': '\\u2563',\n 'boxVR': '\\u2560',\n 'boxVh': '\\u256B',\n 'boxVl': '\\u2562',\n 'boxVr': '\\u255F',\n 'boxbox': '\\u29C9',\n 'boxdL': '\\u2555',\n 'boxdR': '\\u2552',\n 'boxdl': '\\u2510',\n 'boxdr': '\\u250C',\n 'boxhD': '\\u2565',\n 'boxhU': '\\u2568',\n 'boxhd': '\\u252C',\n 'boxhu': '\\u2534',\n 'boxminus': '\\u229F',\n 'minusb': '\\u229F',\n 'boxplus': '\\u229E',\n 'plusb': '\\u229E',\n 'boxtimes': '\\u22A0',\n 'timesb': '\\u22A0',\n 'boxuL': '\\u255B',\n 'boxuR': '\\u2558',\n 'boxul': '\\u2518',\n 'boxur': '\\u2514',\n 'boxv': '\\u2502',\n 'boxvH': '\\u256A',\n 'boxvL': '\\u2561',\n 'boxvR': '\\u255E',\n 'boxvh': '\\u253C',\n 'boxvl': '\\u2524',\n 'boxvr': '\\u251C',\n 'brvbar': '\\u00A6',\n 'bscr': '\\uD835\\uDCB7',\n 'bsemi': '\\u204F',\n 'bsol': '\\u005C',\n 'bsolb': '\\u29C5',\n 'bsolhsub': '\\u27C8',\n 'bull': '\\u2022',\n 'bullet': '\\u2022',\n 'bumpE': '\\u2AAE',\n 'cacute': '\\u0107',\n 'cap': '\\u2229',\n 'capand': '\\u2A44',\n 'capbrcup': '\\u2A49',\n 'capcap': '\\u2A4B',\n 'capcup': '\\u2A47',\n 'capdot': '\\u2A40',\n 'caps': '\\u2229\\uFE00',\n 'caret': '\\u2041',\n 'ccaps': '\\u2A4D',\n 'ccaron': '\\u010D',\n 'ccedil': '\\u00E7',\n 'ccirc': '\\u0109',\n 'ccups': '\\u2A4C',\n 'ccupssm': '\\u2A50',\n 'cdot': '\\u010B',\n 'cemptyv': '\\u29B2',\n 'cent': '\\u00A2',\n 'cfr': '\\uD835\\uDD20',\n 'chcy': '\\u0447',\n 'check': '\\u2713',\n 'checkmark': '\\u2713',\n 'chi': '\\u03C7',\n 'cir': '\\u25CB',\n 'cirE': '\\u29C3',\n 'circ': '\\u02C6',\n 'circeq': '\\u2257',\n 'cire': '\\u2257',\n 'circlearrowleft': '\\u21BA',\n 'olarr': '\\u21BA',\n 'circlearrowright': '\\u21BB',\n 'orarr': '\\u21BB',\n 'circledS': '\\u24C8',\n 'oS': '\\u24C8',\n 'circledast': '\\u229B',\n 'oast': '\\u229B',\n 'circledcirc': '\\u229A',\n 'ocir': '\\u229A',\n 'circleddash': '\\u229D',\n 'odash': '\\u229D',\n 'cirfnint': '\\u2A10',\n 'cirmid': '\\u2AEF',\n 'cirscir': '\\u29C2',\n 'clubs': '\\u2663',\n 'clubsuit': '\\u2663',\n 'colon': '\\u003A',\n 'comma': '\\u002C',\n 'commat': '\\u0040',\n 'comp': '\\u2201',\n 'complement': '\\u2201',\n 'congdot': '\\u2A6D',\n 'copf': '\\uD835\\uDD54',\n 'copysr': '\\u2117',\n 'crarr': '\\u21B5',\n 'cross': '\\u2717',\n 'cscr': '\\uD835\\uDCB8',\n 'csub': '\\u2ACF',\n 'csube': '\\u2AD1',\n 'csup': '\\u2AD0',\n 'csupe': '\\u2AD2',\n 'ctdot': '\\u22EF',\n 'cudarrl': '\\u2938',\n 'cudarrr': '\\u2935',\n 'cuepr': '\\u22DE',\n 'curlyeqprec': '\\u22DE',\n 'cuesc': '\\u22DF',\n 'curlyeqsucc': '\\u22DF',\n 'cularr': '\\u21B6',\n 'curvearrowleft': '\\u21B6',\n 'cularrp': '\\u293D',\n 'cup': '\\u222A',\n 'cupbrcap': '\\u2A48',\n 'cupcap': '\\u2A46',\n 'cupcup': '\\u2A4A',\n 'cupdot': '\\u228D',\n 'cupor': '\\u2A45',\n 'cups': '\\u222A\\uFE00',\n 'curarr': '\\u21B7',\n 'curvearrowright': '\\u21B7',\n 'curarrm': '\\u293C',\n 'curlyvee': '\\u22CE',\n 'cuvee': '\\u22CE',\n 'curlywedge': '\\u22CF',\n 'cuwed': '\\u22CF',\n 'curren': '\\u00A4',\n 'cwint': '\\u2231',\n 'cylcty': '\\u232D',\n 'dHar': '\\u2965',\n 'dagger': '\\u2020',\n 'daleth': '\\u2138',\n 'dash': '\\u2010',\n 'hyphen': '\\u2010',\n 'dbkarow': '\\u290F',\n 'rBarr': '\\u290F',\n 'dcaron': '\\u010F',\n 'dcy': '\\u0434',\n 'ddarr': '\\u21CA',\n 'downdownarrows': '\\u21CA',\n 'ddotseq': '\\u2A77',\n 'eDDot': '\\u2A77',\n 'deg': '\\u00B0',\n 'delta': '\\u03B4',\n 'demptyv': '\\u29B1',\n 'dfisht': '\\u297F',\n 'dfr': '\\uD835\\uDD21',\n 'diamondsuit': '\\u2666',\n 'diams': '\\u2666',\n 'digamma': '\\u03DD',\n 'gammad': '\\u03DD',\n 'disin': '\\u22F2',\n 'div': '\\u00F7',\n 'divide': '\\u00F7',\n 'divideontimes': '\\u22C7',\n 'divonx': '\\u22C7',\n 'djcy': '\\u0452',\n 'dlcorn': '\\u231E',\n 'llcorner': '\\u231E',\n 'dlcrop': '\\u230D',\n 'dollar': '\\u0024',\n 'dopf': '\\uD835\\uDD55',\n 'doteqdot': '\\u2251',\n 'eDot': '\\u2251',\n 'dotminus': '\\u2238',\n 'minusd': '\\u2238',\n 'dotplus': '\\u2214',\n 'plusdo': '\\u2214',\n 'dotsquare': '\\u22A1',\n 'sdotb': '\\u22A1',\n 'drcorn': '\\u231F',\n 'lrcorner': '\\u231F',\n 'drcrop': '\\u230C',\n 'dscr': '\\uD835\\uDCB9',\n 'dscy': '\\u0455',\n 'dsol': '\\u29F6',\n 'dstrok': '\\u0111',\n 'dtdot': '\\u22F1',\n 'dtri': '\\u25BF',\n 'triangledown': '\\u25BF',\n 'dwangle': '\\u29A6',\n 'dzcy': '\\u045F',\n 'dzigrarr': '\\u27FF',\n 'eacute': '\\u00E9',\n 'easter': '\\u2A6E',\n 'ecaron': '\\u011B',\n 'ecir': '\\u2256',\n 'eqcirc': '\\u2256',\n 'ecirc': '\\u00EA',\n 'ecolon': '\\u2255',\n 'eqcolon': '\\u2255',\n 'ecy': '\\u044D',\n 'edot': '\\u0117',\n 'efDot': '\\u2252',\n 'fallingdotseq': '\\u2252',\n 'efr': '\\uD835\\uDD22',\n 'eg': '\\u2A9A',\n 'egrave': '\\u00E8',\n 'egs': '\\u2A96',\n 'eqslantgtr': '\\u2A96',\n 'egsdot': '\\u2A98',\n 'el': '\\u2A99',\n 'elinters': '\\u23E7',\n 'ell': '\\u2113',\n 'els': '\\u2A95',\n 'eqslantless': '\\u2A95',\n 'elsdot': '\\u2A97',\n 'emacr': '\\u0113',\n 'empty': '\\u2205',\n 'emptyset': '\\u2205',\n 'emptyv': '\\u2205',\n 'varnothing': '\\u2205',\n 'emsp13': '\\u2004',\n 'emsp14': '\\u2005',\n 'emsp': '\\u2003',\n 'eng': '\\u014B',\n 'ensp': '\\u2002',\n 'eogon': '\\u0119',\n 'eopf': '\\uD835\\uDD56',\n 'epar': '\\u22D5',\n 'eparsl': '\\u29E3',\n 'eplus': '\\u2A71',\n 'epsi': '\\u03B5',\n 'epsilon': '\\u03B5',\n 'epsiv': '\\u03F5',\n 'straightepsilon': '\\u03F5',\n 'varepsilon': '\\u03F5',\n 'equals': '\\u003D',\n 'equest': '\\u225F',\n 'questeq': '\\u225F',\n 'equivDD': '\\u2A78',\n 'eqvparsl': '\\u29E5',\n 'erDot': '\\u2253',\n 'risingdotseq': '\\u2253',\n 'erarr': '\\u2971',\n 'escr': '\\u212F',\n 'eta': '\\u03B7',\n 'eth': '\\u00F0',\n 'euml': '\\u00EB',\n 'euro': '\\u20AC',\n 'excl': '\\u0021',\n 'fcy': '\\u0444',\n 'female': '\\u2640',\n 'ffilig': '\\uFB03',\n 'fflig': '\\uFB00',\n 'ffllig': '\\uFB04',\n 'ffr': '\\uD835\\uDD23',\n 'filig': '\\uFB01',\n 'fjlig': '\\u0066\\u006A',\n 'flat': '\\u266D',\n 'fllig': '\\uFB02',\n 'fltns': '\\u25B1',\n 'fnof': '\\u0192',\n 'fopf': '\\uD835\\uDD57',\n 'fork': '\\u22D4',\n 'pitchfork': '\\u22D4',\n 'forkv': '\\u2AD9',\n 'fpartint': '\\u2A0D',\n 'frac12': '\\u00BD',\n 'half': '\\u00BD',\n 'frac13': '\\u2153',\n 'frac14': '\\u00BC',\n 'frac15': '\\u2155',\n 'frac16': '\\u2159',\n 'frac18': '\\u215B',\n 'frac23': '\\u2154',\n 'frac25': '\\u2156',\n 'frac34': '\\u00BE',\n 'frac35': '\\u2157',\n 'frac38': '\\u215C',\n 'frac45': '\\u2158',\n 'frac56': '\\u215A',\n 'frac58': '\\u215D',\n 'frac78': '\\u215E',\n 'frasl': '\\u2044',\n 'frown': '\\u2322',\n 'sfrown': '\\u2322',\n 'fscr': '\\uD835\\uDCBB',\n 'gEl': '\\u2A8C',\n 'gtreqqless': '\\u2A8C',\n 'gacute': '\\u01F5',\n 'gamma': '\\u03B3',\n 'gap': '\\u2A86',\n 'gtrapprox': '\\u2A86',\n 'gbreve': '\\u011F',\n 'gcirc': '\\u011D',\n 'gcy': '\\u0433',\n 'gdot': '\\u0121',\n 'gescc': '\\u2AA9',\n 'gesdot': '\\u2A80',\n 'gesdoto': '\\u2A82',\n 'gesdotol': '\\u2A84',\n 'gesl': '\\u22DB\\uFE00',\n 'gesles': '\\u2A94',\n 'gfr': '\\uD835\\uDD24',\n 'gimel': '\\u2137',\n 'gjcy': '\\u0453',\n 'glE': '\\u2A92',\n 'gla': '\\u2AA5',\n 'glj': '\\u2AA4',\n 'gnE': '\\u2269',\n 'gneqq': '\\u2269',\n 'gnap': '\\u2A8A',\n 'gnapprox': '\\u2A8A',\n 'gne': '\\u2A88',\n 'gneq': '\\u2A88',\n 'gnsim': '\\u22E7',\n 'gopf': '\\uD835\\uDD58',\n 'gscr': '\\u210A',\n 'gsime': '\\u2A8E',\n 'gsiml': '\\u2A90',\n 'gtcc': '\\u2AA7',\n 'gtcir': '\\u2A7A',\n 'gtdot': '\\u22D7',\n 'gtrdot': '\\u22D7',\n 'gtlPar': '\\u2995',\n 'gtquest': '\\u2A7C',\n 'gtrarr': '\\u2978',\n 'gvertneqq': '\\u2269\\uFE00',\n 'gvnE': '\\u2269\\uFE00',\n 'hardcy': '\\u044A',\n 'harrcir': '\\u2948',\n 'harrw': '\\u21AD',\n 'leftrightsquigarrow': '\\u21AD',\n 'hbar': '\\u210F',\n 'hslash': '\\u210F',\n 'planck': '\\u210F',\n 'plankv': '\\u210F',\n 'hcirc': '\\u0125',\n 'hearts': '\\u2665',\n 'heartsuit': '\\u2665',\n 'hellip': '\\u2026',\n 'mldr': '\\u2026',\n 'hercon': '\\u22B9',\n 'hfr': '\\uD835\\uDD25',\n 'hksearow': '\\u2925',\n 'searhk': '\\u2925',\n 'hkswarow': '\\u2926',\n 'swarhk': '\\u2926',\n 'hoarr': '\\u21FF',\n 'homtht': '\\u223B',\n 'hookleftarrow': '\\u21A9',\n 'larrhk': '\\u21A9',\n 'hookrightarrow': '\\u21AA',\n 'rarrhk': '\\u21AA',\n 'hopf': '\\uD835\\uDD59',\n 'horbar': '\\u2015',\n 'hscr': '\\uD835\\uDCBD',\n 'hstrok': '\\u0127',\n 'hybull': '\\u2043',\n 'iacute': '\\u00ED',\n 'icirc': '\\u00EE',\n 'icy': '\\u0438',\n 'iecy': '\\u0435',\n 'iexcl': '\\u00A1',\n 'ifr': '\\uD835\\uDD26',\n 'igrave': '\\u00EC',\n 'iiiint': '\\u2A0C',\n 'qint': '\\u2A0C',\n 'iiint': '\\u222D',\n 'tint': '\\u222D',\n 'iinfin': '\\u29DC',\n 'iiota': '\\u2129',\n 'ijlig': '\\u0133',\n 'imacr': '\\u012B',\n 'imath': '\\u0131',\n 'inodot': '\\u0131',\n 'imof': '\\u22B7',\n 'imped': '\\u01B5',\n 'incare': '\\u2105',\n 'infin': '\\u221E',\n 'infintie': '\\u29DD',\n 'intcal': '\\u22BA',\n 'intercal': '\\u22BA',\n 'intlarhk': '\\u2A17',\n 'intprod': '\\u2A3C',\n 'iprod': '\\u2A3C',\n 'iocy': '\\u0451',\n 'iogon': '\\u012F',\n 'iopf': '\\uD835\\uDD5A',\n 'iota': '\\u03B9',\n 'iquest': '\\u00BF',\n 'iscr': '\\uD835\\uDCBE',\n 'isinE': '\\u22F9',\n 'isindot': '\\u22F5',\n 'isins': '\\u22F4',\n 'isinsv': '\\u22F3',\n 'itilde': '\\u0129',\n 'iukcy': '\\u0456',\n 'iuml': '\\u00EF',\n 'jcirc': '\\u0135',\n 'jcy': '\\u0439',\n 'jfr': '\\uD835\\uDD27',\n 'jmath': '\\u0237',\n 'jopf': '\\uD835\\uDD5B',\n 'jscr': '\\uD835\\uDCBF',\n 'jsercy': '\\u0458',\n 'jukcy': '\\u0454',\n 'kappa': '\\u03BA',\n 'kappav': '\\u03F0',\n 'varkappa': '\\u03F0',\n 'kcedil': '\\u0137',\n 'kcy': '\\u043A',\n 'kfr': '\\uD835\\uDD28',\n 'kgreen': '\\u0138',\n 'khcy': '\\u0445',\n 'kjcy': '\\u045C',\n 'kopf': '\\uD835\\uDD5C',\n 'kscr': '\\uD835\\uDCC0',\n 'lAtail': '\\u291B',\n 'lBarr': '\\u290E',\n 'lEg': '\\u2A8B',\n 'lesseqqgtr': '\\u2A8B',\n 'lHar': '\\u2962',\n 'lacute': '\\u013A',\n 'laemptyv': '\\u29B4',\n 'lambda': '\\u03BB',\n 'langd': '\\u2991',\n 'lap': '\\u2A85',\n 'lessapprox': '\\u2A85',\n 'laquo': '\\u00AB',\n 'larrbfs': '\\u291F',\n 'larrfs': '\\u291D',\n 'larrlp': '\\u21AB',\n 'looparrowleft': '\\u21AB',\n 'larrpl': '\\u2939',\n 'larrsim': '\\u2973',\n 'larrtl': '\\u21A2',\n 'leftarrowtail': '\\u21A2',\n 'lat': '\\u2AAB',\n 'latail': '\\u2919',\n 'late': '\\u2AAD',\n 'lates': '\\u2AAD\\uFE00',\n 'lbarr': '\\u290C',\n 'lbbrk': '\\u2772',\n 'lbrace': '\\u007B',\n 'lcub': '\\u007B',\n 'lbrack': '\\u005B',\n 'lsqb': '\\u005B',\n 'lbrke': '\\u298B',\n 'lbrksld': '\\u298F',\n 'lbrkslu': '\\u298D',\n 'lcaron': '\\u013E',\n 'lcedil': '\\u013C',\n 'lcy': '\\u043B',\n 'ldca': '\\u2936',\n 'ldrdhar': '\\u2967',\n 'ldrushar': '\\u294B',\n 'ldsh': '\\u21B2',\n 'le': '\\u2264',\n 'leq': '\\u2264',\n 'leftleftarrows': '\\u21C7',\n 'llarr': '\\u21C7',\n 'leftthreetimes': '\\u22CB',\n 'lthree': '\\u22CB',\n 'lescc': '\\u2AA8',\n 'lesdot': '\\u2A7F',\n 'lesdoto': '\\u2A81',\n 'lesdotor': '\\u2A83',\n 'lesg': '\\u22DA\\uFE00',\n 'lesges': '\\u2A93',\n 'lessdot': '\\u22D6',\n 'ltdot': '\\u22D6',\n 'lfisht': '\\u297C',\n 'lfr': '\\uD835\\uDD29',\n 'lgE': '\\u2A91',\n 'lharul': '\\u296A',\n 'lhblk': '\\u2584',\n 'ljcy': '\\u0459',\n 'llhard': '\\u296B',\n 'lltri': '\\u25FA',\n 'lmidot': '\\u0140',\n 'lmoust': '\\u23B0',\n 'lmoustache': '\\u23B0',\n 'lnE': '\\u2268',\n 'lneqq': '\\u2268',\n 'lnap': '\\u2A89',\n 'lnapprox': '\\u2A89',\n 'lne': '\\u2A87',\n 'lneq': '\\u2A87',\n 'lnsim': '\\u22E6',\n 'loang': '\\u27EC',\n 'loarr': '\\u21FD',\n 'longmapsto': '\\u27FC',\n 'xmap': '\\u27FC',\n 'looparrowright': '\\u21AC',\n 'rarrlp': '\\u21AC',\n 'lopar': '\\u2985',\n 'lopf': '\\uD835\\uDD5D',\n 'loplus': '\\u2A2D',\n 'lotimes': '\\u2A34',\n 'lowast': '\\u2217',\n 'loz': '\\u25CA',\n 'lozenge': '\\u25CA',\n 'lpar': '\\u0028',\n 'lparlt': '\\u2993',\n 'lrhard': '\\u296D',\n 'lrm': '\\u200E',\n 'lrtri': '\\u22BF',\n 'lsaquo': '\\u2039',\n 'lscr': '\\uD835\\uDCC1',\n 'lsime': '\\u2A8D',\n 'lsimg': '\\u2A8F',\n 'lsquor': '\\u201A',\n 'sbquo': '\\u201A',\n 'lstrok': '\\u0142',\n 'ltcc': '\\u2AA6',\n 'ltcir': '\\u2A79',\n 'ltimes': '\\u22C9',\n 'ltlarr': '\\u2976',\n 'ltquest': '\\u2A7B',\n 'ltrPar': '\\u2996',\n 'ltri': '\\u25C3',\n 'triangleleft': '\\u25C3',\n 'lurdshar': '\\u294A',\n 'luruhar': '\\u2966',\n 'lvertneqq': '\\u2268\\uFE00',\n 'lvnE': '\\u2268\\uFE00',\n 'mDDot': '\\u223A',\n 'macr': '\\u00AF',\n 'strns': '\\u00AF',\n 'male': '\\u2642',\n 'malt': '\\u2720',\n 'maltese': '\\u2720',\n 'marker': '\\u25AE',\n 'mcomma': '\\u2A29',\n 'mcy': '\\u043C',\n 'mdash': '\\u2014',\n 'mfr': '\\uD835\\uDD2A',\n 'mho': '\\u2127',\n 'micro': '\\u00B5',\n 'midcir': '\\u2AF0',\n 'minus': '\\u2212',\n 'minusdu': '\\u2A2A',\n 'mlcp': '\\u2ADB',\n 'models': '\\u22A7',\n 'mopf': '\\uD835\\uDD5E',\n 'mscr': '\\uD835\\uDCC2',\n 'mu': '\\u03BC',\n 'multimap': '\\u22B8',\n 'mumap': '\\u22B8',\n 'nGg': '\\u22D9\\u0338',\n 'nGt': '\\u226B\\u20D2',\n 'nLeftarrow': '\\u21CD',\n 'nlArr': '\\u21CD',\n 'nLeftrightarrow': '\\u21CE',\n 'nhArr': '\\u21CE',\n 'nLl': '\\u22D8\\u0338',\n 'nLt': '\\u226A\\u20D2',\n 'nRightarrow': '\\u21CF',\n 'nrArr': '\\u21CF',\n 'nVDash': '\\u22AF',\n 'nVdash': '\\u22AE',\n 'nacute': '\\u0144',\n 'nang': '\\u2220\\u20D2',\n 'napE': '\\u2A70\\u0338',\n 'napid': '\\u224B\\u0338',\n 'napos': '\\u0149',\n 'natur': '\\u266E',\n 'natural': '\\u266E',\n 'ncap': '\\u2A43',\n 'ncaron': '\\u0148',\n 'ncedil': '\\u0146',\n 'ncongdot': '\\u2A6D\\u0338',\n 'ncup': '\\u2A42',\n 'ncy': '\\u043D',\n 'ndash': '\\u2013',\n 'neArr': '\\u21D7',\n 'nearhk': '\\u2924',\n 'nedot': '\\u2250\\u0338',\n 'nesear': '\\u2928',\n 'toea': '\\u2928',\n 'nfr': '\\uD835\\uDD2B',\n 'nharr': '\\u21AE',\n 'nleftrightarrow': '\\u21AE',\n 'nhpar': '\\u2AF2',\n 'nis': '\\u22FC',\n 'nisd': '\\u22FA',\n 'njcy': '\\u045A',\n 'nlE': '\\u2266\\u0338',\n 'nleqq': '\\u2266\\u0338',\n 'nlarr': '\\u219A',\n 'nleftarrow': '\\u219A',\n 'nldr': '\\u2025',\n 'nopf': '\\uD835\\uDD5F',\n 'not': '\\u00AC',\n 'notinE': '\\u22F9\\u0338',\n 'notindot': '\\u22F5\\u0338',\n 'notinvb': '\\u22F7',\n 'notinvc': '\\u22F6',\n 'notnivb': '\\u22FE',\n 'notnivc': '\\u22FD',\n 'nparsl': '\\u2AFD\\u20E5',\n 'npart': '\\u2202\\u0338',\n 'npolint': '\\u2A14',\n 'nrarr': '\\u219B',\n 'nrightarrow': '\\u219B',\n 'nrarrc': '\\u2933\\u0338',\n 'nrarrw': '\\u219D\\u0338',\n 'nscr': '\\uD835\\uDCC3',\n 'nsub': '\\u2284',\n 'nsubE': '\\u2AC5\\u0338',\n 'nsubseteqq': '\\u2AC5\\u0338',\n 'nsup': '\\u2285',\n 'nsupE': '\\u2AC6\\u0338',\n 'nsupseteqq': '\\u2AC6\\u0338',\n 'ntilde': '\\u00F1',\n 'nu': '\\u03BD',\n 'num': '\\u0023',\n 'numero': '\\u2116',\n 'numsp': '\\u2007',\n 'nvDash': '\\u22AD',\n 'nvHarr': '\\u2904',\n 'nvap': '\\u224D\\u20D2',\n 'nvdash': '\\u22AC',\n 'nvge': '\\u2265\\u20D2',\n 'nvgt': '\\u003E\\u20D2',\n 'nvinfin': '\\u29DE',\n 'nvlArr': '\\u2902',\n 'nvle': '\\u2264\\u20D2',\n 'nvlt': '\\u003C\\u20D2',\n 'nvltrie': '\\u22B4\\u20D2',\n 'nvrArr': '\\u2903',\n 'nvrtrie': '\\u22B5\\u20D2',\n 'nvsim': '\\u223C\\u20D2',\n 'nwArr': '\\u21D6',\n 'nwarhk': '\\u2923',\n 'nwnear': '\\u2927',\n 'oacute': '\\u00F3',\n 'ocirc': '\\u00F4',\n 'ocy': '\\u043E',\n 'odblac': '\\u0151',\n 'odiv': '\\u2A38',\n 'odsold': '\\u29BC',\n 'oelig': '\\u0153',\n 'ofcir': '\\u29BF',\n 'ofr': '\\uD835\\uDD2C',\n 'ogon': '\\u02DB',\n 'ograve': '\\u00F2',\n 'ogt': '\\u29C1',\n 'ohbar': '\\u29B5',\n 'olcir': '\\u29BE',\n 'olcross': '\\u29BB',\n 'olt': '\\u29C0',\n 'omacr': '\\u014D',\n 'omega': '\\u03C9',\n 'omicron': '\\u03BF',\n 'omid': '\\u29B6',\n 'oopf': '\\uD835\\uDD60',\n 'opar': '\\u29B7',\n 'operp': '\\u29B9',\n 'or': '\\u2228',\n 'vee': '\\u2228',\n 'ord': '\\u2A5D',\n 'order': '\\u2134',\n 'orderof': '\\u2134',\n 'oscr': '\\u2134',\n 'ordf': '\\u00AA',\n 'ordm': '\\u00BA',\n 'origof': '\\u22B6',\n 'oror': '\\u2A56',\n 'orslope': '\\u2A57',\n 'orv': '\\u2A5B',\n 'oslash': '\\u00F8',\n 'osol': '\\u2298',\n 'otilde': '\\u00F5',\n 'otimesas': '\\u2A36',\n 'ouml': '\\u00F6',\n 'ovbar': '\\u233D',\n 'para': '\\u00B6',\n 'parsim': '\\u2AF3',\n 'parsl': '\\u2AFD',\n 'pcy': '\\u043F',\n 'percnt': '\\u0025',\n 'period': '\\u002E',\n 'permil': '\\u2030',\n 'pertenk': '\\u2031',\n 'pfr': '\\uD835\\uDD2D',\n 'phi': '\\u03C6',\n 'phiv': '\\u03D5',\n 'straightphi': '\\u03D5',\n 'varphi': '\\u03D5',\n 'phone': '\\u260E',\n 'pi': '\\u03C0',\n 'piv': '\\u03D6',\n 'varpi': '\\u03D6',\n 'planckh': '\\u210E',\n 'plus': '\\u002B',\n 'plusacir': '\\u2A23',\n 'pluscir': '\\u2A22',\n 'plusdu': '\\u2A25',\n 'pluse': '\\u2A72',\n 'plussim': '\\u2A26',\n 'plustwo': '\\u2A27',\n 'pointint': '\\u2A15',\n 'popf': '\\uD835\\uDD61',\n 'pound': '\\u00A3',\n 'prE': '\\u2AB3',\n 'prap': '\\u2AB7',\n 'precapprox': '\\u2AB7',\n 'precnapprox': '\\u2AB9',\n 'prnap': '\\u2AB9',\n 'precneqq': '\\u2AB5',\n 'prnE': '\\u2AB5',\n 'precnsim': '\\u22E8',\n 'prnsim': '\\u22E8',\n 'prime': '\\u2032',\n 'profalar': '\\u232E',\n 'profline': '\\u2312',\n 'profsurf': '\\u2313',\n 'prurel': '\\u22B0',\n 'pscr': '\\uD835\\uDCC5',\n 'psi': '\\u03C8',\n 'puncsp': '\\u2008',\n 'qfr': '\\uD835\\uDD2E',\n 'qopf': '\\uD835\\uDD62',\n 'qprime': '\\u2057',\n 'qscr': '\\uD835\\uDCC6',\n 'quatint': '\\u2A16',\n 'quest': '\\u003F',\n 'rAtail': '\\u291C',\n 'rHar': '\\u2964',\n 'race': '\\u223D\\u0331',\n 'racute': '\\u0155',\n 'raemptyv': '\\u29B3',\n 'rangd': '\\u2992',\n 'range': '\\u29A5',\n 'raquo': '\\u00BB',\n 'rarrap': '\\u2975',\n 'rarrbfs': '\\u2920',\n 'rarrc': '\\u2933',\n 'rarrfs': '\\u291E',\n 'rarrpl': '\\u2945',\n 'rarrsim': '\\u2974',\n 'rarrtl': '\\u21A3',\n 'rightarrowtail': '\\u21A3',\n 'rarrw': '\\u219D',\n 'rightsquigarrow': '\\u219D',\n 'ratail': '\\u291A',\n 'ratio': '\\u2236',\n 'rbbrk': '\\u2773',\n 'rbrace': '\\u007D',\n 'rcub': '\\u007D',\n 'rbrack': '\\u005D',\n 'rsqb': '\\u005D',\n 'rbrke': '\\u298C',\n 'rbrksld': '\\u298E',\n 'rbrkslu': '\\u2990',\n 'rcaron': '\\u0159',\n 'rcedil': '\\u0157',\n 'rcy': '\\u0440',\n 'rdca': '\\u2937',\n 'rdldhar': '\\u2969',\n 'rdsh': '\\u21B3',\n 'rect': '\\u25AD',\n 'rfisht': '\\u297D',\n 'rfr': '\\uD835\\uDD2F',\n 'rharul': '\\u296C',\n 'rho': '\\u03C1',\n 'rhov': '\\u03F1',\n 'varrho': '\\u03F1',\n 'rightrightarrows': '\\u21C9',\n 'rrarr': '\\u21C9',\n 'rightthreetimes': '\\u22CC',\n 'rthree': '\\u22CC',\n 'ring': '\\u02DA',\n 'rlm': '\\u200F',\n 'rmoust': '\\u23B1',\n 'rmoustache': '\\u23B1',\n 'rnmid': '\\u2AEE',\n 'roang': '\\u27ED',\n 'roarr': '\\u21FE',\n 'ropar': '\\u2986',\n 'ropf': '\\uD835\\uDD63',\n 'roplus': '\\u2A2E',\n 'rotimes': '\\u2A35',\n 'rpar': '\\u0029',\n 'rpargt': '\\u2994',\n 'rppolint': '\\u2A12',\n 'rsaquo': '\\u203A',\n 'rscr': '\\uD835\\uDCC7',\n 'rtimes': '\\u22CA',\n 'rtri': '\\u25B9',\n 'triangleright': '\\u25B9',\n 'rtriltri': '\\u29CE',\n 'ruluhar': '\\u2968',\n 'rx': '\\u211E',\n 'sacute': '\\u015B',\n 'scE': '\\u2AB4',\n 'scap': '\\u2AB8',\n 'succapprox': '\\u2AB8',\n 'scaron': '\\u0161',\n 'scedil': '\\u015F',\n 'scirc': '\\u015D',\n 'scnE': '\\u2AB6',\n 'succneqq': '\\u2AB6',\n 'scnap': '\\u2ABA',\n 'succnapprox': '\\u2ABA',\n 'scnsim': '\\u22E9',\n 'succnsim': '\\u22E9',\n 'scpolint': '\\u2A13',\n 'scy': '\\u0441',\n 'sdot': '\\u22C5',\n 'sdote': '\\u2A66',\n 'seArr': '\\u21D8',\n 'sect': '\\u00A7',\n 'semi': '\\u003B',\n 'seswar': '\\u2929',\n 'tosa': '\\u2929',\n 'sext': '\\u2736',\n 'sfr': '\\uD835\\uDD30',\n 'sharp': '\\u266F',\n 'shchcy': '\\u0449',\n 'shcy': '\\u0448',\n 'shy': '\\u00AD',\n 'sigma': '\\u03C3',\n 'sigmaf': '\\u03C2',\n 'sigmav': '\\u03C2',\n 'varsigma': '\\u03C2',\n 'simdot': '\\u2A6A',\n 'simg': '\\u2A9E',\n 'simgE': '\\u2AA0',\n 'siml': '\\u2A9D',\n 'simlE': '\\u2A9F',\n 'simne': '\\u2246',\n 'simplus': '\\u2A24',\n 'simrarr': '\\u2972',\n 'smashp': '\\u2A33',\n 'smeparsl': '\\u29E4',\n 'smile': '\\u2323',\n 'ssmile': '\\u2323',\n 'smt': '\\u2AAA',\n 'smte': '\\u2AAC',\n 'smtes': '\\u2AAC\\uFE00',\n 'softcy': '\\u044C',\n 'sol': '\\u002F',\n 'solb': '\\u29C4',\n 'solbar': '\\u233F',\n 'sopf': '\\uD835\\uDD64',\n 'spades': '\\u2660',\n 'spadesuit': '\\u2660',\n 'sqcaps': '\\u2293\\uFE00',\n 'sqcups': '\\u2294\\uFE00',\n 'sscr': '\\uD835\\uDCC8',\n 'star': '\\u2606',\n 'sub': '\\u2282',\n 'subset': '\\u2282',\n 'subE': '\\u2AC5',\n 'subseteqq': '\\u2AC5',\n 'subdot': '\\u2ABD',\n 'subedot': '\\u2AC3',\n 'submult': '\\u2AC1',\n 'subnE': '\\u2ACB',\n 'subsetneqq': '\\u2ACB',\n 'subne': '\\u228A',\n 'subsetneq': '\\u228A',\n 'subplus': '\\u2ABF',\n 'subrarr': '\\u2979',\n 'subsim': '\\u2AC7',\n 'subsub': '\\u2AD5',\n 'subsup': '\\u2AD3',\n 'sung': '\\u266A',\n 'sup1': '\\u00B9',\n 'sup2': '\\u00B2',\n 'sup3': '\\u00B3',\n 'supE': '\\u2AC6',\n 'supseteqq': '\\u2AC6',\n 'supdot': '\\u2ABE',\n 'supdsub': '\\u2AD8',\n 'supedot': '\\u2AC4',\n 'suphsol': '\\u27C9',\n 'suphsub': '\\u2AD7',\n 'suplarr': '\\u297B',\n 'supmult': '\\u2AC2',\n 'supnE': '\\u2ACC',\n 'supsetneqq': '\\u2ACC',\n 'supne': '\\u228B',\n 'supsetneq': '\\u228B',\n 'supplus': '\\u2AC0',\n 'supsim': '\\u2AC8',\n 'supsub': '\\u2AD4',\n 'supsup': '\\u2AD6',\n 'swArr': '\\u21D9',\n 'swnwar': '\\u292A',\n 'szlig': '\\u00DF',\n 'target': '\\u2316',\n 'tau': '\\u03C4',\n 'tcaron': '\\u0165',\n 'tcedil': '\\u0163',\n 'tcy': '\\u0442',\n 'telrec': '\\u2315',\n 'tfr': '\\uD835\\uDD31',\n 'theta': '\\u03B8',\n 'thetasym': '\\u03D1',\n 'thetav': '\\u03D1',\n 'vartheta': '\\u03D1',\n 'thorn': '\\u00FE',\n 'times': '\\u00D7',\n 'timesbar': '\\u2A31',\n 'timesd': '\\u2A30',\n 'topbot': '\\u2336',\n 'topcir': '\\u2AF1',\n 'topf': '\\uD835\\uDD65',\n 'topfork': '\\u2ADA',\n 'tprime': '\\u2034',\n 'triangle': '\\u25B5',\n 'utri': '\\u25B5',\n 'triangleq': '\\u225C',\n 'trie': '\\u225C',\n 'tridot': '\\u25EC',\n 'triminus': '\\u2A3A',\n 'triplus': '\\u2A39',\n 'trisb': '\\u29CD',\n 'tritime': '\\u2A3B',\n 'trpezium': '\\u23E2',\n 'tscr': '\\uD835\\uDCC9',\n 'tscy': '\\u0446',\n 'tshcy': '\\u045B',\n 'tstrok': '\\u0167',\n 'uHar': '\\u2963',\n 'uacute': '\\u00FA',\n 'ubrcy': '\\u045E',\n 'ubreve': '\\u016D',\n 'ucirc': '\\u00FB',\n 'ucy': '\\u0443',\n 'udblac': '\\u0171',\n 'ufisht': '\\u297E',\n 'ufr': '\\uD835\\uDD32',\n 'ugrave': '\\u00F9',\n 'uhblk': '\\u2580',\n 'ulcorn': '\\u231C',\n 'ulcorner': '\\u231C',\n 'ulcrop': '\\u230F',\n 'ultri': '\\u25F8',\n 'umacr': '\\u016B',\n 'uogon': '\\u0173',\n 'uopf': '\\uD835\\uDD66',\n 'upsi': '\\u03C5',\n 'upsilon': '\\u03C5',\n 'upuparrows': '\\u21C8',\n 'uuarr': '\\u21C8',\n 'urcorn': '\\u231D',\n 'urcorner': '\\u231D',\n 'urcrop': '\\u230E',\n 'uring': '\\u016F',\n 'urtri': '\\u25F9',\n 'uscr': '\\uD835\\uDCCA',\n 'utdot': '\\u22F0',\n 'utilde': '\\u0169',\n 'uuml': '\\u00FC',\n 'uwangle': '\\u29A7',\n 'vBar': '\\u2AE8',\n 'vBarv': '\\u2AE9',\n 'vangrt': '\\u299C',\n 'varsubsetneq': '\\u228A\\uFE00',\n 'vsubne': '\\u228A\\uFE00',\n 'varsubsetneqq': '\\u2ACB\\uFE00',\n 'vsubnE': '\\u2ACB\\uFE00',\n 'varsupsetneq': '\\u228B\\uFE00',\n 'vsupne': '\\u228B\\uFE00',\n 'varsupsetneqq': '\\u2ACC\\uFE00',\n 'vsupnE': '\\u2ACC\\uFE00',\n 'vcy': '\\u0432',\n 'veebar': '\\u22BB',\n 'veeeq': '\\u225A',\n 'vellip': '\\u22EE',\n 'vfr': '\\uD835\\uDD33',\n 'vopf': '\\uD835\\uDD67',\n 'vscr': '\\uD835\\uDCCB',\n 'vzigzag': '\\u299A',\n 'wcirc': '\\u0175',\n 'wedbar': '\\u2A5F',\n 'wedgeq': '\\u2259',\n 'weierp': '\\u2118',\n 'wp': '\\u2118',\n 'wfr': '\\uD835\\uDD34',\n 'wopf': '\\uD835\\uDD68',\n 'wscr': '\\uD835\\uDCCC',\n 'xfr': '\\uD835\\uDD35',\n 'xi': '\\u03BE',\n 'xnis': '\\u22FB',\n 'xopf': '\\uD835\\uDD69',\n 'xscr': '\\uD835\\uDCCD',\n 'yacute': '\\u00FD',\n 'yacy': '\\u044F',\n 'ycirc': '\\u0177',\n 'ycy': '\\u044B',\n 'yen': '\\u00A5',\n 'yfr': '\\uD835\\uDD36',\n 'yicy': '\\u0457',\n 'yopf': '\\uD835\\uDD6A',\n 'yscr': '\\uD835\\uDCCE',\n 'yucy': '\\u044E',\n 'yuml': '\\u00FF',\n 'zacute': '\\u017A',\n 'zcaron': '\\u017E',\n 'zcy': '\\u0437',\n 'zdot': '\\u017C',\n 'zeta': '\\u03B6',\n 'zfr': '\\uD835\\uDD37',\n 'zhcy': '\\u0436',\n 'zigrarr': '\\u21DD',\n 'zopf': '\\uD835\\uDD6B',\n 'zscr': '\\uD835\\uDCCF',\n 'zwj': '\\u200D',\n 'zwnj': '\\u200C'\n};\n// The &ngsp; pseudo-entity is denoting a space. see:\n// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart\nconst NGSP_UNICODE = '\\uE500';\nNAMED_ENTITIES['ngsp'] = NGSP_UNICODE;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass TokenError extends ParseError {\n constructor(errorMsg, tokenType, span) {\n super(span, errorMsg);\n this.tokenType = tokenType;\n }\n}\nclass TokenizeResult {\n constructor(tokens, errors, nonNormalizedIcuExpressions) {\n this.tokens = tokens;\n this.errors = errors;\n this.nonNormalizedIcuExpressions = nonNormalizedIcuExpressions;\n }\n}\nfunction tokenize(source, url, getTagDefinition, options = {}) {\n const tokenizer = new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, options);\n tokenizer.tokenize();\n return new TokenizeResult(mergeTextTokens(tokenizer.tokens), tokenizer.errors, tokenizer.nonNormalizedIcuExpressions);\n}\nconst _CR_OR_CRLF_REGEXP = /\\r\\n?/g;\nfunction _unexpectedCharacterErrorMsg(charCode) {\n const char = charCode === $EOF ? 'EOF' : String.fromCharCode(charCode);\n return `Unexpected character \"${char}\"`;\n}\nfunction _unknownEntityErrorMsg(entitySrc) {\n return `Unknown entity \"${entitySrc}\" - use the \"&#;\" or \"&#x;\" syntax`;\n}\nfunction _unparsableEntityErrorMsg(type, entityStr) {\n return `Unable to parse entity \"${entityStr}\" - ${type} character reference entities must end with \";\"`;\n}\nvar CharacterReferenceType;\n(function (CharacterReferenceType) {\n CharacterReferenceType[\"HEX\"] = \"hexadecimal\";\n CharacterReferenceType[\"DEC\"] = \"decimal\";\n})(CharacterReferenceType || (CharacterReferenceType = {}));\nclass _ControlFlowError {\n constructor(error) {\n this.error = error;\n }\n}\n// See https://www.w3.org/TR/html51/syntax.html#writing-html-documents\nclass _Tokenizer {\n /**\n * @param _file The html source file being tokenized.\n * @param _getTagDefinition A function that will retrieve a tag definition for a given tag name.\n * @param options Configuration of the tokenization.\n */\n constructor(_file, _getTagDefinition, options) {\n this._getTagDefinition = _getTagDefinition;\n this._currentTokenStart = null;\n this._currentTokenType = null;\n this._expansionCaseStack = [];\n this._inInterpolation = false;\n this.tokens = [];\n this.errors = [];\n this.nonNormalizedIcuExpressions = [];\n this._tokenizeIcu = options.tokenizeExpansionForms || false;\n this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG;\n this._leadingTriviaCodePoints =\n options.leadingTriviaChars && options.leadingTriviaChars.map(c => c.codePointAt(0) || 0);\n const range = options.range || { endPos: _file.content.length, startPos: 0, startLine: 0, startCol: 0 };\n this._cursor = options.escapedString ? new EscapedCharacterCursor(_file, range) :\n new PlainCharacterCursor(_file, range);\n this._preserveLineEndings = options.preserveLineEndings || false;\n this._escapedString = options.escapedString || false;\n this._i18nNormalizeLineEndingsInICUs = options.i18nNormalizeLineEndingsInICUs || false;\n try {\n this._cursor.init();\n }\n catch (e) {\n this.handleError(e);\n }\n }\n _processCarriageReturns(content) {\n if (this._preserveLineEndings) {\n return content;\n }\n // https://www.w3.org/TR/html51/syntax.html#preprocessing-the-input-stream\n // In order to keep the original position in the source, we can not\n // pre-process it.\n // Instead CRs are processed right before instantiating the tokens.\n return content.replace(_CR_OR_CRLF_REGEXP, '\\n');\n }\n tokenize() {\n while (this._cursor.peek() !== $EOF) {\n const start = this._cursor.clone();\n try {\n if (this._attemptCharCode($LT)) {\n if (this._attemptCharCode($BANG)) {\n if (this._attemptCharCode($LBRACKET)) {\n this._consumeCdata(start);\n }\n else if (this._attemptCharCode($MINUS)) {\n this._consumeComment(start);\n }\n else {\n this._consumeDocType(start);\n }\n }\n else if (this._attemptCharCode($SLASH)) {\n this._consumeTagClose(start);\n }\n else {\n this._consumeTagOpen(start);\n }\n }\n else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) {\n // In (possibly interpolated) text the end of the text is given by `isTextEnd()`, while\n // the premature end of an interpolation is given by the start of a new HTML element.\n this._consumeWithInterpolation(5 /* TokenType.TEXT */, 8 /* TokenType.INTERPOLATION */, () => this._isTextEnd(), () => this._isTagStart());\n }\n }\n catch (e) {\n this.handleError(e);\n }\n }\n this._beginToken(24 /* TokenType.EOF */);\n this._endToken([]);\n }\n /**\n * @returns whether an ICU token has been created\n * @internal\n */\n _tokenizeExpansionForm() {\n if (this.isExpansionFormStart()) {\n this._consumeExpansionFormStart();\n return true;\n }\n if (isExpansionCaseStart(this._cursor.peek()) && this._isInExpansionForm()) {\n this._consumeExpansionCaseStart();\n return true;\n }\n if (this._cursor.peek() === $RBRACE) {\n if (this._isInExpansionCase()) {\n this._consumeExpansionCaseEnd();\n return true;\n }\n if (this._isInExpansionForm()) {\n this._consumeExpansionFormEnd();\n return true;\n }\n }\n return false;\n }\n _beginToken(type, start = this._cursor.clone()) {\n this._currentTokenStart = start;\n this._currentTokenType = type;\n }\n _endToken(parts, end) {\n if (this._currentTokenStart === null) {\n throw new TokenError('Programming error - attempted to end a token when there was no start to the token', this._currentTokenType, this._cursor.getSpan(end));\n }\n if (this._currentTokenType === null) {\n throw new TokenError('Programming error - attempted to end a token which has no token type', null, this._cursor.getSpan(this._currentTokenStart));\n }\n const token = {\n type: this._currentTokenType,\n parts,\n sourceSpan: (end !== null && end !== void 0 ? end : this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints),\n };\n this.tokens.push(token);\n this._currentTokenStart = null;\n this._currentTokenType = null;\n return token;\n }\n _createError(msg, span) {\n if (this._isInExpansionForm()) {\n msg += ` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`;\n }\n const error = new TokenError(msg, this._currentTokenType, span);\n this._currentTokenStart = null;\n this._currentTokenType = null;\n return new _ControlFlowError(error);\n }\n handleError(e) {\n if (e instanceof CursorError) {\n e = this._createError(e.msg, this._cursor.getSpan(e.cursor));\n }\n if (e instanceof _ControlFlowError) {\n this.errors.push(e.error);\n }\n else {\n throw e;\n }\n }\n _attemptCharCode(charCode) {\n if (this._cursor.peek() === charCode) {\n this._cursor.advance();\n return true;\n }\n return false;\n }\n _attemptCharCodeCaseInsensitive(charCode) {\n if (compareCharCodeCaseInsensitive(this._cursor.peek(), charCode)) {\n this._cursor.advance();\n return true;\n }\n return false;\n }\n _requireCharCode(charCode) {\n const location = this._cursor.clone();\n if (!this._attemptCharCode(charCode)) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location));\n }\n }\n _attemptStr(chars) {\n const len = chars.length;\n if (this._cursor.charsLeft() < len) {\n return false;\n }\n const initialPosition = this._cursor.clone();\n for (let i = 0; i < len; i++) {\n if (!this._attemptCharCode(chars.charCodeAt(i))) {\n // If attempting to parse the string fails, we want to reset the parser\n // to where it was before the attempt\n this._cursor = initialPosition;\n return false;\n }\n }\n return true;\n }\n _attemptStrCaseInsensitive(chars) {\n for (let i = 0; i < chars.length; i++) {\n if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n }\n _requireStr(chars) {\n const location = this._cursor.clone();\n if (!this._attemptStr(chars)) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location));\n }\n }\n _attemptCharCodeUntilFn(predicate) {\n while (!predicate(this._cursor.peek())) {\n this._cursor.advance();\n }\n }\n _requireCharCodeUntilFn(predicate, len) {\n const start = this._cursor.clone();\n this._attemptCharCodeUntilFn(predicate);\n if (this._cursor.diff(start) < len) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start));\n }\n }\n _attemptUntilChar(char) {\n while (this._cursor.peek() !== char) {\n this._cursor.advance();\n }\n }\n _readChar() {\n // Don't rely upon reading directly from `_input` as the actual char value\n // may have been generated from an escape sequence.\n const char = String.fromCodePoint(this._cursor.peek());\n this._cursor.advance();\n return char;\n }\n _consumeEntity(textTokenType) {\n this._beginToken(9 /* TokenType.ENCODED_ENTITY */);\n const start = this._cursor.clone();\n this._cursor.advance();\n if (this._attemptCharCode($HASH)) {\n const isHex = this._attemptCharCode($x) || this._attemptCharCode($X);\n const codeStart = this._cursor.clone();\n this._attemptCharCodeUntilFn(isDigitEntityEnd);\n if (this._cursor.peek() != $SEMICOLON) {\n // Advance cursor to include the peeked character in the string provided to the error\n // message.\n this._cursor.advance();\n const entityType = isHex ? CharacterReferenceType.HEX : CharacterReferenceType.DEC;\n throw this._createError(_unparsableEntityErrorMsg(entityType, this._cursor.getChars(start)), this._cursor.getSpan());\n }\n const strNum = this._cursor.getChars(codeStart);\n this._cursor.advance();\n try {\n const charCode = parseInt(strNum, isHex ? 16 : 10);\n this._endToken([String.fromCharCode(charCode), this._cursor.getChars(start)]);\n }\n catch (_a) {\n throw this._createError(_unknownEntityErrorMsg(this._cursor.getChars(start)), this._cursor.getSpan());\n }\n }\n else {\n const nameStart = this._cursor.clone();\n this._attemptCharCodeUntilFn(isNamedEntityEnd);\n if (this._cursor.peek() != $SEMICOLON) {\n // No semicolon was found so abort the encoded entity token that was in progress, and treat\n // this as a text token\n this._beginToken(textTokenType, start);\n this._cursor = nameStart;\n this._endToken(['&']);\n }\n else {\n const name = this._cursor.getChars(nameStart);\n this._cursor.advance();\n const char = NAMED_ENTITIES[name];\n if (!char) {\n throw this._createError(_unknownEntityErrorMsg(name), this._cursor.getSpan(start));\n }\n this._endToken([char, `&${name};`]);\n }\n }\n }\n _consumeRawText(consumeEntities, endMarkerPredicate) {\n this._beginToken(consumeEntities ? 6 /* TokenType.ESCAPABLE_RAW_TEXT */ : 7 /* TokenType.RAW_TEXT */);\n const parts = [];\n while (true) {\n const tagCloseStart = this._cursor.clone();\n const foundEndMarker = endMarkerPredicate();\n this._cursor = tagCloseStart;\n if (foundEndMarker) {\n break;\n }\n if (consumeEntities && this._cursor.peek() === $AMPERSAND) {\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n parts.length = 0;\n this._consumeEntity(6 /* TokenType.ESCAPABLE_RAW_TEXT */);\n this._beginToken(6 /* TokenType.ESCAPABLE_RAW_TEXT */);\n }\n else {\n parts.push(this._readChar());\n }\n }\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n }\n _consumeComment(start) {\n this._beginToken(10 /* TokenType.COMMENT_START */, start);\n this._requireCharCode($MINUS);\n this._endToken([]);\n this._consumeRawText(false, () => this._attemptStr('-->'));\n this._beginToken(11 /* TokenType.COMMENT_END */);\n this._requireStr('-->');\n this._endToken([]);\n }\n _consumeCdata(start) {\n this._beginToken(12 /* TokenType.CDATA_START */, start);\n this._requireStr('CDATA[');\n this._endToken([]);\n this._consumeRawText(false, () => this._attemptStr(']]>'));\n this._beginToken(13 /* TokenType.CDATA_END */);\n this._requireStr(']]>');\n this._endToken([]);\n }\n _consumeDocType(start) {\n this._beginToken(18 /* TokenType.DOC_TYPE */, start);\n const contentStart = this._cursor.clone();\n this._attemptUntilChar($GT);\n const content = this._cursor.getChars(contentStart);\n this._cursor.advance();\n this._endToken([content]);\n }\n _consumePrefixAndName() {\n const nameOrPrefixStart = this._cursor.clone();\n let prefix = '';\n while (this._cursor.peek() !== $COLON && !isPrefixEnd(this._cursor.peek())) {\n this._cursor.advance();\n }\n let nameStart;\n if (this._cursor.peek() === $COLON) {\n prefix = this._cursor.getChars(nameOrPrefixStart);\n this._cursor.advance();\n nameStart = this._cursor.clone();\n }\n else {\n nameStart = nameOrPrefixStart;\n }\n this._requireCharCodeUntilFn(isNameEnd, prefix === '' ? 0 : 1);\n const name = this._cursor.getChars(nameStart);\n return [prefix, name];\n }\n _consumeTagOpen(start) {\n let tagName;\n let prefix;\n let openTagToken;\n try {\n if (!isAsciiLetter(this._cursor.peek())) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start));\n }\n openTagToken = this._consumeTagOpenStart(start);\n prefix = openTagToken.parts[0];\n tagName = openTagToken.parts[1];\n this._attemptCharCodeUntilFn(isNotWhitespace);\n while (this._cursor.peek() !== $SLASH && this._cursor.peek() !== $GT &&\n this._cursor.peek() !== $LT && this._cursor.peek() !== $EOF) {\n this._consumeAttributeName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n if (this._attemptCharCode($EQ)) {\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._consumeAttributeValue();\n }\n this._attemptCharCodeUntilFn(isNotWhitespace);\n }\n this._consumeTagOpenEnd();\n }\n catch (e) {\n if (e instanceof _ControlFlowError) {\n if (openTagToken) {\n // We errored before we could close the opening tag, so it is incomplete.\n openTagToken.type = 4 /* TokenType.INCOMPLETE_TAG_OPEN */;\n }\n else {\n // When the start tag is invalid, assume we want a \"<\" as text.\n // Back to back text tokens are merged at the end.\n this._beginToken(5 /* TokenType.TEXT */, start);\n this._endToken(['<']);\n }\n return;\n }\n throw e;\n }\n const contentTokenType = this._getTagDefinition(tagName).getContentType(prefix);\n if (contentTokenType === TagContentType.RAW_TEXT) {\n this._consumeRawTextWithTagClose(prefix, tagName, false);\n }\n else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) {\n this._consumeRawTextWithTagClose(prefix, tagName, true);\n }\n }\n _consumeRawTextWithTagClose(prefix, tagName, consumeEntities) {\n this._consumeRawText(consumeEntities, () => {\n if (!this._attemptCharCode($LT))\n return false;\n if (!this._attemptCharCode($SLASH))\n return false;\n this._attemptCharCodeUntilFn(isNotWhitespace);\n if (!this._attemptStrCaseInsensitive(tagName))\n return false;\n this._attemptCharCodeUntilFn(isNotWhitespace);\n return this._attemptCharCode($GT);\n });\n this._beginToken(3 /* TokenType.TAG_CLOSE */);\n this._requireCharCodeUntilFn(code => code === $GT, 3);\n this._cursor.advance(); // Consume the `>`\n this._endToken([prefix, tagName]);\n }\n _consumeTagOpenStart(start) {\n this._beginToken(0 /* TokenType.TAG_OPEN_START */, start);\n const parts = this._consumePrefixAndName();\n return this._endToken(parts);\n }\n _consumeAttributeName() {\n const attrNameStart = this._cursor.peek();\n if (attrNameStart === $SQ || attrNameStart === $DQ) {\n throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart), this._cursor.getSpan());\n }\n this._beginToken(14 /* TokenType.ATTR_NAME */);\n const prefixAndName = this._consumePrefixAndName();\n this._endToken(prefixAndName);\n }\n _consumeAttributeValue() {\n let value;\n if (this._cursor.peek() === $SQ || this._cursor.peek() === $DQ) {\n const quoteChar = this._cursor.peek();\n this._consumeQuote(quoteChar);\n // In an attribute then end of the attribute value and the premature end to an interpolation\n // are both triggered by the `quoteChar`.\n const endPredicate = () => this._cursor.peek() === quoteChar;\n this._consumeWithInterpolation(16 /* TokenType.ATTR_VALUE_TEXT */, 17 /* TokenType.ATTR_VALUE_INTERPOLATION */, endPredicate, endPredicate);\n this._consumeQuote(quoteChar);\n }\n else {\n const endPredicate = () => isNameEnd(this._cursor.peek());\n this._consumeWithInterpolation(16 /* TokenType.ATTR_VALUE_TEXT */, 17 /* TokenType.ATTR_VALUE_INTERPOLATION */, endPredicate, endPredicate);\n }\n }\n _consumeQuote(quoteChar) {\n this._beginToken(15 /* TokenType.ATTR_QUOTE */);\n this._requireCharCode(quoteChar);\n this._endToken([String.fromCodePoint(quoteChar)]);\n }\n _consumeTagOpenEnd() {\n const tokenType = this._attemptCharCode($SLASH) ? 2 /* TokenType.TAG_OPEN_END_VOID */ : 1 /* TokenType.TAG_OPEN_END */;\n this._beginToken(tokenType);\n this._requireCharCode($GT);\n this._endToken([]);\n }\n _consumeTagClose(start) {\n this._beginToken(3 /* TokenType.TAG_CLOSE */, start);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n const prefixAndName = this._consumePrefixAndName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._requireCharCode($GT);\n this._endToken(prefixAndName);\n }\n _consumeExpansionFormStart() {\n this._beginToken(19 /* TokenType.EXPANSION_FORM_START */);\n this._requireCharCode($LBRACE);\n this._endToken([]);\n this._expansionCaseStack.push(19 /* TokenType.EXPANSION_FORM_START */);\n this._beginToken(7 /* TokenType.RAW_TEXT */);\n const condition = this._readUntil($COMMA);\n const normalizedCondition = this._processCarriageReturns(condition);\n if (this._i18nNormalizeLineEndingsInICUs) {\n // We explicitly want to normalize line endings for this text.\n this._endToken([normalizedCondition]);\n }\n else {\n // We are not normalizing line endings.\n const conditionToken = this._endToken([condition]);\n if (normalizedCondition !== condition) {\n this.nonNormalizedIcuExpressions.push(conditionToken);\n }\n }\n this._requireCharCode($COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._beginToken(7 /* TokenType.RAW_TEXT */);\n const type = this._readUntil($COMMA);\n this._endToken([type]);\n this._requireCharCode($COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n }\n _consumeExpansionCaseStart() {\n this._beginToken(20 /* TokenType.EXPANSION_CASE_VALUE */);\n const value = this._readUntil($LBRACE).trim();\n this._endToken([value]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._beginToken(21 /* TokenType.EXPANSION_CASE_EXP_START */);\n this._requireCharCode($LBRACE);\n this._endToken([]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._expansionCaseStack.push(21 /* TokenType.EXPANSION_CASE_EXP_START */);\n }\n _consumeExpansionCaseEnd() {\n this._beginToken(22 /* TokenType.EXPANSION_CASE_EXP_END */);\n this._requireCharCode($RBRACE);\n this._endToken([]);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._expansionCaseStack.pop();\n }\n _consumeExpansionFormEnd() {\n this._beginToken(23 /* TokenType.EXPANSION_FORM_END */);\n this._requireCharCode($RBRACE);\n this._endToken([]);\n this._expansionCaseStack.pop();\n }\n /**\n * Consume a string that may contain interpolation expressions.\n *\n * The first token consumed will be of `tokenType` and then there will be alternating\n * `interpolationTokenType` and `tokenType` tokens until the `endPredicate()` returns true.\n *\n * If an interpolation token ends prematurely it will have no end marker in its `parts` array.\n *\n * @param textTokenType the kind of tokens to interleave around interpolation tokens.\n * @param interpolationTokenType the kind of tokens that contain interpolation.\n * @param endPredicate a function that should return true when we should stop consuming.\n * @param endInterpolation a function that should return true if there is a premature end to an\n * interpolation expression - i.e. before we get to the normal interpolation closing marker.\n */\n _consumeWithInterpolation(textTokenType, interpolationTokenType, endPredicate, endInterpolation) {\n this._beginToken(textTokenType);\n const parts = [];\n while (!endPredicate()) {\n const current = this._cursor.clone();\n if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) {\n this._endToken([this._processCarriageReturns(parts.join(''))], current);\n parts.length = 0;\n this._consumeInterpolation(interpolationTokenType, current, endInterpolation);\n this._beginToken(textTokenType);\n }\n else if (this._cursor.peek() === $AMPERSAND) {\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n parts.length = 0;\n this._consumeEntity(textTokenType);\n this._beginToken(textTokenType);\n }\n else {\n parts.push(this._readChar());\n }\n }\n // It is possible that an interpolation was started but not ended inside this text token.\n // Make sure that we reset the state of the lexer correctly.\n this._inInterpolation = false;\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n }\n /**\n * Consume a block of text that has been interpreted as an Angular interpolation.\n *\n * @param interpolationTokenType the type of the interpolation token to generate.\n * @param interpolationStart a cursor that points to the start of this interpolation.\n * @param prematureEndPredicate a function that should return true if the next characters indicate\n * an end to the interpolation before its normal closing marker.\n */\n _consumeInterpolation(interpolationTokenType, interpolationStart, prematureEndPredicate) {\n const parts = [];\n this._beginToken(interpolationTokenType, interpolationStart);\n parts.push(this._interpolationConfig.start);\n // Find the end of the interpolation, ignoring content inside quotes.\n const expressionStart = this._cursor.clone();\n let inQuote = null;\n let inComment = false;\n while (this._cursor.peek() !== $EOF &&\n (prematureEndPredicate === null || !prematureEndPredicate())) {\n const current = this._cursor.clone();\n if (this._isTagStart()) {\n // We are starting what looks like an HTML element in the middle of this interpolation.\n // Reset the cursor to before the `<` character and end the interpolation token.\n // (This is actually wrong but here for backward compatibility).\n this._cursor = current;\n parts.push(this._getProcessedChars(expressionStart, current));\n this._endToken(parts);\n return;\n }\n if (inQuote === null) {\n if (this._attemptStr(this._interpolationConfig.end)) {\n // We are not in a string, and we hit the end interpolation marker\n parts.push(this._getProcessedChars(expressionStart, current));\n parts.push(this._interpolationConfig.end);\n this._endToken(parts);\n return;\n }\n else if (this._attemptStr('//')) {\n // Once we are in a comment we ignore any quotes\n inComment = true;\n }\n }\n const char = this._cursor.peek();\n this._cursor.advance();\n if (char === $BACKSLASH) {\n // Skip the next character because it was escaped.\n this._cursor.advance();\n }\n else if (char === inQuote) {\n // Exiting the current quoted string\n inQuote = null;\n }\n else if (!inComment && inQuote === null && isQuote(char)) {\n // Entering a new quoted string\n inQuote = char;\n }\n }\n // We hit EOF without finding a closing interpolation marker\n parts.push(this._getProcessedChars(expressionStart, this._cursor));\n this._endToken(parts);\n }\n _getProcessedChars(start, end) {\n return this._processCarriageReturns(end.getChars(start));\n }\n _isTextEnd() {\n if (this._isTagStart() || this._cursor.peek() === $EOF) {\n return true;\n }\n if (this._tokenizeIcu && !this._inInterpolation) {\n if (this.isExpansionFormStart()) {\n // start of an expansion form\n return true;\n }\n if (this._cursor.peek() === $RBRACE && this._isInExpansionCase()) {\n // end of and expansion case\n return true;\n }\n }\n return false;\n }\n /**\n * Returns true if the current cursor is pointing to the start of a tag\n * (opening/closing/comments/cdata/etc).\n */\n _isTagStart() {\n if (this._cursor.peek() === $LT) {\n // We assume that `<` followed by whitespace is not the start of an HTML element.\n const tmp = this._cursor.clone();\n tmp.advance();\n // If the next character is alphabetic, ! nor / then it is a tag start\n const code = tmp.peek();\n if (($a <= code && code <= $z) || ($A <= code && code <= $Z) ||\n code === $SLASH || code === $BANG) {\n return true;\n }\n }\n return false;\n }\n _readUntil(char) {\n const start = this._cursor.clone();\n this._attemptUntilChar(char);\n return this._cursor.getChars(start);\n }\n _isInExpansionCase() {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n 21 /* TokenType.EXPANSION_CASE_EXP_START */;\n }\n _isInExpansionForm() {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n 19 /* TokenType.EXPANSION_FORM_START */;\n }\n isExpansionFormStart() {\n if (this._cursor.peek() !== $LBRACE) {\n return false;\n }\n if (this._interpolationConfig) {\n const start = this._cursor.clone();\n const isInterpolation = this._attemptStr(this._interpolationConfig.start);\n this._cursor = start;\n return !isInterpolation;\n }\n return true;\n }\n}\nfunction isNotWhitespace(code) {\n return !isWhitespace(code) || code === $EOF;\n}\nfunction isNameEnd(code) {\n return isWhitespace(code) || code === $GT || code === $LT ||\n code === $SLASH || code === $SQ || code === $DQ || code === $EQ ||\n code === $EOF;\n}\nfunction isPrefixEnd(code) {\n return (code < $a || $z < code) && (code < $A || $Z < code) &&\n (code < $0 || code > $9);\n}\nfunction isDigitEntityEnd(code) {\n return code === $SEMICOLON || code === $EOF || !isAsciiHexDigit(code);\n}\nfunction isNamedEntityEnd(code) {\n return code === $SEMICOLON || code === $EOF || !isAsciiLetter(code);\n}\nfunction isExpansionCaseStart(peek) {\n return peek !== $RBRACE;\n}\nfunction compareCharCodeCaseInsensitive(code1, code2) {\n return toUpperCaseCharCode(code1) === toUpperCaseCharCode(code2);\n}\nfunction toUpperCaseCharCode(code) {\n return code >= $a && code <= $z ? code - $a + $A : code;\n}\nfunction mergeTextTokens(srcTokens) {\n const dstTokens = [];\n let lastDstToken = undefined;\n for (let i = 0; i < srcTokens.length; i++) {\n const token = srcTokens[i];\n if ((lastDstToken && lastDstToken.type === 5 /* TokenType.TEXT */ && token.type === 5 /* TokenType.TEXT */) ||\n (lastDstToken && lastDstToken.type === 16 /* TokenType.ATTR_VALUE_TEXT */ &&\n token.type === 16 /* TokenType.ATTR_VALUE_TEXT */)) {\n lastDstToken.parts[0] += token.parts[0];\n lastDstToken.sourceSpan.end = token.sourceSpan.end;\n }\n else {\n lastDstToken = token;\n dstTokens.push(lastDstToken);\n }\n }\n return dstTokens;\n}\nclass PlainCharacterCursor {\n constructor(fileOrCursor, range) {\n if (fileOrCursor instanceof PlainCharacterCursor) {\n this.file = fileOrCursor.file;\n this.input = fileOrCursor.input;\n this.end = fileOrCursor.end;\n const state = fileOrCursor.state;\n // Note: avoid using `{...fileOrCursor.state}` here as that has a severe performance penalty.\n // In ES5 bundles the object spread operator is translated into the `__assign` helper, which\n // is not optimized by VMs as efficiently as a raw object literal. Since this constructor is\n // called in tight loops, this difference matters.\n this.state = {\n peek: state.peek,\n offset: state.offset,\n line: state.line,\n column: state.column,\n };\n }\n else {\n if (!range) {\n throw new Error('Programming error: the range argument must be provided with a file argument.');\n }\n this.file = fileOrCursor;\n this.input = fileOrCursor.content;\n this.end = range.endPos;\n this.state = {\n peek: -1,\n offset: range.startPos,\n line: range.startLine,\n column: range.startCol,\n };\n }\n }\n clone() {\n return new PlainCharacterCursor(this);\n }\n peek() {\n return this.state.peek;\n }\n charsLeft() {\n return this.end - this.state.offset;\n }\n diff(other) {\n return this.state.offset - other.state.offset;\n }\n advance() {\n this.advanceState(this.state);\n }\n init() {\n this.updatePeek(this.state);\n }\n getSpan(start, leadingTriviaCodePoints) {\n start = start || this;\n let fullStart = start;\n if (leadingTriviaCodePoints) {\n while (this.diff(start) > 0 && leadingTriviaCodePoints.indexOf(start.peek()) !== -1) {\n if (fullStart === start) {\n start = start.clone();\n }\n start.advance();\n }\n }\n const startLocation = this.locationFromCursor(start);\n const endLocation = this.locationFromCursor(this);\n const fullStartLocation = fullStart !== start ? this.locationFromCursor(fullStart) : startLocation;\n return new ParseSourceSpan(startLocation, endLocation, fullStartLocation);\n }\n getChars(start) {\n return this.input.substring(start.state.offset, this.state.offset);\n }\n charAt(pos) {\n return this.input.charCodeAt(pos);\n }\n advanceState(state) {\n if (state.offset >= this.end) {\n this.state = state;\n throw new CursorError('Unexpected character \"EOF\"', this);\n }\n const currentChar = this.charAt(state.offset);\n if (currentChar === $LF) {\n state.line++;\n state.column = 0;\n }\n else if (!isNewLine(currentChar)) {\n state.column++;\n }\n state.offset++;\n this.updatePeek(state);\n }\n updatePeek(state) {\n state.peek = state.offset >= this.end ? $EOF : this.charAt(state.offset);\n }\n locationFromCursor(cursor) {\n return new ParseLocation(cursor.file, cursor.state.offset, cursor.state.line, cursor.state.column);\n }\n}\nclass EscapedCharacterCursor extends PlainCharacterCursor {\n constructor(fileOrCursor, range) {\n if (fileOrCursor instanceof EscapedCharacterCursor) {\n super(fileOrCursor);\n this.internalState = Object.assign({}, fileOrCursor.internalState);\n }\n else {\n super(fileOrCursor, range);\n this.internalState = this.state;\n }\n }\n advance() {\n this.state = this.internalState;\n super.advance();\n this.processEscapeSequence();\n }\n init() {\n super.init();\n this.processEscapeSequence();\n }\n clone() {\n return new EscapedCharacterCursor(this);\n }\n getChars(start) {\n const cursor = start.clone();\n let chars = '';\n while (cursor.internalState.offset < this.internalState.offset) {\n chars += String.fromCodePoint(cursor.peek());\n cursor.advance();\n }\n return chars;\n }\n /**\n * Process the escape sequence that starts at the current position in the text.\n *\n * This method is called to ensure that `peek` has the unescaped value of escape sequences.\n */\n processEscapeSequence() {\n const peek = () => this.internalState.peek;\n if (peek() === $BACKSLASH) {\n // We have hit an escape sequence so we need the internal state to become independent\n // of the external state.\n this.internalState = Object.assign({}, this.state);\n // Move past the backslash\n this.advanceState(this.internalState);\n // First check for standard control char sequences\n if (peek() === $n) {\n this.state.peek = $LF;\n }\n else if (peek() === $r) {\n this.state.peek = $CR;\n }\n else if (peek() === $v) {\n this.state.peek = $VTAB;\n }\n else if (peek() === $t) {\n this.state.peek = $TAB;\n }\n else if (peek() === $b) {\n this.state.peek = $BSPACE;\n }\n else if (peek() === $f) {\n this.state.peek = $FF;\n }\n // Now consider more complex sequences\n else if (peek() === $u) {\n // Unicode code-point sequence\n this.advanceState(this.internalState); // advance past the `u` char\n if (peek() === $LBRACE) {\n // Variable length Unicode, e.g. `\\x{123}`\n this.advanceState(this.internalState); // advance past the `{` char\n // Advance past the variable number of hex digits until we hit a `}` char\n const digitStart = this.clone();\n let length = 0;\n while (peek() !== $RBRACE) {\n this.advanceState(this.internalState);\n length++;\n }\n this.state.peek = this.decodeHexDigits(digitStart, length);\n }\n else {\n // Fixed length Unicode, e.g. `\\u1234`\n const digitStart = this.clone();\n this.advanceState(this.internalState);\n this.advanceState(this.internalState);\n this.advanceState(this.internalState);\n this.state.peek = this.decodeHexDigits(digitStart, 4);\n }\n }\n else if (peek() === $x) {\n // Hex char code, e.g. `\\x2F`\n this.advanceState(this.internalState); // advance past the `x` char\n const digitStart = this.clone();\n this.advanceState(this.internalState);\n this.state.peek = this.decodeHexDigits(digitStart, 2);\n }\n else if (isOctalDigit(peek())) {\n // Octal char code, e.g. `\\012`,\n let octal = '';\n let length = 0;\n let previous = this.clone();\n while (isOctalDigit(peek()) && length < 3) {\n previous = this.clone();\n octal += String.fromCodePoint(peek());\n this.advanceState(this.internalState);\n length++;\n }\n this.state.peek = parseInt(octal, 8);\n // Backup one char\n this.internalState = previous.internalState;\n }\n else if (isNewLine(this.internalState.peek)) {\n // Line continuation `\\` followed by a new line\n this.advanceState(this.internalState); // advance over the newline\n this.state = this.internalState;\n }\n else {\n // If none of the `if` blocks were executed then we just have an escaped normal character.\n // In that case we just, effectively, skip the backslash from the character.\n this.state.peek = this.internalState.peek;\n }\n }\n }\n decodeHexDigits(start, length) {\n const hex = this.input.slice(start.internalState.offset, start.internalState.offset + length);\n const charCode = parseInt(hex, 16);\n if (!isNaN(charCode)) {\n return charCode;\n }\n else {\n start.state = start.internalState;\n throw new CursorError('Invalid hexadecimal escape sequence', start);\n }\n }\n}\nclass CursorError {\n constructor(msg, cursor) {\n this.msg = msg;\n this.cursor = cursor;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass TreeError extends ParseError {\n constructor(elementName, span, msg) {\n super(span, msg);\n this.elementName = elementName;\n }\n static create(elementName, span, msg) {\n return new TreeError(elementName, span, msg);\n }\n}\nclass ParseTreeResult {\n constructor(rootNodes, errors) {\n this.rootNodes = rootNodes;\n this.errors = errors;\n }\n}\nclass Parser {\n constructor(getTagDefinition) {\n this.getTagDefinition = getTagDefinition;\n }\n parse(source, url, options) {\n const tokenizeResult = tokenize(source, url, this.getTagDefinition, options);\n const parser = new _TreeBuilder(tokenizeResult.tokens, this.getTagDefinition);\n parser.build();\n return new ParseTreeResult(parser.rootNodes, tokenizeResult.errors.concat(parser.errors));\n }\n}\nclass _TreeBuilder {\n constructor(tokens, getTagDefinition) {\n this.tokens = tokens;\n this.getTagDefinition = getTagDefinition;\n this._index = -1;\n this._elementStack = [];\n this.rootNodes = [];\n this.errors = [];\n this._advance();\n }\n build() {\n while (this._peek.type !== 24 /* TokenType.EOF */) {\n if (this._peek.type === 0 /* TokenType.TAG_OPEN_START */ ||\n this._peek.type === 4 /* TokenType.INCOMPLETE_TAG_OPEN */) {\n this._consumeStartTag(this._advance());\n }\n else if (this._peek.type === 3 /* TokenType.TAG_CLOSE */) {\n this._consumeEndTag(this._advance());\n }\n else if (this._peek.type === 12 /* TokenType.CDATA_START */) {\n this._closeVoidElement();\n this._consumeCdata(this._advance());\n }\n else if (this._peek.type === 10 /* TokenType.COMMENT_START */) {\n this._closeVoidElement();\n this._consumeComment(this._advance());\n }\n else if (this._peek.type === 5 /* TokenType.TEXT */ || this._peek.type === 7 /* TokenType.RAW_TEXT */ ||\n this._peek.type === 6 /* TokenType.ESCAPABLE_RAW_TEXT */) {\n this._closeVoidElement();\n this._consumeText(this._advance());\n }\n else if (this._peek.type === 19 /* TokenType.EXPANSION_FORM_START */) {\n this._consumeExpansion(this._advance());\n }\n else {\n // Skip all other tokens...\n this._advance();\n }\n }\n }\n _advance() {\n const prev = this._peek;\n if (this._index < this.tokens.length - 1) {\n // Note: there is always an EOF token at the end\n this._index++;\n }\n this._peek = this.tokens[this._index];\n return prev;\n }\n _advanceIf(type) {\n if (this._peek.type === type) {\n return this._advance();\n }\n return null;\n }\n _consumeCdata(_startToken) {\n this._consumeText(this._advance());\n this._advanceIf(13 /* TokenType.CDATA_END */);\n }\n _consumeComment(token) {\n const text = this._advanceIf(7 /* TokenType.RAW_TEXT */);\n this._advanceIf(11 /* TokenType.COMMENT_END */);\n const value = text != null ? text.parts[0].trim() : null;\n this._addToParent(new Comment(value, token.sourceSpan));\n }\n _consumeExpansion(token) {\n const switchValue = this._advance();\n const type = this._advance();\n const cases = [];\n // read =\n while (this._peek.type === 20 /* TokenType.EXPANSION_CASE_VALUE */) {\n const expCase = this._parseExpansionCase();\n if (!expCase)\n return; // error\n cases.push(expCase);\n }\n // read the final }\n if (this._peek.type !== 23 /* TokenType.EXPANSION_FORM_END */) {\n this.errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return;\n }\n const sourceSpan = new ParseSourceSpan(token.sourceSpan.start, this._peek.sourceSpan.end, token.sourceSpan.fullStart);\n this._addToParent(new Expansion(switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan));\n this._advance();\n }\n _parseExpansionCase() {\n const value = this._advance();\n // read {\n if (this._peek.type !== 21 /* TokenType.EXPANSION_CASE_EXP_START */) {\n this.errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '{'.`));\n return null;\n }\n // read until }\n const start = this._advance();\n const exp = this._collectExpansionExpTokens(start);\n if (!exp)\n return null;\n const end = this._advance();\n exp.push({ type: 24 /* TokenType.EOF */, parts: [], sourceSpan: end.sourceSpan });\n // parse everything in between { and }\n const expansionCaseParser = new _TreeBuilder(exp, this.getTagDefinition);\n expansionCaseParser.build();\n if (expansionCaseParser.errors.length > 0) {\n this.errors = this.errors.concat(expansionCaseParser.errors);\n return null;\n }\n const sourceSpan = new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end, value.sourceSpan.fullStart);\n const expSourceSpan = new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end, start.sourceSpan.fullStart);\n return new ExpansionCase(value.parts[0], expansionCaseParser.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan);\n }\n _collectExpansionExpTokens(start) {\n const exp = [];\n const expansionFormStack = [21 /* TokenType.EXPANSION_CASE_EXP_START */];\n while (true) {\n if (this._peek.type === 19 /* TokenType.EXPANSION_FORM_START */ ||\n this._peek.type === 21 /* TokenType.EXPANSION_CASE_EXP_START */) {\n expansionFormStack.push(this._peek.type);\n }\n if (this._peek.type === 22 /* TokenType.EXPANSION_CASE_EXP_END */) {\n if (lastOnStack(expansionFormStack, 21 /* TokenType.EXPANSION_CASE_EXP_START */)) {\n expansionFormStack.pop();\n if (expansionFormStack.length === 0)\n return exp;\n }\n else {\n this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n }\n if (this._peek.type === 23 /* TokenType.EXPANSION_FORM_END */) {\n if (lastOnStack(expansionFormStack, 19 /* TokenType.EXPANSION_FORM_START */)) {\n expansionFormStack.pop();\n }\n else {\n this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n }\n if (this._peek.type === 24 /* TokenType.EOF */) {\n this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));\n return null;\n }\n exp.push(this._advance());\n }\n }\n _consumeText(token) {\n const tokens = [token];\n const startSpan = token.sourceSpan;\n let text = token.parts[0];\n if (text.length > 0 && text[0] === '\\n') {\n const parent = this._getParentElement();\n if (parent != null && parent.children.length === 0 &&\n this.getTagDefinition(parent.name).ignoreFirstLf) {\n text = text.substring(1);\n tokens[0] = { type: token.type, sourceSpan: token.sourceSpan, parts: [text] };\n }\n }\n while (this._peek.type === 8 /* TokenType.INTERPOLATION */ || this._peek.type === 5 /* TokenType.TEXT */ ||\n this._peek.type === 9 /* TokenType.ENCODED_ENTITY */) {\n token = this._advance();\n tokens.push(token);\n if (token.type === 8 /* TokenType.INTERPOLATION */) {\n // For backward compatibility we decode HTML entities that appear in interpolation\n // expressions. This is arguably a bug, but it could be a considerable breaking change to\n // fix it. It should be addressed in a larger project to refactor the entire parser/lexer\n // chain after View Engine has been removed.\n text += token.parts.join('').replace(/&([^;]+);/g, decodeEntity);\n }\n else if (token.type === 9 /* TokenType.ENCODED_ENTITY */) {\n text += token.parts[0];\n }\n else {\n text += token.parts.join('');\n }\n }\n if (text.length > 0) {\n const endSpan = token.sourceSpan;\n this._addToParent(new Text(text, new ParseSourceSpan(startSpan.start, endSpan.end, startSpan.fullStart, startSpan.details), tokens));\n }\n }\n _closeVoidElement() {\n const el = this._getParentElement();\n if (el && this.getTagDefinition(el.name).isVoid) {\n this._elementStack.pop();\n }\n }\n _consumeStartTag(startTagToken) {\n const [prefix, name] = startTagToken.parts;\n const attrs = [];\n while (this._peek.type === 14 /* TokenType.ATTR_NAME */) {\n attrs.push(this._consumeAttr(this._advance()));\n }\n const fullName = this._getElementFullName(prefix, name, this._getParentElement());\n let selfClosing = false;\n // Note: There could have been a tokenizer error\n // so that we don't get a token for the end tag...\n if (this._peek.type === 2 /* TokenType.TAG_OPEN_END_VOID */) {\n this._advance();\n selfClosing = true;\n const tagDef = this.getTagDefinition(fullName);\n if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) {\n this.errors.push(TreeError.create(fullName, startTagToken.sourceSpan, `Only void and foreign elements can be self closed \"${startTagToken.parts[1]}\"`));\n }\n }\n else if (this._peek.type === 1 /* TokenType.TAG_OPEN_END */) {\n this._advance();\n selfClosing = false;\n }\n const end = this._peek.sourceSpan.fullStart;\n const span = new ParseSourceSpan(startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart);\n // Create a separate `startSpan` because `span` will be modified when there is an `end` span.\n const startSpan = new ParseSourceSpan(startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart);\n const el = new Element(fullName, attrs, [], span, startSpan, undefined);\n this._pushElement(el);\n if (selfClosing) {\n // Elements that are self-closed have their `endSourceSpan` set to the full span, as the\n // element start tag also represents the end tag.\n this._popElement(fullName, span);\n }\n else if (startTagToken.type === 4 /* TokenType.INCOMPLETE_TAG_OPEN */) {\n // We already know the opening tag is not complete, so it is unlikely it has a corresponding\n // close tag. Let's optimistically parse it as a full element and emit an error.\n this._popElement(fullName, null);\n this.errors.push(TreeError.create(fullName, span, `Opening tag \"${fullName}\" not terminated.`));\n }\n }\n _pushElement(el) {\n const parentEl = this._getParentElement();\n if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) {\n this._elementStack.pop();\n }\n this._addToParent(el);\n this._elementStack.push(el);\n }\n _consumeEndTag(endTagToken) {\n const fullName = this._getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());\n if (this.getTagDefinition(fullName).isVoid) {\n this.errors.push(TreeError.create(fullName, endTagToken.sourceSpan, `Void elements do not have end tags \"${endTagToken.parts[1]}\"`));\n }\n else if (!this._popElement(fullName, endTagToken.sourceSpan)) {\n const errMsg = `Unexpected closing tag \"${fullName}\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;\n this.errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg));\n }\n }\n /**\n * Closes the nearest element with the tag name `fullName` in the parse tree.\n * `endSourceSpan` is the span of the closing tag, or null if the element does\n * not have a closing tag (for example, this happens when an incomplete\n * opening tag is recovered).\n */\n _popElement(fullName, endSourceSpan) {\n let unexpectedCloseTagDetected = false;\n for (let stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) {\n const el = this._elementStack[stackIndex];\n if (el.name === fullName) {\n // Record the parse span with the element that is being closed. Any elements that are\n // removed from the element stack at this point are closed implicitly, so they won't get\n // an end source span (as there is no explicit closing element).\n el.endSourceSpan = endSourceSpan;\n el.sourceSpan.end = endSourceSpan !== null ? endSourceSpan.end : el.sourceSpan.end;\n this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex);\n return !unexpectedCloseTagDetected;\n }\n if (!this.getTagDefinition(el.name).closedByParent) {\n // Note that we encountered an unexpected close tag but continue processing the element\n // stack so we can assign an `endSourceSpan` if there is a corresponding start tag for this\n // end tag in the stack.\n unexpectedCloseTagDetected = true;\n }\n }\n return false;\n }\n _consumeAttr(attrName) {\n const fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]);\n let attrEnd = attrName.sourceSpan.end;\n // Consume any quote\n if (this._peek.type === 15 /* TokenType.ATTR_QUOTE */) {\n this._advance();\n }\n // Consume the attribute value\n let value = '';\n const valueTokens = [];\n let valueStartSpan = undefined;\n let valueEnd = undefined;\n // NOTE: We need to use a new variable `nextTokenType` here to hide the actual type of\n // `_peek.type` from TS. Otherwise TS will narrow the type of `_peek.type` preventing it from\n // being able to consider `ATTR_VALUE_INTERPOLATION` as an option. This is because TS is not\n // able to see that `_advance()` will actually mutate `_peek`.\n const nextTokenType = this._peek.type;\n if (nextTokenType === 16 /* TokenType.ATTR_VALUE_TEXT */) {\n valueStartSpan = this._peek.sourceSpan;\n valueEnd = this._peek.sourceSpan.end;\n while (this._peek.type === 16 /* TokenType.ATTR_VALUE_TEXT */ ||\n this._peek.type === 17 /* TokenType.ATTR_VALUE_INTERPOLATION */ ||\n this._peek.type === 9 /* TokenType.ENCODED_ENTITY */) {\n const valueToken = this._advance();\n valueTokens.push(valueToken);\n if (valueToken.type === 17 /* TokenType.ATTR_VALUE_INTERPOLATION */) {\n // For backward compatibility we decode HTML entities that appear in interpolation\n // expressions. This is arguably a bug, but it could be a considerable breaking change to\n // fix it. It should be addressed in a larger project to refactor the entire parser/lexer\n // chain after View Engine has been removed.\n value += valueToken.parts.join('').replace(/&([^;]+);/g, decodeEntity);\n }\n else if (valueToken.type === 9 /* TokenType.ENCODED_ENTITY */) {\n value += valueToken.parts[0];\n }\n else {\n value += valueToken.parts.join('');\n }\n valueEnd = attrEnd = valueToken.sourceSpan.end;\n }\n }\n // Consume any quote\n if (this._peek.type === 15 /* TokenType.ATTR_QUOTE */) {\n const quoteToken = this._advance();\n attrEnd = quoteToken.sourceSpan.end;\n }\n const valueSpan = valueStartSpan && valueEnd &&\n new ParseSourceSpan(valueStartSpan.start, valueEnd, valueStartSpan.fullStart);\n return new Attribute(fullName, value, new ParseSourceSpan(attrName.sourceSpan.start, attrEnd, attrName.sourceSpan.fullStart), attrName.sourceSpan, valueSpan, valueTokens.length > 0 ? valueTokens : undefined, undefined);\n }\n _getParentElement() {\n return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null;\n }\n _addToParent(node) {\n const parent = this._getParentElement();\n if (parent != null) {\n parent.children.push(node);\n }\n else {\n this.rootNodes.push(node);\n }\n }\n _getElementFullName(prefix, localName, parentElement) {\n if (prefix === '') {\n prefix = this.getTagDefinition(localName).implicitNamespacePrefix || '';\n if (prefix === '' && parentElement != null) {\n const parentTagName = splitNsName(parentElement.name)[1];\n const parentTagDefinition = this.getTagDefinition(parentTagName);\n if (!parentTagDefinition.preventNamespaceInheritance) {\n prefix = getNsPrefix(parentElement.name);\n }\n }\n }\n return mergeNsAndName(prefix, localName);\n }\n}\nfunction lastOnStack(stack, element) {\n return stack.length > 0 && stack[stack.length - 1] === element;\n}\n/**\n * Decode the `entity` string, which we believe is the contents of an HTML entity.\n *\n * If the string is not actually a valid/known entity then just return the original `match` string.\n */\nfunction decodeEntity(match, entity) {\n if (NAMED_ENTITIES[entity] !== undefined) {\n return NAMED_ENTITIES[entity] || match;\n }\n if (/^#x[a-f0-9]+$/i.test(entity)) {\n return String.fromCodePoint(parseInt(entity.slice(2), 16));\n }\n if (/^#\\d+$/.test(entity)) {\n return String.fromCodePoint(parseInt(entity.slice(1), 10));\n }\n return match;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass HtmlParser extends Parser {\n constructor() {\n super(getHtmlTagDefinition);\n }\n parse(source, url, options) {\n return super.parse(source, url, options);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces';\nconst SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']);\n// Equivalent to \\s with \\u00a0 (non-breaking space) excluded.\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\nconst WS_CHARS = ' \\f\\n\\r\\t\\v\\u1680\\u180e\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff';\nconst NO_WS_REGEXP = new RegExp(`[^${WS_CHARS}]`);\nconst WS_REPLACE_REGEXP = new RegExp(`[${WS_CHARS}]{2,}`, 'g');\nfunction hasPreserveWhitespacesAttr(attrs) {\n return attrs.some((attr) => attr.name === PRESERVE_WS_ATTR_NAME);\n}\n/**\n * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see:\n * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32\n * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character\n * and later on replaced by a space. We are re-implementing the same idea here.\n */\nfunction replaceNgsp(value) {\n // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE\n return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' ');\n}\n/**\n * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules:\n * - consider spaces, tabs and new lines as whitespace characters;\n * - drop text nodes consisting of whitespace characters only;\n * - for all other text nodes replace consecutive whitespace characters with one space;\n * - convert &ngsp; pseudo-entity to a single space;\n *\n * Removal and trimming of whitespaces have positive performance impact (less code to generate\n * while compiling templates, faster view creation). At the same time it can be \"destructive\"\n * in some cases (whitespaces can influence layout). Because of the potential of breaking layout\n * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for\n * whitespace removal. The default option for whitespace removal will be revisited in Angular 6\n * and might be changed to \"on\" by default.\n */\nclass WhitespaceVisitor {\n visitElement(element, context) {\n if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) {\n // don't descent into elements where we need to preserve whitespaces\n // but still visit all attributes to eliminate one used as a market to preserve WS\n return new Element(element.name, visitAll(this, element.attrs), element.children, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n return new Element(element.name, element.attrs, visitAllWithSiblings(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n visitAttribute(attribute, context) {\n return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null;\n }\n visitText(text, context) {\n const isNotBlank = text.value.match(NO_WS_REGEXP);\n const hasExpansionSibling = context &&\n (context.prev instanceof Expansion || context.next instanceof Expansion);\n if (isNotBlank || hasExpansionSibling) {\n // Process the whitespace in the tokens of this Text node\n const tokens = text.tokens.map(token => token.type === 5 /* TokenType.TEXT */ ? createWhitespaceProcessedTextToken(token) : token);\n // Process the whitespace of the value of this Text node\n const value = processWhitespace(text.value);\n return new Text(value, text.sourceSpan, tokens, text.i18n);\n }\n return null;\n }\n visitComment(comment, context) {\n return comment;\n }\n visitExpansion(expansion, context) {\n return expansion;\n }\n visitExpansionCase(expansionCase, context) {\n return expansionCase;\n }\n}\nfunction createWhitespaceProcessedTextToken({ type, parts, sourceSpan }) {\n return { type, parts: [processWhitespace(parts[0])], sourceSpan };\n}\nfunction processWhitespace(text) {\n return replaceNgsp(text).replace(WS_REPLACE_REGEXP, ' ');\n}\nfunction removeWhitespaces(htmlAstWithErrors) {\n return new ParseTreeResult(visitAll(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors);\n}\nfunction visitAllWithSiblings(visitor, nodes) {\n const result = [];\n nodes.forEach((ast, i) => {\n const context = { prev: nodes[i - 1], next: nodes[i + 1] };\n const astResult = ast.visit(visitor, context);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction mapEntry(key, value) {\n return { key, value, quoted: false };\n}\nfunction mapLiteral(obj, quoted = false) {\n return literalMap(Object.keys(obj).map(key => ({\n key,\n quoted,\n value: obj[key],\n })));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!\n// Reach out to mprobst for details.\n//\n// =================================================================================================\n/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */\nlet _SECURITY_SCHEMA;\nfunction SECURITY_SCHEMA() {\n if (!_SECURITY_SCHEMA) {\n _SECURITY_SCHEMA = {};\n // Case is insignificant below, all element and attribute names are lower-cased for lookup.\n registerContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n ]);\n registerContext(SecurityContext.STYLE, ['*|style']);\n // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\n registerContext(SecurityContext.URL, [\n '*|formAction',\n 'area|href',\n 'area|ping',\n 'audio|src',\n 'a|href',\n 'a|ping',\n 'blockquote|cite',\n 'body|background',\n 'del|cite',\n 'form|action',\n 'img|src',\n 'input|src',\n 'ins|cite',\n 'q|cite',\n 'source|src',\n 'track|src',\n 'video|poster',\n 'video|src',\n ]);\n registerContext(SecurityContext.RESOURCE_URL, [\n 'applet|code',\n 'applet|codebase',\n 'base|href',\n 'embed|src',\n 'frame|src',\n 'head|profile',\n 'html|manifest',\n 'iframe|src',\n 'link|href',\n 'media|src',\n 'object|codebase',\n 'object|data',\n 'script|src',\n ]);\n }\n return _SECURITY_SCHEMA;\n}\nfunction registerContext(ctx, specs) {\n for (const spec of specs)\n _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ElementSchemaRegistry {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst EVENT = 'event';\nconst BOOLEAN = 'boolean';\nconst NUMBER = 'number';\nconst STRING = 'string';\nconst OBJECT = 'object';\n/**\n * This array represents the DOM schema. It encodes inheritance, properties, and events.\n *\n * ## Overview\n *\n * Each line represents one kind of element. The `element_inheritance` and properties are joined\n * using `element_inheritance|properties` syntax.\n *\n * ## Element Inheritance\n *\n * The `element_inheritance` can be further subdivided as `element1,element2,...^parentElement`.\n * Here the individual elements are separated by `,` (commas). Every element in the list\n * has identical properties.\n *\n * An `element` may inherit additional properties from `parentElement` If no `^parentElement` is\n * specified then `\"\"` (blank) element is assumed.\n *\n * NOTE: The blank element inherits from root `[Element]` element, the super element of all\n * elements.\n *\n * NOTE an element prefix such as `:svg:` has no special meaning to the schema.\n *\n * ## Properties\n *\n * Each element has a set of properties separated by `,` (commas). Each property can be prefixed\n * by a special character designating its type:\n *\n * - (no prefix): property is a string.\n * - `*`: property represents an event.\n * - `!`: property is a boolean.\n * - `#`: property is a number.\n * - `%`: property is an object.\n *\n * ## Query\n *\n * The class creates an internal squas representation which allows to easily answer the query of\n * if a given property exist on a given element.\n *\n * NOTE: We don't yet support querying for types or events.\n * NOTE: This schema is auto extracted from `schema_extractor.ts` located in the test folder,\n * see dom_element_schema_registry_spec.ts\n */\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS DOM SCHEMA WITHOUT A SECURITY REVIEW!\n//\n// Newly added properties must be security reviewed and assigned an appropriate SecurityContext in\n// dom_security_schema.ts. Reach out to mprobst & rjamet for details.\n//\n// =================================================================================================\nconst SCHEMA = [\n '[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +\n /* added manually to avoid breaking changes */\n ',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',\n '[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',\n ':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',\n ':svg:graphics^:svg:|',\n ':svg:animation^:svg:|*begin,*end,*repeat',\n ':svg:geometry^:svg:|',\n ':svg:componentTransferFunction^:svg:|',\n ':svg:gradient^:svg:|',\n ':svg:textContent^:svg:graphics|',\n ':svg:textPositioning^:svg:textContent|',\n 'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',\n 'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',\n 'audio^media|',\n 'br^[HTMLElement]|clear',\n 'base^[HTMLElement]|href,target',\n 'body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink',\n 'button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value',\n 'canvas^[HTMLElement]|#height,#width',\n 'content^[HTMLElement]|select',\n 'dl^[HTMLElement]|!compact',\n 'datalist^[HTMLElement]|',\n 'details^[HTMLElement]|!open',\n 'dialog^[HTMLElement]|!open,returnValue',\n 'dir^[HTMLElement]|!compact',\n 'div^[HTMLElement]|align',\n 'embed^[HTMLElement]|align,height,name,src,type,width',\n 'fieldset^[HTMLElement]|!disabled,name',\n 'font^[HTMLElement]|color,face,size',\n 'form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target',\n 'frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src',\n 'frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows',\n 'hr^[HTMLElement]|align,color,!noShade,size,width',\n 'head^[HTMLElement]|',\n 'h1,h2,h3,h4,h5,h6^[HTMLElement]|align',\n 'html^[HTMLElement]|version',\n 'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',\n 'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',\n 'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',\n 'li^[HTMLElement]|type,#value',\n 'label^[HTMLElement]|htmlFor',\n 'legend^[HTMLElement]|align',\n 'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',\n 'map^[HTMLElement]|name',\n 'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',\n 'menu^[HTMLElement]|!compact',\n 'meta^[HTMLElement]|content,httpEquiv,name,scheme',\n 'meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value',\n 'ins,del^[HTMLElement]|cite,dateTime',\n 'ol^[HTMLElement]|!compact,!reversed,#start,type',\n 'object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width',\n 'optgroup^[HTMLElement]|!disabled,label',\n 'option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value',\n 'output^[HTMLElement]|defaultValue,%htmlFor,name,value',\n 'p^[HTMLElement]|align',\n 'param^[HTMLElement]|name,type,value,valueType',\n 'picture^[HTMLElement]|',\n 'pre^[HTMLElement]|#width',\n 'progress^[HTMLElement]|#max,#value',\n 'q,blockquote,cite^[HTMLElement]|',\n 'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',\n 'select^[HTMLElement]|autocomplete,!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',\n 'shadow^[HTMLElement]|',\n 'slot^[HTMLElement]|name',\n 'source^[HTMLElement]|media,sizes,src,srcset,type',\n 'span^[HTMLElement]|',\n 'style^[HTMLElement]|!disabled,media,type',\n 'caption^[HTMLElement]|align',\n 'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width',\n 'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width',\n 'table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width',\n 'tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign',\n 'tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign',\n 'template^[HTMLElement]|',\n 'textarea^[HTMLElement]|autocapitalize,autocomplete,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap',\n 'title^[HTMLElement]|text',\n 'track^[HTMLElement]|!default,kind,label,src,srclang',\n 'ul^[HTMLElement]|!compact,type',\n 'unknown^[HTMLElement]|',\n 'video^media|#height,poster,#width',\n ':svg:a^:svg:graphics|',\n ':svg:animate^:svg:animation|',\n ':svg:animateMotion^:svg:animation|',\n ':svg:animateTransform^:svg:animation|',\n ':svg:circle^:svg:geometry|',\n ':svg:clipPath^:svg:graphics|',\n ':svg:defs^:svg:graphics|',\n ':svg:desc^:svg:|',\n ':svg:discard^:svg:|',\n ':svg:ellipse^:svg:geometry|',\n ':svg:feBlend^:svg:|',\n ':svg:feColorMatrix^:svg:|',\n ':svg:feComponentTransfer^:svg:|',\n ':svg:feComposite^:svg:|',\n ':svg:feConvolveMatrix^:svg:|',\n ':svg:feDiffuseLighting^:svg:|',\n ':svg:feDisplacementMap^:svg:|',\n ':svg:feDistantLight^:svg:|',\n ':svg:feDropShadow^:svg:|',\n ':svg:feFlood^:svg:|',\n ':svg:feFuncA^:svg:componentTransferFunction|',\n ':svg:feFuncB^:svg:componentTransferFunction|',\n ':svg:feFuncG^:svg:componentTransferFunction|',\n ':svg:feFuncR^:svg:componentTransferFunction|',\n ':svg:feGaussianBlur^:svg:|',\n ':svg:feImage^:svg:|',\n ':svg:feMerge^:svg:|',\n ':svg:feMergeNode^:svg:|',\n ':svg:feMorphology^:svg:|',\n ':svg:feOffset^:svg:|',\n ':svg:fePointLight^:svg:|',\n ':svg:feSpecularLighting^:svg:|',\n ':svg:feSpotLight^:svg:|',\n ':svg:feTile^:svg:|',\n ':svg:feTurbulence^:svg:|',\n ':svg:filter^:svg:|',\n ':svg:foreignObject^:svg:graphics|',\n ':svg:g^:svg:graphics|',\n ':svg:image^:svg:graphics|',\n ':svg:line^:svg:geometry|',\n ':svg:linearGradient^:svg:gradient|',\n ':svg:mpath^:svg:|',\n ':svg:marker^:svg:|',\n ':svg:mask^:svg:|',\n ':svg:metadata^:svg:|',\n ':svg:path^:svg:geometry|',\n ':svg:pattern^:svg:|',\n ':svg:polygon^:svg:geometry|',\n ':svg:polyline^:svg:geometry|',\n ':svg:radialGradient^:svg:gradient|',\n ':svg:rect^:svg:geometry|',\n ':svg:svg^:svg:graphics|#currentScale,#zoomAndPan',\n ':svg:script^:svg:|type',\n ':svg:set^:svg:animation|',\n ':svg:stop^:svg:|',\n ':svg:style^:svg:|!disabled,media,title,type',\n ':svg:switch^:svg:graphics|',\n ':svg:symbol^:svg:|',\n ':svg:tspan^:svg:textPositioning|',\n ':svg:text^:svg:textPositioning|',\n ':svg:textPath^:svg:textContent|',\n ':svg:title^:svg:|',\n ':svg:use^:svg:graphics|',\n ':svg:view^:svg:|#zoomAndPan',\n 'data^[HTMLElement]|value',\n 'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',\n 'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',\n 'summary^[HTMLElement]|',\n 'time^[HTMLElement]|dateTime',\n ':svg:cursor^:svg:|',\n];\nconst _ATTR_TO_PROP = new Map(Object.entries({\n 'class': 'className',\n 'for': 'htmlFor',\n 'formaction': 'formAction',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n}));\n// Invert _ATTR_TO_PROP.\nconst _PROP_TO_ATTR = Array.from(_ATTR_TO_PROP).reduce((inverted, [propertyName, attributeName]) => {\n inverted.set(propertyName, attributeName);\n return inverted;\n}, new Map());\nclass DomElementSchemaRegistry extends ElementSchemaRegistry {\n constructor() {\n super();\n this._schema = new Map();\n // We don't allow binding to events for security reasons. Allowing event bindings would almost\n // certainly introduce bad XSS vulnerabilities. Instead, we store events in a separate schema.\n this._eventSchema = new Map;\n SCHEMA.forEach(encodedType => {\n const type = new Map();\n const events = new Set();\n const [strType, strProperties] = encodedType.split('|');\n const properties = strProperties.split(',');\n const [typeNames, superName] = strType.split('^');\n typeNames.split(',').forEach(tag => {\n this._schema.set(tag.toLowerCase(), type);\n this._eventSchema.set(tag.toLowerCase(), events);\n });\n const superType = superName && this._schema.get(superName.toLowerCase());\n if (superType) {\n for (const [prop, value] of superType) {\n type.set(prop, value);\n }\n for (const superEvent of this._eventSchema.get(superName.toLowerCase())) {\n events.add(superEvent);\n }\n }\n properties.forEach((property) => {\n if (property.length > 0) {\n switch (property[0]) {\n case '*':\n events.add(property.substring(1));\n break;\n case '!':\n type.set(property.substring(1), BOOLEAN);\n break;\n case '#':\n type.set(property.substring(1), NUMBER);\n break;\n case '%':\n type.set(property.substring(1), OBJECT);\n break;\n default:\n type.set(property, STRING);\n }\n }\n });\n });\n }\n hasProperty(tagName, propName, schemaMetas) {\n if (schemaMetas.some((schema) => schema.name === NO_ERRORS_SCHEMA.name)) {\n return true;\n }\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return false;\n }\n if (schemaMetas.some((schema) => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) {\n // Can't tell now as we don't know which properties a custom element will get\n // once it is instantiated\n return true;\n }\n }\n const elementProperties = this._schema.get(tagName.toLowerCase()) || this._schema.get('unknown');\n return elementProperties.has(propName);\n }\n hasElement(tagName, schemaMetas) {\n if (schemaMetas.some((schema) => schema.name === NO_ERRORS_SCHEMA.name)) {\n return true;\n }\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return true;\n }\n if (schemaMetas.some((schema) => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) {\n // Allow any custom elements\n return true;\n }\n }\n return this._schema.has(tagName.toLowerCase());\n }\n /**\n * securityContext returns the security context for the given property on the given DOM tag.\n *\n * Tag and property name are statically known and cannot change at runtime, i.e. it is not\n * possible to bind a value into a changing attribute or tag name.\n *\n * The filtering is based on a list of allowed tags|attributes. All attributes in the schema\n * above are assumed to have the 'NONE' security context, i.e. that they are safe inert\n * string values. Only specific well known attack vectors are assigned their appropriate context.\n */\n securityContext(tagName, propName, isAttribute) {\n if (isAttribute) {\n // NB: For security purposes, use the mapped property name, not the attribute name.\n propName = this.getMappedPropName(propName);\n }\n // Make sure comparisons are case insensitive, so that case differences between attribute and\n // property names do not have a security impact.\n tagName = tagName.toLowerCase();\n propName = propName.toLowerCase();\n let ctx = SECURITY_SCHEMA()[tagName + '|' + propName];\n if (ctx) {\n return ctx;\n }\n ctx = SECURITY_SCHEMA()['*|' + propName];\n return ctx ? ctx : SecurityContext.NONE;\n }\n getMappedPropName(propName) {\n var _a;\n return (_a = _ATTR_TO_PROP.get(propName)) !== null && _a !== void 0 ? _a : propName;\n }\n getDefaultComponentElementName() {\n return 'ng-component';\n }\n validateProperty(name) {\n if (name.toLowerCase().startsWith('on')) {\n const msg = `Binding to event property '${name}' is disallowed for security reasons, ` +\n `please use (${name.slice(2)})=...` +\n `\\nIf '${name}' is a directive input, make sure the directive is imported by the` +\n ` current module.`;\n return { error: true, msg: msg };\n }\n else {\n return { error: false };\n }\n }\n validateAttribute(name) {\n if (name.toLowerCase().startsWith('on')) {\n const msg = `Binding to event attribute '${name}' is disallowed for security reasons, ` +\n `please use (${name.slice(2)})=...`;\n return { error: true, msg: msg };\n }\n else {\n return { error: false };\n }\n }\n allKnownElementNames() {\n return Array.from(this._schema.keys());\n }\n allKnownAttributesOfElement(tagName) {\n const elementProperties = this._schema.get(tagName.toLowerCase()) || this._schema.get('unknown');\n // Convert properties to attributes.\n return Array.from(elementProperties.keys()).map(prop => { var _a; return (_a = _PROP_TO_ATTR.get(prop)) !== null && _a !== void 0 ? _a : prop; });\n }\n allKnownEventsOfElement(tagName) {\n var _a;\n return Array.from((_a = this._eventSchema.get(tagName.toLowerCase())) !== null && _a !== void 0 ? _a : []);\n }\n normalizeAnimationStyleProperty(propName) {\n return dashCaseToCamelCase(propName);\n }\n normalizeAnimationStyleValue(camelCaseProp, userProvidedProp, val) {\n let unit = '';\n const strVal = val.toString().trim();\n let errorMsg = null;\n if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') {\n if (typeof val === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = val.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errorMsg = `Please provide a CSS unit value for ${userProvidedProp}:${val}`;\n }\n }\n }\n return { error: errorMsg, value: strVal + unit };\n }\n}\nfunction _isPixelDimensionStyle(prop) {\n switch (prop) {\n case 'width':\n case 'height':\n case 'minWidth':\n case 'minHeight':\n case 'maxWidth':\n case 'maxHeight':\n case 'left':\n case 'top':\n case 'bottom':\n case 'right':\n case 'fontSize':\n case 'outlineWidth':\n case 'outlineOffset':\n case 'paddingTop':\n case 'paddingLeft':\n case 'paddingBottom':\n case 'paddingRight':\n case 'marginTop':\n case 'marginLeft':\n case 'marginBottom':\n case 'marginRight':\n case 'borderRadius':\n case 'borderWidth':\n case 'borderTopWidth':\n case 'borderLeftWidth':\n case 'borderRightWidth':\n case 'borderBottomWidth':\n case 'textIndent':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Set of tagName|propertyName corresponding to Trusted Types sinks. Properties applying to all\n * tags use '*'.\n *\n * Extracted from, and should be kept in sync with\n * https://w3c.github.io/webappsec-trusted-types/dist/spec/#integrations\n */\nconst TRUSTED_TYPES_SINKS = new Set([\n // NOTE: All strings in this set *must* be lowercase!\n // TrustedHTML\n 'iframe|srcdoc',\n '*|innerhtml',\n '*|outerhtml',\n // NB: no TrustedScript here, as the corresponding tags are stripped by the compiler.\n // TrustedScriptURL\n 'embed|src',\n 'object|codebase',\n 'object|data',\n]);\n/**\n * isTrustedTypesSink returns true if the given property on the given DOM tag is a Trusted Types\n * sink. In that case, use `ElementSchemaRegistry.securityContext` to determine which particular\n * Trusted Type is required for values passed to the sink:\n * - SecurityContext.HTML corresponds to TrustedHTML\n * - SecurityContext.RESOURCE_URL corresponds to TrustedScriptURL\n */\nfunction isTrustedTypesSink(tagName, propName) {\n // Make sure comparisons are case insensitive, so that case differences between attribute and\n // property names do not have a security impact.\n tagName = tagName.toLowerCase();\n propName = propName.toLowerCase();\n return TRUSTED_TYPES_SINKS.has(tagName + '|' + propName) ||\n TRUSTED_TYPES_SINKS.has('*|' + propName);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PROPERTY_PARTS_SEPARATOR = '.';\nconst ATTRIBUTE_PREFIX = 'attr';\nconst CLASS_PREFIX = 'class';\nconst STYLE_PREFIX = 'style';\nconst TEMPLATE_ATTR_PREFIX$1 = '*';\nconst ANIMATE_PROP_PREFIX = 'animate-';\n/**\n * Parses bindings in templates and in the directive host area.\n */\nclass BindingParser {\n constructor(_exprParser, _interpolationConfig, _schemaRegistry, errors) {\n this._exprParser = _exprParser;\n this._interpolationConfig = _interpolationConfig;\n this._schemaRegistry = _schemaRegistry;\n this.errors = errors;\n }\n get interpolationConfig() {\n return this._interpolationConfig;\n }\n createBoundHostProperties(properties, sourceSpan) {\n const boundProps = [];\n for (const propName of Object.keys(properties)) {\n const expression = properties[propName];\n if (typeof expression === 'string') {\n this.parsePropertyBinding(propName, expression, true, sourceSpan, sourceSpan.start.offset, undefined, [], \n // Use the `sourceSpan` for `keySpan`. This isn't really accurate, but neither is the\n // sourceSpan, as it represents the sourceSpan of the host itself rather than the\n // source of the host binding (which doesn't exist in the template). Regardless,\n // neither of these values are used in Ivy but are only here to satisfy the function\n // signature. This should likely be refactored in the future so that `sourceSpan`\n // isn't being used inaccurately.\n boundProps, sourceSpan);\n }\n else {\n this._reportError(`Value of the host property binding \"${propName}\" needs to be a string representing an expression but got \"${expression}\" (${typeof expression})`, sourceSpan);\n }\n }\n return boundProps;\n }\n createDirectiveHostEventAsts(hostListeners, sourceSpan) {\n const targetEvents = [];\n for (const propName of Object.keys(hostListeners)) {\n const expression = hostListeners[propName];\n if (typeof expression === 'string') {\n // Use the `sourceSpan` for `keySpan` and `handlerSpan`. This isn't really accurate, but\n // neither is the `sourceSpan`, as it represents the `sourceSpan` of the host itself\n // rather than the source of the host binding (which doesn't exist in the template).\n // Regardless, neither of these values are used in Ivy but are only here to satisfy the\n // function signature. This should likely be refactored in the future so that `sourceSpan`\n // isn't being used inaccurately.\n this.parseEvent(propName, expression, /* isAssignmentEvent */ false, sourceSpan, sourceSpan, [], targetEvents, sourceSpan);\n }\n else {\n this._reportError(`Value of the host listener \"${propName}\" needs to be a string representing an expression but got \"${expression}\" (${typeof expression})`, sourceSpan);\n }\n }\n return targetEvents;\n }\n parseInterpolation(value, sourceSpan, interpolatedTokens) {\n const sourceInfo = sourceSpan.start.toString();\n const absoluteOffset = sourceSpan.fullStart.offset;\n try {\n const ast = this._exprParser.parseInterpolation(value, sourceInfo, absoluteOffset, interpolatedTokens, this._interpolationConfig);\n if (ast)\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n }\n catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n /**\n * Similar to `parseInterpolation`, but treats the provided string as a single expression\n * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).\n * This is used for parsing the switch expression in ICUs.\n */\n parseInterpolationExpression(expression, sourceSpan) {\n const sourceInfo = sourceSpan.start.toString();\n const absoluteOffset = sourceSpan.start.offset;\n try {\n const ast = this._exprParser.parseInterpolationExpression(expression, sourceInfo, absoluteOffset);\n if (ast)\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n }\n catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n /**\n * Parses the bindings in a microsyntax expression, and converts them to\n * `ParsedProperty` or `ParsedVariable`.\n *\n * @param tplKey template binding name\n * @param tplValue template binding value\n * @param sourceSpan span of template binding relative to entire the template\n * @param absoluteValueOffset start of the tplValue relative to the entire template\n * @param targetMatchableAttrs potential attributes to match in the template\n * @param targetProps target property bindings in the template\n * @param targetVars target variables in the template\n */\n parseInlineTemplateBinding(tplKey, tplValue, sourceSpan, absoluteValueOffset, targetMatchableAttrs, targetProps, targetVars, isIvyAst) {\n const absoluteKeyOffset = sourceSpan.start.offset + TEMPLATE_ATTR_PREFIX$1.length;\n const bindings = this._parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset);\n for (const binding of bindings) {\n // sourceSpan is for the entire HTML attribute. bindingSpan is for a particular\n // binding within the microsyntax expression so it's more narrow than sourceSpan.\n const bindingSpan = moveParseSourceSpan(sourceSpan, binding.sourceSpan);\n const key = binding.key.source;\n const keySpan = moveParseSourceSpan(sourceSpan, binding.key.span);\n if (binding instanceof VariableBinding) {\n const value = binding.value ? binding.value.source : '$implicit';\n const valueSpan = binding.value ? moveParseSourceSpan(sourceSpan, binding.value.span) : undefined;\n targetVars.push(new ParsedVariable(key, value, bindingSpan, keySpan, valueSpan));\n }\n else if (binding.value) {\n const srcSpan = isIvyAst ? bindingSpan : sourceSpan;\n const valueSpan = moveParseSourceSpan(sourceSpan, binding.value.ast.sourceSpan);\n this._parsePropertyAst(key, binding.value, srcSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n }\n else {\n targetMatchableAttrs.push([key, '' /* value */]);\n // Since this is a literal attribute with no RHS, source span should be\n // just the key span.\n this.parseLiteralAttr(key, null /* value */, keySpan, absoluteValueOffset, undefined /* valueSpan */, targetMatchableAttrs, targetProps, keySpan);\n }\n }\n }\n /**\n * Parses the bindings in a microsyntax expression, e.g.\n * ```\n * \n * ```\n *\n * @param tplKey template binding name\n * @param tplValue template binding value\n * @param sourceSpan span of template binding relative to entire the template\n * @param absoluteKeyOffset start of the `tplKey`\n * @param absoluteValueOffset start of the `tplValue`\n */\n _parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset) {\n const sourceInfo = sourceSpan.start.toString();\n try {\n const bindingsResult = this._exprParser.parseTemplateBindings(tplKey, tplValue, sourceInfo, absoluteKeyOffset, absoluteValueOffset);\n this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan);\n bindingsResult.warnings.forEach((warning) => {\n this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING);\n });\n return bindingsResult.templateBindings;\n }\n catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return [];\n }\n }\n parseLiteralAttr(name, value, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps, keySpan) {\n if (isAnimationLabel(name)) {\n name = name.substring(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n if (value) {\n this._reportError(`Assigning animation triggers via @prop=\"exp\" attributes with an expression is invalid.` +\n ` Use property bindings (e.g. [@prop]=\"exp\") or use an attribute without a value (e.g. @prop) instead.`, sourceSpan, ParseErrorLevel.ERROR);\n }\n this._parseAnimation(name, value, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n }\n else {\n targetProps.push(new ParsedProperty(name, this._exprParser.wrapLiteralPrimitive(value, '', absoluteOffset), ParsedPropertyType.LITERAL_ATTR, sourceSpan, keySpan, valueSpan));\n }\n }\n parsePropertyBinding(name, expression, isHost, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps, keySpan) {\n if (name.length === 0) {\n this._reportError(`Property name is missing in binding`, sourceSpan);\n }\n let isAnimationProp = false;\n if (name.startsWith(ANIMATE_PROP_PREFIX)) {\n isAnimationProp = true;\n name = name.substring(ANIMATE_PROP_PREFIX.length);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + ANIMATE_PROP_PREFIX.length, keySpan.end.offset));\n }\n }\n else if (isAnimationLabel(name)) {\n isAnimationProp = true;\n name = name.substring(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n }\n if (isAnimationProp) {\n this._parseAnimation(name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n }\n else {\n this._parsePropertyAst(name, this._parseBinding(expression, isHost, valueSpan || sourceSpan, absoluteOffset), sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n }\n }\n parsePropertyInterpolation(name, value, sourceSpan, valueSpan, targetMatchableAttrs, targetProps, keySpan, interpolatedTokens) {\n const expr = this.parseInterpolation(value, valueSpan || sourceSpan, interpolatedTokens);\n if (expr) {\n this._parsePropertyAst(name, expr, sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);\n return true;\n }\n return false;\n }\n _parsePropertyAst(name, ast, sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps) {\n targetMatchableAttrs.push([name, ast.source]);\n targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.DEFAULT, sourceSpan, keySpan, valueSpan));\n }\n _parseAnimation(name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps) {\n if (name.length === 0) {\n this._reportError('Animation trigger is missing', sourceSpan);\n }\n // This will occur when a @trigger is not paired with an expression.\n // For animations it is valid to not have an expression since */void\n // states will be applied by angular when the element is attached/detached\n const ast = this._parseBinding(expression || 'undefined', false, valueSpan || sourceSpan, absoluteOffset);\n targetMatchableAttrs.push([name, ast.source]);\n targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.ANIMATION, sourceSpan, keySpan, valueSpan));\n }\n _parseBinding(value, isHostBinding, sourceSpan, absoluteOffset) {\n const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown)').toString();\n try {\n const ast = isHostBinding ?\n this._exprParser.parseSimpleBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig) :\n this._exprParser.parseBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig);\n if (ast)\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n return ast;\n }\n catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n createBoundElementProperty(elementSelector, boundProp, skipValidation = false, mapPropertyName = true) {\n if (boundProp.isAnimation) {\n return new BoundElementProperty(boundProp.name, 4 /* BindingType.Animation */, SecurityContext.NONE, boundProp.expression, null, boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan);\n }\n let unit = null;\n let bindingType = undefined;\n let boundPropertyName = null;\n const parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR);\n let securityContexts = undefined;\n // Check for special cases (prefix style, attr, class)\n if (parts.length > 1) {\n if (parts[0] == ATTRIBUTE_PREFIX) {\n boundPropertyName = parts.slice(1).join(PROPERTY_PARTS_SEPARATOR);\n if (!skipValidation) {\n this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true);\n }\n securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, true);\n const nsSeparatorIdx = boundPropertyName.indexOf(':');\n if (nsSeparatorIdx > -1) {\n const ns = boundPropertyName.substring(0, nsSeparatorIdx);\n const name = boundPropertyName.substring(nsSeparatorIdx + 1);\n boundPropertyName = mergeNsAndName(ns, name);\n }\n bindingType = 1 /* BindingType.Attribute */;\n }\n else if (parts[0] == CLASS_PREFIX) {\n boundPropertyName = parts[1];\n bindingType = 2 /* BindingType.Class */;\n securityContexts = [SecurityContext.NONE];\n }\n else if (parts[0] == STYLE_PREFIX) {\n unit = parts.length > 2 ? parts[2] : null;\n boundPropertyName = parts[1];\n bindingType = 3 /* BindingType.Style */;\n securityContexts = [SecurityContext.STYLE];\n }\n }\n // If not a special case, use the full property name\n if (boundPropertyName === null) {\n const mappedPropName = this._schemaRegistry.getMappedPropName(boundProp.name);\n boundPropertyName = mapPropertyName ? mappedPropName : boundProp.name;\n securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, mappedPropName, false);\n bindingType = 0 /* BindingType.Property */;\n if (!skipValidation) {\n this._validatePropertyOrAttributeName(mappedPropName, boundProp.sourceSpan, false);\n }\n }\n return new BoundElementProperty(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan);\n }\n // TODO: keySpan should be required but was made optional to avoid changing VE parser.\n parseEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {\n if (name.length === 0) {\n this._reportError(`Event name is missing in binding`, sourceSpan);\n }\n if (isAnimationLabel(name)) {\n name = name.slice(1);\n if (keySpan !== undefined) {\n keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));\n }\n this._parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan);\n }\n else {\n this._parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan);\n }\n }\n calcPossibleSecurityContexts(selector, propName, isAttribute) {\n const prop = this._schemaRegistry.getMappedPropName(propName);\n return calcPossibleSecurityContexts(this._schemaRegistry, selector, prop, isAttribute);\n }\n _parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan) {\n const matches = splitAtPeriod(name, [name, '']);\n const eventName = matches[0];\n const phase = matches[1].toLowerCase();\n const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan);\n targetEvents.push(new ParsedEvent(eventName, phase, 1 /* ParsedEventType.Animation */, ast, sourceSpan, handlerSpan, keySpan));\n if (eventName.length === 0) {\n this._reportError(`Animation event name is missing in binding`, sourceSpan);\n }\n if (phase) {\n if (phase !== 'start' && phase !== 'done') {\n this._reportError(`The provided animation output phase value \"${phase}\" for \"@${eventName}\" is not supported (use start or done)`, sourceSpan);\n }\n }\n else {\n this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`, sourceSpan);\n }\n }\n _parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {\n // long format: 'target: eventName'\n const [target, eventName] = splitAtColon(name, [null, name]);\n const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan);\n targetMatchableAttrs.push([name, ast.source]);\n targetEvents.push(new ParsedEvent(eventName, target, 0 /* ParsedEventType.Regular */, ast, sourceSpan, handlerSpan, keySpan));\n // Don't detect directives for event names for now,\n // so don't add the event name to the matchableAttrs\n }\n _parseAction(value, isAssignmentEvent, sourceSpan) {\n const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString();\n const absoluteOffset = (sourceSpan && sourceSpan.start) ? sourceSpan.start.offset : 0;\n try {\n const ast = this._exprParser.parseAction(value, isAssignmentEvent, sourceInfo, absoluteOffset, this._interpolationConfig);\n if (ast) {\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n }\n if (!ast || ast.ast instanceof EmptyExpr) {\n this._reportError(`Empty expressions are not allowed`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n return ast;\n }\n catch (e) {\n this._reportError(`${e}`, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset);\n }\n }\n _reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) {\n this.errors.push(new ParseError(sourceSpan, message, level));\n }\n _reportExpressionParserErrors(errors, sourceSpan) {\n for (const error of errors) {\n this._reportError(error.message, sourceSpan);\n }\n }\n /**\n * @param propName the name of the property / attribute\n * @param sourceSpan\n * @param isAttr true when binding to an attribute\n */\n _validatePropertyOrAttributeName(propName, sourceSpan, isAttr) {\n const report = isAttr ? this._schemaRegistry.validateAttribute(propName) :\n this._schemaRegistry.validateProperty(propName);\n if (report.error) {\n this._reportError(report.msg, sourceSpan, ParseErrorLevel.ERROR);\n }\n }\n}\nclass PipeCollector extends RecursiveAstVisitor {\n constructor() {\n super(...arguments);\n this.pipes = new Map();\n }\n visitPipe(ast, context) {\n this.pipes.set(ast.name, ast);\n ast.exp.visit(this);\n this.visitAll(ast.args, context);\n return null;\n }\n}\nfunction isAnimationLabel(name) {\n return name[0] == '@';\n}\nfunction calcPossibleSecurityContexts(registry, selector, propName, isAttribute) {\n const ctxs = [];\n CssSelector.parse(selector).forEach((selector) => {\n const elementNames = selector.element ? [selector.element] : registry.allKnownElementNames();\n const notElementNames = new Set(selector.notSelectors.filter(selector => selector.isElementSelector())\n .map((selector) => selector.element));\n const possibleElementNames = elementNames.filter(elementName => !notElementNames.has(elementName));\n ctxs.push(...possibleElementNames.map(elementName => registry.securityContext(elementName, propName, isAttribute)));\n });\n return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort();\n}\n/**\n * Compute a new ParseSourceSpan based off an original `sourceSpan` by using\n * absolute offsets from the specified `absoluteSpan`.\n *\n * @param sourceSpan original source span\n * @param absoluteSpan absolute source span to move to\n */\nfunction moveParseSourceSpan(sourceSpan, absoluteSpan) {\n // The difference of two absolute offsets provide the relative offset\n const startDiff = absoluteSpan.start - sourceSpan.start.offset;\n const endDiff = absoluteSpan.end - sourceSpan.end.offset;\n return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Some of the code comes from WebComponents.JS\n// https://github.com/webcomponents/webcomponentsjs/blob/master/src/HTMLImports/path.js\nfunction isStyleUrlResolvable(url) {\n if (url == null || url.length === 0 || url[0] == '/')\n return false;\n const schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP);\n return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';\n}\nconst URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_CONTENT_SELECT_ATTR$1 = 'select';\nconst LINK_ELEMENT = 'link';\nconst LINK_STYLE_REL_ATTR = 'rel';\nconst LINK_STYLE_HREF_ATTR = 'href';\nconst LINK_STYLE_REL_VALUE = 'stylesheet';\nconst STYLE_ELEMENT = 'style';\nconst SCRIPT_ELEMENT = 'script';\nconst NG_NON_BINDABLE_ATTR = 'ngNonBindable';\nconst NG_PROJECT_AS = 'ngProjectAs';\nfunction preparseElement(ast) {\n let selectAttr = null;\n let hrefAttr = null;\n let relAttr = null;\n let nonBindable = false;\n let projectAs = '';\n ast.attrs.forEach(attr => {\n const lcAttrName = attr.name.toLowerCase();\n if (lcAttrName == NG_CONTENT_SELECT_ATTR$1) {\n selectAttr = attr.value;\n }\n else if (lcAttrName == LINK_STYLE_HREF_ATTR) {\n hrefAttr = attr.value;\n }\n else if (lcAttrName == LINK_STYLE_REL_ATTR) {\n relAttr = attr.value;\n }\n else if (attr.name == NG_NON_BINDABLE_ATTR) {\n nonBindable = true;\n }\n else if (attr.name == NG_PROJECT_AS) {\n if (attr.value.length > 0) {\n projectAs = attr.value;\n }\n }\n });\n selectAttr = normalizeNgContentSelect(selectAttr);\n const nodeName = ast.name.toLowerCase();\n let type = PreparsedElementType.OTHER;\n if (isNgContent(nodeName)) {\n type = PreparsedElementType.NG_CONTENT;\n }\n else if (nodeName == STYLE_ELEMENT) {\n type = PreparsedElementType.STYLE;\n }\n else if (nodeName == SCRIPT_ELEMENT) {\n type = PreparsedElementType.SCRIPT;\n }\n else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) {\n type = PreparsedElementType.STYLESHEET;\n }\n return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs);\n}\nvar PreparsedElementType;\n(function (PreparsedElementType) {\n PreparsedElementType[PreparsedElementType[\"NG_CONTENT\"] = 0] = \"NG_CONTENT\";\n PreparsedElementType[PreparsedElementType[\"STYLE\"] = 1] = \"STYLE\";\n PreparsedElementType[PreparsedElementType[\"STYLESHEET\"] = 2] = \"STYLESHEET\";\n PreparsedElementType[PreparsedElementType[\"SCRIPT\"] = 3] = \"SCRIPT\";\n PreparsedElementType[PreparsedElementType[\"OTHER\"] = 4] = \"OTHER\";\n})(PreparsedElementType || (PreparsedElementType = {}));\nclass PreparsedElement {\n constructor(type, selectAttr, hrefAttr, nonBindable, projectAs) {\n this.type = type;\n this.selectAttr = selectAttr;\n this.hrefAttr = hrefAttr;\n this.nonBindable = nonBindable;\n this.projectAs = projectAs;\n }\n}\nfunction normalizeNgContentSelect(selectAttr) {\n if (selectAttr === null || selectAttr.length === 0) {\n return '*';\n }\n return selectAttr;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;\n// Group 1 = \"bind-\"\nconst KW_BIND_IDX = 1;\n// Group 2 = \"let-\"\nconst KW_LET_IDX = 2;\n// Group 3 = \"ref-/#\"\nconst KW_REF_IDX = 3;\n// Group 4 = \"on-\"\nconst KW_ON_IDX = 4;\n// Group 5 = \"bindon-\"\nconst KW_BINDON_IDX = 5;\n// Group 6 = \"@\"\nconst KW_AT_IDX = 6;\n// Group 7 = the identifier after \"bind-\", \"let-\", \"ref-/#\", \"on-\", \"bindon-\" or \"@\"\nconst IDENT_KW_IDX = 7;\nconst BINDING_DELIMS = {\n BANANA_BOX: { start: '[(', end: ')]' },\n PROPERTY: { start: '[', end: ']' },\n EVENT: { start: '(', end: ')' },\n};\nconst TEMPLATE_ATTR_PREFIX = '*';\nfunction htmlAstToRender3Ast(htmlNodes, bindingParser, options) {\n const transformer = new HtmlAstToIvyAst(bindingParser, options);\n const ivyNodes = visitAll(transformer, htmlNodes);\n // Errors might originate in either the binding parser or the html to ivy transformer\n const allErrors = bindingParser.errors.concat(transformer.errors);\n const result = {\n nodes: ivyNodes,\n errors: allErrors,\n styleUrls: transformer.styleUrls,\n styles: transformer.styles,\n ngContentSelectors: transformer.ngContentSelectors\n };\n if (options.collectCommentNodes) {\n result.commentNodes = transformer.commentNodes;\n }\n return result;\n}\nclass HtmlAstToIvyAst {\n constructor(bindingParser, options) {\n this.bindingParser = bindingParser;\n this.options = options;\n this.errors = [];\n this.styles = [];\n this.styleUrls = [];\n this.ngContentSelectors = [];\n // This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true\n this.commentNodes = [];\n this.inI18nBlock = false;\n }\n // HTML visitor\n visitElement(element) {\n const isI18nRootElement = isI18nRootNode(element.i18n);\n if (isI18nRootElement) {\n if (this.inI18nBlock) {\n this.reportError('Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.', element.sourceSpan);\n }\n this.inI18nBlock = true;\n }\n const preparsedElement = preparseElement(element);\n if (preparsedElement.type === PreparsedElementType.SCRIPT) {\n return null;\n }\n else if (preparsedElement.type === PreparsedElementType.STYLE) {\n const contents = textContents(element);\n if (contents !== null) {\n this.styles.push(contents);\n }\n return null;\n }\n else if (preparsedElement.type === PreparsedElementType.STYLESHEET &&\n isStyleUrlResolvable(preparsedElement.hrefAttr)) {\n this.styleUrls.push(preparsedElement.hrefAttr);\n return null;\n }\n // Whether the element is a ``\n const isTemplateElement = isNgTemplate(element.name);\n const parsedProperties = [];\n const boundEvents = [];\n const variables = [];\n const references = [];\n const attributes = [];\n const i18nAttrsMeta = {};\n const templateParsedProperties = [];\n const templateVariables = [];\n // Whether the element has any *-attribute\n let elementHasInlineTemplate = false;\n for (const attribute of element.attrs) {\n let hasBinding = false;\n const normalizedName = normalizeAttributeName(attribute.name);\n // `*attr` defines template bindings\n let isTemplateBinding = false;\n if (attribute.i18n) {\n i18nAttrsMeta[attribute.name] = attribute.i18n;\n }\n if (normalizedName.startsWith(TEMPLATE_ATTR_PREFIX)) {\n // *-attributes\n if (elementHasInlineTemplate) {\n this.reportError(`Can't have multiple template bindings on one element. Use only one attribute prefixed with *`, attribute.sourceSpan);\n }\n isTemplateBinding = true;\n elementHasInlineTemplate = true;\n const templateValue = attribute.value;\n const templateKey = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length);\n const parsedVariables = [];\n const absoluteValueOffset = attribute.valueSpan ?\n attribute.valueSpan.start.offset :\n // If there is no value span the attribute does not have a value, like `attr` in\n //`
    `. In this case, point to one character beyond the last character of\n // the attribute name.\n attribute.sourceSpan.start.offset + attribute.name.length;\n this.bindingParser.parseInlineTemplateBinding(templateKey, templateValue, attribute.sourceSpan, absoluteValueOffset, [], templateParsedProperties, parsedVariables, true /* isIvyAst */);\n templateVariables.push(...parsedVariables.map(v => new Variable(v.name, v.value, v.sourceSpan, v.keySpan, v.valueSpan)));\n }\n else {\n // Check for variables, events, property bindings, interpolation\n hasBinding = this.parseAttribute(isTemplateElement, attribute, [], parsedProperties, boundEvents, variables, references);\n }\n if (!hasBinding && !isTemplateBinding) {\n // don't include the bindings as attributes as well in the AST\n attributes.push(this.visitAttribute(attribute));\n }\n }\n const children = visitAll(preparsedElement.nonBindable ? NON_BINDABLE_VISITOR : this, element.children);\n let parsedElement;\n if (preparsedElement.type === PreparsedElementType.NG_CONTENT) {\n // ``\n if (element.children &&\n !element.children.every((node) => isEmptyTextNode(node) || isCommentNode(node))) {\n this.reportError(` element cannot have content.`, element.sourceSpan);\n }\n const selector = preparsedElement.selectAttr;\n const attrs = element.attrs.map(attr => this.visitAttribute(attr));\n parsedElement = new Content(selector, attrs, element.sourceSpan, element.i18n);\n this.ngContentSelectors.push(selector);\n }\n else if (isTemplateElement) {\n // ``\n const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta);\n parsedElement = new Template(element.name, attributes, attrs.bound, boundEvents, [ /* no template attributes */], children, references, variables, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n else {\n const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta);\n parsedElement = new Element$1(element.name, attributes, attrs.bound, boundEvents, children, references, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n);\n }\n if (elementHasInlineTemplate) {\n // If this node is an inline-template (e.g. has *ngFor) then we need to create a template\n // node that contains this node.\n // Moreover, if the node is an element, then we need to hoist its attributes to the template\n // node for matching against content projection selectors.\n const attrs = this.extractAttributes('ng-template', templateParsedProperties, i18nAttrsMeta);\n const templateAttrs = [];\n attrs.literal.forEach(attr => templateAttrs.push(attr));\n attrs.bound.forEach(attr => templateAttrs.push(attr));\n const hoistedAttrs = parsedElement instanceof Element$1 ?\n {\n attributes: parsedElement.attributes,\n inputs: parsedElement.inputs,\n outputs: parsedElement.outputs,\n } :\n { attributes: [], inputs: [], outputs: [] };\n // For s with structural directives on them, avoid passing i18n information to\n // the wrapping template to prevent unnecessary i18n instructions from being generated. The\n // necessary i18n meta information will be extracted from child elements.\n const i18n = isTemplateElement && isI18nRootElement ? undefined : element.i18n;\n const name = parsedElement instanceof Template ? null : parsedElement.name;\n parsedElement = new Template(name, hoistedAttrs.attributes, hoistedAttrs.inputs, hoistedAttrs.outputs, templateAttrs, [parsedElement], [ /* no references */], templateVariables, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, i18n);\n }\n if (isI18nRootElement) {\n this.inI18nBlock = false;\n }\n return parsedElement;\n }\n visitAttribute(attribute) {\n return new TextAttribute(attribute.name, attribute.value, attribute.sourceSpan, attribute.keySpan, attribute.valueSpan, attribute.i18n);\n }\n visitText(text) {\n return this._visitTextWithInterpolation(text.value, text.sourceSpan, text.tokens, text.i18n);\n }\n visitExpansion(expansion) {\n if (!expansion.i18n) {\n // do not generate Icu in case it was created\n // outside of i18n block in a template\n return null;\n }\n if (!isI18nRootNode(expansion.i18n)) {\n throw new Error(`Invalid type \"${expansion.i18n.constructor}\" for \"i18n\" property of ${expansion.sourceSpan.toString()}. Expected a \"Message\"`);\n }\n const message = expansion.i18n;\n const vars = {};\n const placeholders = {};\n // extract VARs from ICUs - we process them separately while\n // assembling resulting message via goog.getMsg function, since\n // we need to pass them to top-level goog.getMsg call\n Object.keys(message.placeholders).forEach(key => {\n const value = message.placeholders[key];\n if (key.startsWith(I18N_ICU_VAR_PREFIX)) {\n // Currently when the `plural` or `select` keywords in an ICU contain trailing spaces (e.g.\n // `{count, select , ...}`), these spaces are also included into the key names in ICU vars\n // (e.g. \"VAR_SELECT \"). These trailing spaces are not desirable, since they will later be\n // converted into `_` symbols while normalizing placeholder names, which might lead to\n // mismatches at runtime (i.e. placeholder will not be replaced with the correct value).\n const formattedKey = key.trim();\n const ast = this.bindingParser.parseInterpolationExpression(value.text, value.sourceSpan);\n vars[formattedKey] = new BoundText(ast, value.sourceSpan);\n }\n else {\n placeholders[key] = this._visitTextWithInterpolation(value.text, value.sourceSpan, null);\n }\n });\n return new Icu$1(vars, placeholders, expansion.sourceSpan, message);\n }\n visitExpansionCase(expansionCase) {\n return null;\n }\n visitComment(comment) {\n if (this.options.collectCommentNodes) {\n this.commentNodes.push(new Comment$1(comment.value || '', comment.sourceSpan));\n }\n return null;\n }\n // convert view engine `ParsedProperty` to a format suitable for IVY\n extractAttributes(elementName, properties, i18nPropsMeta) {\n const bound = [];\n const literal = [];\n properties.forEach(prop => {\n const i18n = i18nPropsMeta[prop.name];\n if (prop.isLiteral) {\n literal.push(new TextAttribute(prop.name, prop.expression.source || '', prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n));\n }\n else {\n // Note that validation is skipped and property mapping is disabled\n // due to the fact that we need to make sure a given prop is not an\n // input of a directive and directive matching happens at runtime.\n const bep = this.bindingParser.createBoundElementProperty(elementName, prop, /* skipValidation */ true, /* mapPropertyName */ false);\n bound.push(BoundAttribute.fromBoundElementProperty(bep, i18n));\n }\n });\n return { bound, literal };\n }\n parseAttribute(isTemplateElement, attribute, matchableAttributes, parsedProperties, boundEvents, variables, references) {\n var _a;\n const name = normalizeAttributeName(attribute.name);\n const value = attribute.value;\n const srcSpan = attribute.sourceSpan;\n const absoluteOffset = attribute.valueSpan ? attribute.valueSpan.start.offset : srcSpan.start.offset;\n function createKeySpan(srcSpan, prefix, identifier) {\n // We need to adjust the start location for the keySpan to account for the removed 'data-'\n // prefix from `normalizeAttributeName`.\n const normalizationAdjustment = attribute.name.length - name.length;\n const keySpanStart = srcSpan.start.moveBy(prefix.length + normalizationAdjustment);\n const keySpanEnd = keySpanStart.moveBy(identifier.length);\n return new ParseSourceSpan(keySpanStart, keySpanEnd, keySpanStart, identifier);\n }\n const bindParts = name.match(BIND_NAME_REGEXP);\n if (bindParts) {\n if (bindParts[KW_BIND_IDX] != null) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_BIND_IDX], identifier);\n this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n }\n else if (bindParts[KW_LET_IDX]) {\n if (isTemplateElement) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_LET_IDX], identifier);\n this.parseVariable(identifier, value, srcSpan, keySpan, attribute.valueSpan, variables);\n }\n else {\n this.reportError(`\"let-\" is only supported on ng-template elements.`, srcSpan);\n }\n }\n else if (bindParts[KW_REF_IDX]) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_REF_IDX], identifier);\n this.parseReference(identifier, value, srcSpan, keySpan, attribute.valueSpan, references);\n }\n else if (bindParts[KW_ON_IDX]) {\n const events = [];\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_ON_IDX], identifier);\n this.bindingParser.parseEvent(identifier, value, /* isAssignmentEvent */ false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);\n addEvents(events, boundEvents);\n }\n else if (bindParts[KW_BINDON_IDX]) {\n const identifier = bindParts[IDENT_KW_IDX];\n const keySpan = createKeySpan(srcSpan, bindParts[KW_BINDON_IDX], identifier);\n this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n this.parseAssignmentEvent(identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents, keySpan);\n }\n else if (bindParts[KW_AT_IDX]) {\n const keySpan = createKeySpan(srcSpan, '', name);\n this.bindingParser.parseLiteralAttr(name, value, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n }\n return true;\n }\n // We didn't see a kw-prefixed property binding, but we have not yet checked\n // for the []/()/[()] syntax.\n let delims = null;\n if (name.startsWith(BINDING_DELIMS.BANANA_BOX.start)) {\n delims = BINDING_DELIMS.BANANA_BOX;\n }\n else if (name.startsWith(BINDING_DELIMS.PROPERTY.start)) {\n delims = BINDING_DELIMS.PROPERTY;\n }\n else if (name.startsWith(BINDING_DELIMS.EVENT.start)) {\n delims = BINDING_DELIMS.EVENT;\n }\n if (delims !== null &&\n // NOTE: older versions of the parser would match a start/end delimited\n // binding iff the property name was terminated by the ending delimiter\n // and the identifier in the binding was non-empty.\n // TODO(ayazhafiz): update this to handle malformed bindings.\n name.endsWith(delims.end) && name.length > delims.start.length + delims.end.length) {\n const identifier = name.substring(delims.start.length, name.length - delims.end.length);\n const keySpan = createKeySpan(srcSpan, delims.start, identifier);\n if (delims.start === BINDING_DELIMS.BANANA_BOX.start) {\n this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n this.parseAssignmentEvent(identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents, keySpan);\n }\n else if (delims.start === BINDING_DELIMS.PROPERTY.start) {\n this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan);\n }\n else {\n const events = [];\n this.bindingParser.parseEvent(identifier, value, /* isAssignmentEvent */ false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);\n addEvents(events, boundEvents);\n }\n return true;\n }\n // No explicit binding found.\n const keySpan = createKeySpan(srcSpan, '' /* prefix */, name);\n const hasBinding = this.bindingParser.parsePropertyInterpolation(name, value, srcSpan, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan, (_a = attribute.valueTokens) !== null && _a !== void 0 ? _a : null);\n return hasBinding;\n }\n _visitTextWithInterpolation(value, sourceSpan, interpolatedTokens, i18n) {\n const valueNoNgsp = replaceNgsp(value);\n const expr = this.bindingParser.parseInterpolation(valueNoNgsp, sourceSpan, interpolatedTokens);\n return expr ? new BoundText(expr, sourceSpan, i18n) : new Text$3(valueNoNgsp, sourceSpan);\n }\n parseVariable(identifier, value, sourceSpan, keySpan, valueSpan, variables) {\n if (identifier.indexOf('-') > -1) {\n this.reportError(`\"-\" is not allowed in variable names`, sourceSpan);\n }\n else if (identifier.length === 0) {\n this.reportError(`Variable does not have a name`, sourceSpan);\n }\n variables.push(new Variable(identifier, value, sourceSpan, keySpan, valueSpan));\n }\n parseReference(identifier, value, sourceSpan, keySpan, valueSpan, references) {\n if (identifier.indexOf('-') > -1) {\n this.reportError(`\"-\" is not allowed in reference names`, sourceSpan);\n }\n else if (identifier.length === 0) {\n this.reportError(`Reference does not have a name`, sourceSpan);\n }\n else if (references.some(reference => reference.name === identifier)) {\n this.reportError(`Reference \"#${identifier}\" is defined more than once`, sourceSpan);\n }\n references.push(new Reference(identifier, value, sourceSpan, keySpan, valueSpan));\n }\n parseAssignmentEvent(name, expression, sourceSpan, valueSpan, targetMatchableAttrs, boundEvents, keySpan) {\n const events = [];\n this.bindingParser.parseEvent(`${name}Change`, `${expression} =$event`, /* isAssignmentEvent */ true, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan);\n addEvents(events, boundEvents);\n }\n reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) {\n this.errors.push(new ParseError(sourceSpan, message, level));\n }\n}\nclass NonBindableVisitor {\n visitElement(ast) {\n const preparsedElement = preparseElement(ast);\n if (preparsedElement.type === PreparsedElementType.SCRIPT ||\n preparsedElement.type === PreparsedElementType.STYLE ||\n preparsedElement.type === PreparsedElementType.STYLESHEET) {\n // Skipping