{"version":3,"file":"static/js/vendor.initial~c30f4496.6c37cbc1.js","mappings":";;;;;;;GAUA,MAAMA,EAAS,EAAQ,QACjBC,EAAU,EAAQ,QAClBC,EACe,oBAAXC,QAAkD,oBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAENC,EAAQC,OAASA,EACjBD,EAAQE,WAyTR,SAAqBC,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAOF,EAAOG,OAAOD,EACvB,EA7TAH,EAAQK,kBAAoB,GAE5B,MAAMC,EAAe,WAwDrB,SAASC,EAAcJ,GACrB,GAAIA,EAASG,EACX,MAAM,IAAIE,WAAW,cAAgBL,EAAS,kCAGhD,MAAMM,EAAM,IAAIC,WAAWP,GAE3B,OADAQ,OAAOC,eAAeH,EAAKR,EAAOY,WAC3BJ,CACT,CAYA,SAASR,EAAQa,EAAKC,EAAkBZ,GAEtC,GAAmB,kBAARW,EAAkB,CAC3B,GAAgC,kBAArBC,EACT,MAAM,IAAIC,UACR,sEAGJ,OAAOC,EAAYH,EACrB,CACA,OAAOI,EAAKJ,EAAKC,EAAkBZ,EACrC,CAIA,SAASe,EAAMC,EAAOJ,EAAkBZ,GACtC,GAAqB,kBAAVgB,EACT,OAqHJ,SAAqBC,EAAQC,GACH,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKpB,EAAOqB,WAAWD,GACrB,MAAM,IAAIL,UAAU,qBAAuBK,GAG7C,MAAMlB,EAAwC,EAA/BoB,EAAWH,EAAQC,GAClC,IAAIZ,EAAMF,EAAaJ,GAEvB,MAAMqB,EAASf,EAAIgB,MAAML,EAAQC,GAE7BG,IAAWrB,IAIbM,EAAMA,EAAIiB,MAAM,EAAGF,IAGrB,OAAOf,CACT,CA3IWkB,CAAWR,EAAOJ,GAG3B,GAAIa,YAAYC,OAAOV,GACrB,OAkJJ,SAAwBW,GACtB,GAAIC,EAAWD,EAAWpB,YAAa,CACrC,MAAMsB,EAAO,IAAItB,WAAWoB,GAC5B,OAAOG,EAAgBD,EAAKE,OAAQF,EAAKG,WAAYH,EAAKT,WAC5D,CACA,OAAOa,EAAcN,EACvB,CAxJWO,CAAclB,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIH,UACR,yHACiDG,GAIrD,GAAIY,EAAWZ,EAAOS,cACjBT,GAASY,EAAWZ,EAAMe,OAAQN,aACrC,OAAOK,EAAgBd,EAAOJ,EAAkBZ,GAGlD,GAAiC,qBAAtBmC,oBACNP,EAAWZ,EAAOmB,oBAClBnB,GAASY,EAAWZ,EAAMe,OAAQI,oBACrC,OAAOL,EAAgBd,EAAOJ,EAAkBZ,GAGlD,GAAqB,kBAAVgB,EACT,MAAM,IAAIH,UACR,yEAIJ,MAAMuB,EAAUpB,EAAMoB,SAAWpB,EAAMoB,UACvC,GAAe,MAAXA,GAAmBA,IAAYpB,EACjC,OAAOlB,EAAOiB,KAAKqB,EAASxB,EAAkBZ,GAGhD,MAAMqC,EAkJR,SAAqBC,GACnB,GAAIxC,EAAOyC,SAASD,GAAM,CACxB,MAAME,EAA4B,EAAtBC,EAAQH,EAAItC,QAClBM,EAAMF,EAAaoC,GAEzB,OAAmB,IAAflC,EAAIN,QAIRsC,EAAIT,KAAKvB,EAAK,EAAG,EAAGkC,GAHXlC,CAKX,CAEA,QAAmBoC,IAAfJ,EAAItC,OACN,MAA0B,kBAAfsC,EAAItC,QAAuB2C,EAAYL,EAAItC,QAC7CI,EAAa,GAEf6B,EAAcK,GAGvB,GAAiB,WAAbA,EAAIM,MAAqBC,MAAMC,QAAQR,EAAIS,MAC7C,OAAOd,EAAcK,EAAIS,KAE7B,CAzKYC,CAAWhC,GACrB,GAAIqB,EAAG,OAAOA,EAEd,GAAsB,qBAAXzC,QAAgD,MAAtBA,OAAOqD,aACH,oBAA9BjC,EAAMpB,OAAOqD,aACtB,OAAOnD,EAAOiB,KAAKC,EAAMpB,OAAOqD,aAAa,UAAWrC,EAAkBZ,GAG5E,MAAM,IAAIa,UACR,yHACiDG,EAErD,CAmBA,SAASkC,EAAYC,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAItC,UAAU,0CACf,GAAIsC,EAAO,EAChB,MAAM,IAAI9C,WAAW,cAAgB8C,EAAO,iCAEhD,CA0BA,SAASrC,EAAaqC,GAEpB,OADAD,EAAWC,GACJ/C,EAAa+C,EAAO,EAAI,EAAoB,EAAhBV,EAAQU,GAC7C,CAuCA,SAASlB,EAAemB,GACtB,MAAMpD,EAASoD,EAAMpD,OAAS,EAAI,EAA4B,EAAxByC,EAAQW,EAAMpD,QAC9CM,EAAMF,EAAaJ,GACzB,IAAK,IAAIqD,EAAI,EAAGA,EAAIrD,EAAQqD,GAAK,EAC/B/C,EAAI+C,GAAgB,IAAXD,EAAMC,GAEjB,OAAO/C,CACT,CAUA,SAASwB,EAAiBsB,EAAOpB,EAAYhC,GAC3C,GAAIgC,EAAa,GAAKoB,EAAMhC,WAAaY,EACvC,MAAM,IAAI3B,WAAW,wCAGvB,GAAI+C,EAAMhC,WAAaY,GAAchC,GAAU,GAC7C,MAAM,IAAIK,WAAW,wCAGvB,IAAIC,EAYJ,OAVEA,OADiBoC,IAAfV,QAAuCU,IAAX1C,EACxB,IAAIO,WAAW6C,QACDV,IAAX1C,EACH,IAAIO,WAAW6C,EAAOpB,GAEtB,IAAIzB,WAAW6C,EAAOpB,EAAYhC,GAI1CQ,OAAOC,eAAeH,EAAKR,EAAOY,WAE3BJ,CACT,CA2BA,SAASmC,EAASzC,GAGhB,GAAIA,GAAUG,EACZ,MAAM,IAAIE,WAAW,0DACaF,EAAamD,SAAS,IAAM,UAEhE,OAAgB,EAATtD,CACT,CAsGA,SAASoB,EAAYH,EAAQC,GAC3B,GAAIpB,EAAOyC,SAAStB,GAClB,OAAOA,EAAOjB,OAEhB,GAAIyB,YAAYC,OAAOT,IAAWW,EAAWX,EAAQQ,aACnD,OAAOR,EAAOG,WAEhB,GAAsB,kBAAXH,EACT,MAAM,IAAIJ,UACR,kGAC0BI,GAI9B,MAAMuB,EAAMvB,EAAOjB,OACbuD,EAAaC,UAAUxD,OAAS,IAAsB,IAAjBwD,UAAU,GACrD,IAAKD,GAAqB,IAARf,EAAW,OAAO,EAGpC,IAAIiB,GAAc,EAClB,OACE,OAAQvC,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOsB,EACT,IAAK,OACL,IAAK,QACH,OAAOkB,EAAYzC,GAAQjB,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANwC,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOmB,EAAc1C,GAAQjB,OAC/B,QACE,GAAIyD,EACF,OAAOF,GAAa,EAAIG,EAAYzC,GAAQjB,OAE9CkB,GAAY,GAAKA,GAAU0C,cAC3BH,GAAc,EAGtB,CAGA,SAASI,EAAc3C,EAAU4C,EAAOC,GACtC,IAAIN,GAAc,EAclB,SALcf,IAAVoB,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQE,KAAKhE,OACf,MAAO,GAOT,SAJY0C,IAARqB,GAAqBA,EAAMC,KAAKhE,UAClC+D,EAAMC,KAAKhE,QAGT+D,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK5C,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO+C,EAASD,KAAMF,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOG,EAAUF,KAAMF,EAAOC,GAEhC,IAAK,QACH,OAAOI,EAAWH,KAAMF,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOK,EAAYJ,KAAMF,EAAOC,GAElC,IAAK,SACH,OAAOM,EAAYL,KAAMF,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOO,EAAaN,KAAMF,EAAOC,GAEnC,QACE,GAAIN,EAAa,MAAM,IAAI5C,UAAU,qBAAuBK,GAC5DA,GAAYA,EAAW,IAAI0C,cAC3BH,GAAc,EAGtB,CAUA,SAASc,EAAMlC,EAAGmC,EAAGC,GACnB,MAAMpB,EAAIhB,EAAEmC,GACZnC,EAAEmC,GAAKnC,EAAEoC,GACTpC,EAAEoC,GAAKpB,CACT,CA2IA,SAASqB,EAAsB3C,EAAQ4C,EAAK3C,EAAYd,EAAU0D,GAEhE,GAAsB,IAAlB7C,EAAO/B,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfgC,GACTd,EAAWc,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZW,EADJX,GAAcA,KAGZA,EAAa4C,EAAM,EAAK7C,EAAO/B,OAAS,GAItCgC,EAAa,IAAGA,EAAaD,EAAO/B,OAASgC,GAC7CA,GAAcD,EAAO/B,OAAQ,CAC/B,GAAI4E,EAAK,OAAQ,EACZ5C,EAAaD,EAAO/B,OAAS,CACpC,MAAO,GAAIgC,EAAa,EAAG,CACzB,IAAI4C,EACC,OAAQ,EADJ5C,EAAa,CAExB,CAQA,GALmB,kBAAR2C,IACTA,EAAM7E,EAAOiB,KAAK4D,EAAKzD,IAIrBpB,EAAOyC,SAASoC,GAElB,OAAmB,IAAfA,EAAI3E,QACE,EAEH6E,EAAa9C,EAAQ4C,EAAK3C,EAAYd,EAAU0D,GAClD,GAAmB,kBAARD,EAEhB,OADAA,GAAY,IACgC,oBAAjCpE,WAAWG,UAAUoE,QAC1BF,EACKrE,WAAWG,UAAUoE,QAAQC,KAAKhD,EAAQ4C,EAAK3C,GAE/CzB,WAAWG,UAAUsE,YAAYD,KAAKhD,EAAQ4C,EAAK3C,GAGvD6C,EAAa9C,EAAQ,CAAC4C,GAAM3C,EAAYd,EAAU0D,GAG3D,MAAM,IAAI/D,UAAU,uCACtB,CAEA,SAASgE,EAAcI,EAAKN,EAAK3C,EAAYd,EAAU0D,GACrD,IA0BIvB,EA1BA6B,EAAY,EACZC,EAAYF,EAAIjF,OAChBoF,EAAYT,EAAI3E,OAEpB,QAAiB0C,IAAbxB,IAEe,UADjBA,EAAWmE,OAAOnE,GAAU0C,gBACY,UAAb1C,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAI+D,EAAIjF,OAAS,GAAK2E,EAAI3E,OAAS,EACjC,OAAQ,EAEVkF,EAAY,EACZC,GAAa,EACbC,GAAa,EACbpD,GAAc,CAChB,CAGF,SAASsD,EAAMhF,EAAK+C,GAClB,OAAkB,IAAd6B,EACK5E,EAAI+C,GAEJ/C,EAAIiF,aAAalC,EAAI6B,EAEhC,CAGA,GAAIN,EAAK,CACP,IAAIY,GAAc,EAClB,IAAKnC,EAAIrB,EAAYqB,EAAI8B,EAAW9B,IAClC,GAAIiC,EAAKL,EAAK5B,KAAOiC,EAAKX,GAAqB,IAAhBa,EAAoB,EAAInC,EAAImC,IAEzD,IADoB,IAAhBA,IAAmBA,EAAanC,GAChCA,EAAImC,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmBnC,GAAKA,EAAImC,GAChCA,GAAc,CAGpB,MAEE,IADIxD,EAAaoD,EAAYD,IAAWnD,EAAamD,EAAYC,GAC5D/B,EAAIrB,EAAYqB,GAAK,EAAGA,IAAK,CAChC,IAAIoC,GAAQ,EACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAAWM,IAC7B,GAAIJ,EAAKL,EAAK5B,EAAIqC,KAAOJ,EAAKX,EAAKe,GAAI,CACrCD,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOpC,CACpB,CAGF,OAAQ,CACV,CAcA,SAASsC,EAAUrF,EAAKW,EAAQ2E,EAAQ5F,GACtC4F,EAASC,OAAOD,IAAW,EAC3B,MAAME,EAAYxF,EAAIN,OAAS4F,EAC1B5F,GAGHA,EAAS6F,OAAO7F,IACH8F,IACX9F,EAAS8F,GAJX9F,EAAS8F,EAQX,MAAMC,EAAS9E,EAAOjB,OAKtB,IAAIqD,EACJ,IAJIrD,EAAS+F,EAAS,IACpB/F,EAAS+F,EAAS,GAGf1C,EAAI,EAAGA,EAAIrD,IAAUqD,EAAG,CAC3B,MAAM2C,EAASC,SAAShF,EAAOiF,OAAW,EAAJ7C,EAAO,GAAI,IACjD,GAAIV,EAAYqD,GAAS,OAAO3C,EAChC/C,EAAIsF,EAASvC,GAAK2C,CACpB,CACA,OAAO3C,CACT,CAEA,SAAS8C,EAAW7F,EAAKW,EAAQ2E,EAAQ5F,GACvC,OAAOoG,EAAW1C,EAAYzC,EAAQX,EAAIN,OAAS4F,GAAStF,EAAKsF,EAAQ5F,EAC3E,CAEA,SAASqG,EAAY/F,EAAKW,EAAQ2E,EAAQ5F,GACxC,OAAOoG,EAypCT,SAAuBE,GACrB,MAAMC,EAAY,GAClB,IAAK,IAAIlD,EAAI,EAAGA,EAAIiD,EAAItG,SAAUqD,EAEhCkD,EAAUC,KAAyB,IAApBF,EAAIG,WAAWpD,IAEhC,OAAOkD,CACT,CAhqCoBG,CAAazF,GAASX,EAAKsF,EAAQ5F,EACvD,CAEA,SAAS2G,EAAarG,EAAKW,EAAQ2E,EAAQ5F,GACzC,OAAOoG,EAAWzC,EAAc1C,GAASX,EAAKsF,EAAQ5F,EACxD,CAEA,SAAS4G,EAAWtG,EAAKW,EAAQ2E,EAAQ5F,GACvC,OAAOoG,EA0pCT,SAAyBE,EAAKO,GAC5B,IAAIC,EAAGC,EAAIC,EACX,MAAMT,EAAY,GAClB,IAAK,IAAIlD,EAAI,EAAGA,EAAIiD,EAAItG,WACjB6G,GAAS,GAAK,KADaxD,EAGhCyD,EAAIR,EAAIG,WAAWpD,GACnB0D,EAAKD,GAAK,EACVE,EAAKF,EAAI,IACTP,EAAUC,KAAKQ,GACfT,EAAUC,KAAKO,GAGjB,OAAOR,CACT,CAxqCoBU,CAAehG,EAAQX,EAAIN,OAAS4F,GAAStF,EAAKsF,EAAQ5F,EAC9E,CA8EA,SAASqE,EAAa/D,EAAKwD,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQzD,EAAIN,OACtBP,EAAOyH,cAAc5G,GAErBb,EAAOyH,cAAc5G,EAAIiB,MAAMuC,EAAOC,GAEjD,CAEA,SAASG,EAAW5D,EAAKwD,EAAOC,GAC9BA,EAAMoD,KAAKC,IAAI9G,EAAIN,OAAQ+D,GAC3B,MAAMsD,EAAM,GAEZ,IAAIhE,EAAIS,EACR,KAAOT,EAAIU,GAAK,CACd,MAAMuD,EAAYhH,EAAI+C,GACtB,IAAIkE,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAIjE,EAAImE,GAAoBzD,EAAK,CAC/B,IAAI0D,EAAYC,EAAWC,EAAYC,EAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHG,EAAanH,EAAI+C,EAAI,GACO,OAAV,IAAboE,KACHG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG,EACzCG,EAAgB,MAClBL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAanH,EAAI+C,EAAI,GACrBqE,EAAYpH,EAAI+C,EAAI,GACQ,OAAV,IAAboE,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAanH,EAAI+C,EAAI,GACrBqE,EAAYpH,EAAI+C,EAAI,GACpBsE,EAAarH,EAAI+C,EAAI,GACO,OAAV,IAAboE,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,IAItB,CAEkB,OAAdL,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbF,EAAIb,KAAKe,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBF,EAAIb,KAAKe,GACTlE,GAAKmE,CACP,CAEA,OAQF,SAAgCK,GAC9B,MAAMrF,EAAMqF,EAAW7H,OACvB,GAAIwC,GAAOsF,EACT,OAAOzC,OAAO0C,aAAaC,MAAM3C,OAAQwC,GAI3C,IAAIR,EAAM,GACNhE,EAAI,EACR,KAAOA,EAAIb,GACT6E,GAAOhC,OAAO0C,aAAaC,MACzB3C,OACAwC,EAAWtG,MAAM8B,EAAGA,GAAKyE,IAG7B,OAAOT,CACT,CAxBSY,CAAsBZ,EAC/B,CA3+BAxH,EAAQqI,WAAa/H,EAgBrBL,EAAOqI,oBAUP,WAEE,IACE,MAAMlD,EAAM,IAAI1E,WAAW,GACrB6H,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG,GAG7C,OAFA7H,OAAOC,eAAe2H,EAAO7H,WAAWG,WACxCF,OAAOC,eAAewE,EAAKmD,GACN,KAAdnD,EAAIoD,KACb,CAAE,MAAOC,GACP,OAAO,CACT,CACF,CArB6BC,GAExBzI,EAAOqI,qBAA0C,qBAAZK,SACb,oBAAlBA,QAAQC,OACjBD,QAAQC,MACN,iJAkBJjI,OAAOkI,eAAe5I,EAAOY,UAAW,SAAU,CAChDiI,YAAY,EACZC,IAAK,WACH,GAAK9I,EAAOyC,SAASyB,MACrB,OAAOA,KAAKjC,MACd,IAGFvB,OAAOkI,eAAe5I,EAAOY,UAAW,SAAU,CAChDiI,YAAY,EACZC,IAAK,WACH,GAAK9I,EAAOyC,SAASyB,MACrB,OAAOA,KAAKhC,UACd,IAoCFlC,EAAO+I,SAAW,KA8DlB/I,EAAOiB,KAAO,SAAUC,EAAOJ,EAAkBZ,GAC/C,OAAOe,EAAKC,EAAOJ,EAAkBZ,EACvC,EAIAQ,OAAOC,eAAeX,EAAOY,UAAWH,WAAWG,WACnDF,OAAOC,eAAeX,EAAQS,YA8B9BT,EAAOG,MAAQ,SAAUkD,EAAM2F,EAAM5H,GACnC,OArBF,SAAgBiC,EAAM2F,EAAM5H,GAE1B,OADAgC,EAAWC,GACPA,GAAQ,EACH/C,EAAa+C,QAETT,IAAToG,EAIyB,kBAAb5H,EACVd,EAAa+C,GAAM2F,KAAKA,EAAM5H,GAC9Bd,EAAa+C,GAAM2F,KAAKA,GAEvB1I,EAAa+C,EACtB,CAOSlD,CAAMkD,EAAM2F,EAAM5H,EAC3B,EAUApB,EAAOgB,YAAc,SAAUqC,GAC7B,OAAOrC,EAAYqC,EACrB,EAIArD,EAAOiJ,gBAAkB,SAAU5F,GACjC,OAAOrC,EAAYqC,EACrB,EA6GArD,EAAOyC,SAAW,SAAmBF,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAE2G,WACpB3G,IAAMvC,EAAOY,SACjB,EAEAZ,EAAOmJ,QAAU,SAAkBC,EAAG7G,GAGpC,GAFIT,EAAWsH,EAAG3I,cAAa2I,EAAIpJ,EAAOiB,KAAKmI,EAAGA,EAAEtD,OAAQsD,EAAE9H,aAC1DQ,EAAWS,EAAG9B,cAAa8B,EAAIvC,EAAOiB,KAAKsB,EAAGA,EAAEuD,OAAQvD,EAAEjB,cACzDtB,EAAOyC,SAAS2G,KAAOpJ,EAAOyC,SAASF,GAC1C,MAAM,IAAIxB,UACR,yEAIJ,GAAIqI,IAAM7G,EAAG,OAAO,EAEpB,IAAI8G,EAAID,EAAElJ,OACNoJ,EAAI/G,EAAErC,OAEV,IAAK,IAAIqD,EAAI,EAAGb,EAAM2E,KAAKC,IAAI+B,EAAGC,GAAI/F,EAAIb,IAAOa,EAC/C,GAAI6F,EAAE7F,KAAOhB,EAAEgB,GAAI,CACjB8F,EAAID,EAAE7F,GACN+F,EAAI/G,EAAEgB,GACN,KACF,CAGF,OAAI8F,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EAEArJ,EAAOqB,WAAa,SAAqBD,GACvC,OAAQmE,OAAOnE,GAAU0C,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEA9D,EAAOuJ,OAAS,SAAiBC,EAAMtJ,GACrC,IAAK6C,MAAMC,QAAQwG,GACjB,MAAM,IAAIzI,UAAU,+CAGtB,GAAoB,IAAhByI,EAAKtJ,OACP,OAAOF,EAAOG,MAAM,GAGtB,IAAIoD,EACJ,QAAeX,IAAX1C,EAEF,IADAA,EAAS,EACJqD,EAAI,EAAGA,EAAIiG,EAAKtJ,SAAUqD,EAC7BrD,GAAUsJ,EAAKjG,GAAGrD,OAItB,MAAM+B,EAASjC,EAAOgB,YAAYd,GAClC,IAAIuJ,EAAM,EACV,IAAKlG,EAAI,EAAGA,EAAIiG,EAAKtJ,SAAUqD,EAAG,CAChC,IAAI/C,EAAMgJ,EAAKjG,GACf,GAAIzB,EAAWtB,EAAKC,YACdgJ,EAAMjJ,EAAIN,OAAS+B,EAAO/B,QACvBF,EAAOyC,SAASjC,KAAMA,EAAMR,EAAOiB,KAAKT,IAC7CA,EAAIuB,KAAKE,EAAQwH,IAEjBhJ,WAAWG,UAAU8I,IAAIzE,KACvBhD,EACAzB,EACAiJ,OAGC,KAAKzJ,EAAOyC,SAASjC,GAC1B,MAAM,IAAIO,UAAU,+CAEpBP,EAAIuB,KAAKE,EAAQwH,EACnB,CACAA,GAAOjJ,EAAIN,MACb,CACA,OAAO+B,CACT,EAiDAjC,EAAOsB,WAAaA,EA8EpBtB,EAAOY,UAAUsI,WAAY,EAQ7BlJ,EAAOY,UAAU+I,OAAS,WACxB,MAAMjH,EAAMwB,KAAKhE,OACjB,GAAIwC,EAAM,IAAM,EACd,MAAM,IAAInC,WAAW,6CAEvB,IAAK,IAAIgD,EAAI,EAAGA,EAAIb,EAAKa,GAAK,EAC5BkB,EAAKP,KAAMX,EAAGA,EAAI,GAEpB,OAAOW,IACT,EAEAlE,EAAOY,UAAUgJ,OAAS,WACxB,MAAMlH,EAAMwB,KAAKhE,OACjB,GAAIwC,EAAM,IAAM,EACd,MAAM,IAAInC,WAAW,6CAEvB,IAAK,IAAIgD,EAAI,EAAGA,EAAIb,EAAKa,GAAK,EAC5BkB,EAAKP,KAAMX,EAAGA,EAAI,GAClBkB,EAAKP,KAAMX,EAAI,EAAGA,EAAI,GAExB,OAAOW,IACT,EAEAlE,EAAOY,UAAUiJ,OAAS,WACxB,MAAMnH,EAAMwB,KAAKhE,OACjB,GAAIwC,EAAM,IAAM,EACd,MAAM,IAAInC,WAAW,6CAEvB,IAAK,IAAIgD,EAAI,EAAGA,EAAIb,EAAKa,GAAK,EAC5BkB,EAAKP,KAAMX,EAAGA,EAAI,GAClBkB,EAAKP,KAAMX,EAAI,EAAGA,EAAI,GACtBkB,EAAKP,KAAMX,EAAI,EAAGA,EAAI,GACtBkB,EAAKP,KAAMX,EAAI,EAAGA,EAAI,GAExB,OAAOW,IACT,EAEAlE,EAAOY,UAAU4C,SAAW,WAC1B,MAAMtD,EAASgE,KAAKhE,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArBwD,UAAUxD,OAAqBkE,EAAUF,KAAM,EAAGhE,GAC/C6D,EAAamE,MAAMhE,KAAMR,UAClC,EAEA1D,EAAOY,UAAUkJ,eAAiB9J,EAAOY,UAAU4C,SAEnDxD,EAAOY,UAAUmJ,OAAS,SAAiBxH,GACzC,IAAKvC,EAAOyC,SAASF,GAAI,MAAM,IAAIxB,UAAU,6BAC7C,OAAImD,OAAS3B,GACsB,IAA5BvC,EAAOmJ,QAAQjF,KAAM3B,EAC9B,EAEAvC,EAAOY,UAAUoJ,QAAU,WACzB,IAAIxD,EAAM,GACV,MAAMyD,EAAMlK,EAAQK,kBAGpB,OAFAoG,EAAMtC,KAAKV,SAAS,MAAO,EAAGyG,GAAKC,QAAQ,UAAW,OAAOC,OACzDjG,KAAKhE,OAAS+J,IAAKzD,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACI3G,IACFG,EAAOY,UAAUf,GAAuBG,EAAOY,UAAUoJ,SAG3DhK,EAAOY,UAAUuI,QAAU,SAAkBiB,EAAQpG,EAAOC,EAAKoG,EAAWC,GAI1E,GAHIxI,EAAWsI,EAAQ3J,cACrB2J,EAASpK,EAAOiB,KAAKmJ,EAAQA,EAAOtE,OAAQsE,EAAO9I,cAEhDtB,EAAOyC,SAAS2H,GACnB,MAAM,IAAIrJ,UACR,wFAC2BqJ,GAiB/B,QAbcxH,IAAVoB,IACFA,EAAQ,QAEEpB,IAARqB,IACFA,EAAMmG,EAASA,EAAOlK,OAAS,QAEf0C,IAAdyH,IACFA,EAAY,QAEEzH,IAAZ0H,IACFA,EAAUpG,KAAKhE,QAGb8D,EAAQ,GAAKC,EAAMmG,EAAOlK,QAAUmK,EAAY,GAAKC,EAAUpG,KAAKhE,OACtE,MAAM,IAAIK,WAAW,sBAGvB,GAAI8J,GAAaC,GAAWtG,GAASC,EACnC,OAAO,EAET,GAAIoG,GAAaC,EACf,OAAQ,EAEV,GAAItG,GAASC,EACX,OAAO,EAQT,GAAIC,OAASkG,EAAQ,OAAO,EAE5B,IAAIf,GAJJiB,KAAa,IADbD,KAAe,GAMXf,GAPJrF,KAAS,IADTD,KAAW,GASX,MAAMtB,EAAM2E,KAAKC,IAAI+B,EAAGC,GAElBiB,EAAWrG,KAAKzC,MAAM4I,EAAWC,GACjCE,EAAaJ,EAAO3I,MAAMuC,EAAOC,GAEvC,IAAK,IAAIV,EAAI,EAAGA,EAAIb,IAAOa,EACzB,GAAIgH,EAAShH,KAAOiH,EAAWjH,GAAI,CACjC8F,EAAIkB,EAAShH,GACb+F,EAAIkB,EAAWjH,GACf,KACF,CAGF,OAAI8F,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EA2HArJ,EAAOY,UAAU6J,SAAW,SAAmB5F,EAAK3C,EAAYd,GAC9D,OAAoD,IAA7C8C,KAAKc,QAAQH,EAAK3C,EAAYd,EACvC,EAEApB,EAAOY,UAAUoE,QAAU,SAAkBH,EAAK3C,EAAYd,GAC5D,OAAOwD,EAAqBV,KAAMW,EAAK3C,EAAYd,GAAU,EAC/D,EAEApB,EAAOY,UAAUsE,YAAc,SAAsBL,EAAK3C,EAAYd,GACpE,OAAOwD,EAAqBV,KAAMW,EAAK3C,EAAYd,GAAU,EAC/D,EA4CApB,EAAOY,UAAUY,MAAQ,SAAgBL,EAAQ2E,EAAQ5F,EAAQkB,GAE/D,QAAewB,IAAXkD,EACF1E,EAAW,OACXlB,EAASgE,KAAKhE,OACd4F,EAAS,OAEJ,QAAelD,IAAX1C,GAA0C,kBAAX4F,EACxC1E,EAAW0E,EACX5F,EAASgE,KAAKhE,OACd4F,EAAS,MAEJ,KAAI4E,SAAS5E,GAUlB,MAAM,IAAI6E,MACR,2EAVF7E,KAAoB,EAChB4E,SAASxK,IACXA,KAAoB,OACH0C,IAAbxB,IAAwBA,EAAW,UAEvCA,EAAWlB,EACXA,OAAS0C,EAMb,CAEA,MAAMoD,EAAY9B,KAAKhE,OAAS4F,EAGhC,SAFelD,IAAX1C,GAAwBA,EAAS8F,KAAW9F,EAAS8F,GAEpD7E,EAAOjB,OAAS,IAAMA,EAAS,GAAK4F,EAAS,IAAOA,EAAS5B,KAAKhE,OACrE,MAAM,IAAIK,WAAW,0CAGlBa,IAAUA,EAAW,QAE1B,IAAIuC,GAAc,EAClB,OACE,OAAQvC,GACN,IAAK,MACH,OAAOyE,EAAS3B,KAAM/C,EAAQ2E,EAAQ5F,GAExC,IAAK,OACL,IAAK,QACH,OAAOmG,EAAUnC,KAAM/C,EAAQ2E,EAAQ5F,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOqG,EAAWrC,KAAM/C,EAAQ2E,EAAQ5F,GAE1C,IAAK,SAEH,OAAO2G,EAAY3C,KAAM/C,EAAQ2E,EAAQ5F,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO4G,EAAU5C,KAAM/C,EAAQ2E,EAAQ5F,GAEzC,QACE,GAAIyD,EAAa,MAAM,IAAI5C,UAAU,qBAAuBK,GAC5DA,GAAY,GAAKA,GAAU0C,cAC3BH,GAAc,EAGtB,EAEA3D,EAAOY,UAAUgK,OAAS,WACxB,MAAO,CACL9H,KAAM,SACNG,KAAMF,MAAMnC,UAAUa,MAAMwD,KAAKf,KAAK2G,MAAQ3G,KAAM,GAExD,EAyFA,MAAM8D,EAAuB,KAoB7B,SAAS3D,EAAY7D,EAAKwD,EAAOC,GAC/B,IAAI6G,EAAM,GACV7G,EAAMoD,KAAKC,IAAI9G,EAAIN,OAAQ+D,GAE3B,IAAK,IAAIV,EAAIS,EAAOT,EAAIU,IAAOV,EAC7BuH,GAAOvF,OAAO0C,aAAsB,IAATzH,EAAI+C,IAEjC,OAAOuH,CACT,CAEA,SAASxG,EAAa9D,EAAKwD,EAAOC,GAChC,IAAI6G,EAAM,GACV7G,EAAMoD,KAAKC,IAAI9G,EAAIN,OAAQ+D,GAE3B,IAAK,IAAIV,EAAIS,EAAOT,EAAIU,IAAOV,EAC7BuH,GAAOvF,OAAO0C,aAAazH,EAAI+C,IAEjC,OAAOuH,CACT,CAEA,SAAS3G,EAAU3D,EAAKwD,EAAOC,GAC7B,MAAMvB,EAAMlC,EAAIN,SAEX8D,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMvB,KAAKuB,EAAMvB,GAExC,IAAIqI,EAAM,GACV,IAAK,IAAIxH,EAAIS,EAAOT,EAAIU,IAAOV,EAC7BwH,GAAOC,EAAoBxK,EAAI+C,IAEjC,OAAOwH,CACT,CAEA,SAASvG,EAAchE,EAAKwD,EAAOC,GACjC,MAAMgH,EAAQzK,EAAIiB,MAAMuC,EAAOC,GAC/B,IAAIsD,EAAM,GAEV,IAAK,IAAIhE,EAAI,EAAGA,EAAI0H,EAAM/K,OAAS,EAAGqD,GAAK,EACzCgE,GAAOhC,OAAO0C,aAAagD,EAAM1H,GAAqB,IAAf0H,EAAM1H,EAAI,IAEnD,OAAOgE,CACT,CAiCA,SAAS2D,EAAapF,EAAQqF,EAAKjL,GACjC,GAAK4F,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAIvF,WAAW,sBAC3D,GAAIuF,EAASqF,EAAMjL,EAAQ,MAAM,IAAIK,WAAW,wCAClD,CAyQA,SAAS6K,EAAU5K,EAAKU,EAAO4E,EAAQqF,EAAKlB,EAAK3C,GAC/C,IAAKtH,EAAOyC,SAASjC,GAAM,MAAM,IAAIO,UAAU,+CAC/C,GAAIG,EAAQ+I,GAAO/I,EAAQoG,EAAK,MAAM,IAAI/G,WAAW,qCACrD,GAAIuF,EAASqF,EAAM3K,EAAIN,OAAQ,MAAM,IAAIK,WAAW,qBACtD,CA+FA,SAAS8K,EAAgB7K,EAAKU,EAAO4E,EAAQwB,EAAK2C,GAChDqB,EAAWpK,EAAOoG,EAAK2C,EAAKzJ,EAAKsF,EAAQ,GAEzC,IAAIoB,EAAKnB,OAAO7E,EAAQqK,OAAO,aAC/B/K,EAAIsF,KAAYoB,EAChBA,IAAW,EACX1G,EAAIsF,KAAYoB,EAChBA,IAAW,EACX1G,EAAIsF,KAAYoB,EAChBA,IAAW,EACX1G,EAAIsF,KAAYoB,EAChB,IAAID,EAAKlB,OAAO7E,GAASqK,OAAO,IAAMA,OAAO,aAQ7C,OAPA/K,EAAIsF,KAAYmB,EAChBA,IAAW,EACXzG,EAAIsF,KAAYmB,EAChBA,IAAW,EACXzG,EAAIsF,KAAYmB,EAChBA,IAAW,EACXzG,EAAIsF,KAAYmB,EACTnB,CACT,CAEA,SAAS0F,EAAgBhL,EAAKU,EAAO4E,EAAQwB,EAAK2C,GAChDqB,EAAWpK,EAAOoG,EAAK2C,EAAKzJ,EAAKsF,EAAQ,GAEzC,IAAIoB,EAAKnB,OAAO7E,EAAQqK,OAAO,aAC/B/K,EAAIsF,EAAS,GAAKoB,EAClBA,IAAW,EACX1G,EAAIsF,EAAS,GAAKoB,EAClBA,IAAW,EACX1G,EAAIsF,EAAS,GAAKoB,EAClBA,IAAW,EACX1G,EAAIsF,EAAS,GAAKoB,EAClB,IAAID,EAAKlB,OAAO7E,GAASqK,OAAO,IAAMA,OAAO,aAQ7C,OAPA/K,EAAIsF,EAAS,GAAKmB,EAClBA,IAAW,EACXzG,EAAIsF,EAAS,GAAKmB,EAClBA,IAAW,EACXzG,EAAIsF,EAAS,GAAKmB,EAClBA,IAAW,EACXzG,EAAIsF,GAAUmB,EACPnB,EAAS,CAClB,CAkHA,SAAS2F,EAAcjL,EAAKU,EAAO4E,EAAQqF,EAAKlB,EAAK3C,GACnD,GAAIxB,EAASqF,EAAM3K,EAAIN,OAAQ,MAAM,IAAIK,WAAW,sBACpD,GAAIuF,EAAS,EAAG,MAAM,IAAIvF,WAAW,qBACvC,CAEA,SAASmL,EAAYlL,EAAKU,EAAO4E,EAAQ6F,EAAcC,GAOrD,OANA1K,GAASA,EACT4E,KAAoB,EACf8F,GACHH,EAAajL,EAAKU,EAAO4E,EAAQ,GAEnClG,EAAQ4B,MAAMhB,EAAKU,EAAO4E,EAAQ6F,EAAc,GAAI,GAC7C7F,EAAS,CAClB,CAUA,SAAS+F,EAAarL,EAAKU,EAAO4E,EAAQ6F,EAAcC,GAOtD,OANA1K,GAASA,EACT4E,KAAoB,EACf8F,GACHH,EAAajL,EAAKU,EAAO4E,EAAQ,GAEnClG,EAAQ4B,MAAMhB,EAAKU,EAAO4E,EAAQ6F,EAAc,GAAI,GAC7C7F,EAAS,CAClB,CAzkBA9F,EAAOY,UAAUa,MAAQ,SAAgBuC,EAAOC,GAC9C,MAAMvB,EAAMwB,KAAKhE,QACjB8D,IAAUA,GAGE,GACVA,GAAStB,GACG,IAAGsB,EAAQ,GACdA,EAAQtB,IACjBsB,EAAQtB,IANVuB,OAAcrB,IAARqB,EAAoBvB,IAAQuB,GASxB,GACRA,GAAOvB,GACG,IAAGuB,EAAM,GACVA,EAAMvB,IACfuB,EAAMvB,GAGJuB,EAAMD,IAAOC,EAAMD,GAEvB,MAAM8H,EAAS5H,KAAK6H,SAAS/H,EAAOC,GAIpC,OAFAvD,OAAOC,eAAemL,EAAQ9L,EAAOY,WAE9BkL,CACT,EAUA9L,EAAOY,UAAUoL,WACjBhM,EAAOY,UAAUqL,WAAa,SAAqBnG,EAAQxE,EAAYsK,GACrE9F,KAAoB,EACpBxE,KAA4B,EACvBsK,GAAUV,EAAYpF,EAAQxE,EAAY4C,KAAKhE,QAEpD,IAAI2E,EAAMX,KAAK4B,GACXoG,EAAM,EACN3I,EAAI,EACR,OAASA,EAAIjC,IAAe4K,GAAO,MACjCrH,GAAOX,KAAK4B,EAASvC,GAAK2I,EAG5B,OAAOrH,CACT,EAEA7E,EAAOY,UAAUuL,WACjBnM,EAAOY,UAAUwL,WAAa,SAAqBtG,EAAQxE,EAAYsK,GACrE9F,KAAoB,EACpBxE,KAA4B,EACvBsK,GACHV,EAAYpF,EAAQxE,EAAY4C,KAAKhE,QAGvC,IAAI2E,EAAMX,KAAK4B,IAAWxE,GACtB4K,EAAM,EACV,KAAO5K,EAAa,IAAM4K,GAAO,MAC/BrH,GAAOX,KAAK4B,IAAWxE,GAAc4K,EAGvC,OAAOrH,CACT,EAEA7E,EAAOY,UAAUyL,UACjBrM,EAAOY,UAAU0L,UAAY,SAAoBxG,EAAQ8F,GAGvD,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCgE,KAAK4B,EACd,EAEA9F,EAAOY,UAAU2L,aACjBvM,EAAOY,UAAU4L,aAAe,SAAuB1G,EAAQ8F,GAG7D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCgE,KAAK4B,GAAW5B,KAAK4B,EAAS,IAAM,CAC7C,EAEA9F,EAAOY,UAAU6L,aACjBzM,EAAOY,UAAU6E,aAAe,SAAuBK,EAAQ8F,GAG7D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACnCgE,KAAK4B,IAAW,EAAK5B,KAAK4B,EAAS,EAC7C,EAEA9F,EAAOY,UAAU8L,aACjB1M,EAAOY,UAAU+L,aAAe,SAAuB7G,EAAQ8F,GAI7D,OAHA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,SAElCgE,KAAK4B,GACT5B,KAAK4B,EAAS,IAAM,EACpB5B,KAAK4B,EAAS,IAAM,IACD,SAAnB5B,KAAK4B,EAAS,EACrB,EAEA9F,EAAOY,UAAUgM,aACjB5M,EAAOY,UAAUiM,aAAe,SAAuB/G,EAAQ8F,GAI7D,OAHA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QAEpB,SAAfgE,KAAK4B,IACT5B,KAAK4B,EAAS,IAAM,GACrB5B,KAAK4B,EAAS,IAAM,EACrB5B,KAAK4B,EAAS,GAClB,EAEA9F,EAAOY,UAAUkM,gBAAkBC,GAAmB,SAA0BjH,GAE9EkH,EADAlH,KAAoB,EACG,UACvB,MAAMmH,EAAQ/I,KAAK4B,GACboH,EAAOhJ,KAAK4B,EAAS,QACblD,IAAVqK,QAAgCrK,IAATsK,GACzBC,EAAYrH,EAAQ5B,KAAKhE,OAAS,GAGpC,MAAMgH,EAAK+F,EACQ,IAAjB/I,OAAO4B,GACU,MAAjB5B,OAAO4B,GACP5B,OAAO4B,GAAU,GAAK,GAElBmB,EAAK/C,OAAO4B,GACC,IAAjB5B,OAAO4B,GACU,MAAjB5B,OAAO4B,GACPoH,EAAO,GAAK,GAEd,OAAO3B,OAAOrE,IAAOqE,OAAOtE,IAAOsE,OAAO,IAC5C,IAEAvL,EAAOY,UAAUwM,gBAAkBL,GAAmB,SAA0BjH,GAE9EkH,EADAlH,KAAoB,EACG,UACvB,MAAMmH,EAAQ/I,KAAK4B,GACboH,EAAOhJ,KAAK4B,EAAS,QACblD,IAAVqK,QAAgCrK,IAATsK,GACzBC,EAAYrH,EAAQ5B,KAAKhE,OAAS,GAGpC,MAAM+G,EAAKgG,EAAQ,GAAK,GACL,MAAjB/I,OAAO4B,GACU,IAAjB5B,OAAO4B,GACP5B,OAAO4B,GAEHoB,EAAKhD,OAAO4B,GAAU,GAAK,GACd,MAAjB5B,OAAO4B,GACU,IAAjB5B,OAAO4B,GACPoH,EAEF,OAAQ3B,OAAOtE,IAAOsE,OAAO,KAAOA,OAAOrE,EAC7C,IAEAlH,EAAOY,UAAUyM,UAAY,SAAoBvH,EAAQxE,EAAYsK,GACnE9F,KAAoB,EACpBxE,KAA4B,EACvBsK,GAAUV,EAAYpF,EAAQxE,EAAY4C,KAAKhE,QAEpD,IAAI2E,EAAMX,KAAK4B,GACXoG,EAAM,EACN3I,EAAI,EACR,OAASA,EAAIjC,IAAe4K,GAAO,MACjCrH,GAAOX,KAAK4B,EAASvC,GAAK2I,EAM5B,OAJAA,GAAO,IAEHrH,GAAOqH,IAAKrH,GAAOwC,KAAKiG,IAAI,EAAG,EAAIhM,IAEhCuD,CACT,EAEA7E,EAAOY,UAAU2M,UAAY,SAAoBzH,EAAQxE,EAAYsK,GACnE9F,KAAoB,EACpBxE,KAA4B,EACvBsK,GAAUV,EAAYpF,EAAQxE,EAAY4C,KAAKhE,QAEpD,IAAIqD,EAAIjC,EACJ4K,EAAM,EACNrH,EAAMX,KAAK4B,IAAWvC,GAC1B,KAAOA,EAAI,IAAM2I,GAAO,MACtBrH,GAAOX,KAAK4B,IAAWvC,GAAK2I,EAM9B,OAJAA,GAAO,IAEHrH,GAAOqH,IAAKrH,GAAOwC,KAAKiG,IAAI,EAAG,EAAIhM,IAEhCuD,CACT,EAEA7E,EAAOY,UAAU4M,SAAW,SAAmB1H,EAAQ8F,GAGrD,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACtB,IAAfgE,KAAK4B,IAC0B,GAA5B,IAAO5B,KAAK4B,GAAU,GADK5B,KAAK4B,EAE3C,EAEA9F,EAAOY,UAAU6M,YAAc,SAAsB3H,EAAQ8F,GAC3D9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QAC3C,MAAM2E,EAAMX,KAAK4B,GAAW5B,KAAK4B,EAAS,IAAM,EAChD,OAAc,MAANjB,EAAsB,WAANA,EAAmBA,CAC7C,EAEA7E,EAAOY,UAAU8M,YAAc,SAAsB5H,EAAQ8F,GAC3D9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QAC3C,MAAM2E,EAAMX,KAAK4B,EAAS,GAAM5B,KAAK4B,IAAW,EAChD,OAAc,MAANjB,EAAsB,WAANA,EAAmBA,CAC7C,EAEA7E,EAAOY,UAAU+M,YAAc,SAAsB7H,EAAQ8F,GAI3D,OAHA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QAEnCgE,KAAK4B,GACV5B,KAAK4B,EAAS,IAAM,EACpB5B,KAAK4B,EAAS,IAAM,GACpB5B,KAAK4B,EAAS,IAAM,EACzB,EAEA9F,EAAOY,UAAUgN,YAAc,SAAsB9H,EAAQ8F,GAI3D,OAHA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QAEnCgE,KAAK4B,IAAW,GACrB5B,KAAK4B,EAAS,IAAM,GACpB5B,KAAK4B,EAAS,IAAM,EACpB5B,KAAK4B,EAAS,EACnB,EAEA9F,EAAOY,UAAUiN,eAAiBd,GAAmB,SAAyBjH,GAE5EkH,EADAlH,KAAoB,EACG,UACvB,MAAMmH,EAAQ/I,KAAK4B,GACboH,EAAOhJ,KAAK4B,EAAS,QACblD,IAAVqK,QAAgCrK,IAATsK,GACzBC,EAAYrH,EAAQ5B,KAAKhE,OAAS,GAGpC,MAAM2E,EAAMX,KAAK4B,EAAS,GACL,IAAnB5B,KAAK4B,EAAS,GACK,MAAnB5B,KAAK4B,EAAS,IACboH,GAAQ,IAEX,OAAQ3B,OAAO1G,IAAQ0G,OAAO,KAC5BA,OAAO0B,EACU,IAAjB/I,OAAO4B,GACU,MAAjB5B,OAAO4B,GACP5B,OAAO4B,GAAU,GAAK,GAC1B,IAEA9F,EAAOY,UAAUkN,eAAiBf,GAAmB,SAAyBjH,GAE5EkH,EADAlH,KAAoB,EACG,UACvB,MAAMmH,EAAQ/I,KAAK4B,GACboH,EAAOhJ,KAAK4B,EAAS,QACblD,IAAVqK,QAAgCrK,IAATsK,GACzBC,EAAYrH,EAAQ5B,KAAKhE,OAAS,GAGpC,MAAM2E,GAAOoI,GAAS,IACH,MAAjB/I,OAAO4B,GACU,IAAjB5B,OAAO4B,GACP5B,OAAO4B,GAET,OAAQyF,OAAO1G,IAAQ0G,OAAO,KAC5BA,OAAOrH,OAAO4B,GAAU,GAAK,GACZ,MAAjB5B,OAAO4B,GACU,IAAjB5B,OAAO4B,GACPoH,EACJ,IAEAlN,EAAOY,UAAUmN,YAAc,SAAsBjI,EAAQ8F,GAG3D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCN,EAAQ4F,KAAKtB,KAAM4B,GAAQ,EAAM,GAAI,EAC9C,EAEA9F,EAAOY,UAAUoN,YAAc,SAAsBlI,EAAQ8F,GAG3D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCN,EAAQ4F,KAAKtB,KAAM4B,GAAQ,EAAO,GAAI,EAC/C,EAEA9F,EAAOY,UAAUqN,aAAe,SAAuBnI,EAAQ8F,GAG7D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCN,EAAQ4F,KAAKtB,KAAM4B,GAAQ,EAAM,GAAI,EAC9C,EAEA9F,EAAOY,UAAUsN,aAAe,SAAuBpI,EAAQ8F,GAG7D,OAFA9F,KAAoB,EACf8F,GAAUV,EAAYpF,EAAQ,EAAG5B,KAAKhE,QACpCN,EAAQ4F,KAAKtB,KAAM4B,GAAQ,EAAO,GAAI,EAC/C,EAQA9F,EAAOY,UAAUuN,YACjBnO,EAAOY,UAAUwN,YAAc,SAAsBlN,EAAO4E,EAAQxE,EAAYsK,GAI9E,GAHA1K,GAASA,EACT4E,KAAoB,EACpBxE,KAA4B,GACvBsK,EAAU,CAEbR,EAASlH,KAAMhD,EAAO4E,EAAQxE,EADb+F,KAAKiG,IAAI,EAAG,EAAIhM,GAAc,EACK,EACtD,CAEA,IAAI4K,EAAM,EACN3I,EAAI,EAER,IADAW,KAAK4B,GAAkB,IAAR5E,IACNqC,EAAIjC,IAAe4K,GAAO,MACjChI,KAAK4B,EAASvC,GAAMrC,EAAQgL,EAAO,IAGrC,OAAOpG,EAASxE,CAClB,EAEAtB,EAAOY,UAAUyN,YACjBrO,EAAOY,UAAU0N,YAAc,SAAsBpN,EAAO4E,EAAQxE,EAAYsK,GAI9E,GAHA1K,GAASA,EACT4E,KAAoB,EACpBxE,KAA4B,GACvBsK,EAAU,CAEbR,EAASlH,KAAMhD,EAAO4E,EAAQxE,EADb+F,KAAKiG,IAAI,EAAG,EAAIhM,GAAc,EACK,EACtD,CAEA,IAAIiC,EAAIjC,EAAa,EACjB4K,EAAM,EAEV,IADAhI,KAAK4B,EAASvC,GAAa,IAARrC,IACVqC,GAAK,IAAM2I,GAAO,MACzBhI,KAAK4B,EAASvC,GAAMrC,EAAQgL,EAAO,IAGrC,OAAOpG,EAASxE,CAClB,EAEAtB,EAAOY,UAAU2N,WACjBvO,EAAOY,UAAU4N,WAAa,SAAqBtN,EAAO4E,EAAQ8F,GAKhE,OAJA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,IAAM,GACtD5B,KAAK4B,GAAmB,IAAR5E,EACT4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU6N,cACjBzO,EAAOY,UAAU8N,cAAgB,SAAwBxN,EAAO4E,EAAQ8F,GAMtE,OALA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,MAAQ,GACxD5B,KAAK4B,GAAmB,IAAR5E,EAChBgD,KAAK4B,EAAS,GAAM5E,IAAU,EACvB4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU+N,cACjB3O,EAAOY,UAAUgO,cAAgB,SAAwB1N,EAAO4E,EAAQ8F,GAMtE,OALA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,MAAQ,GACxD5B,KAAK4B,GAAW5E,IAAU,EAC1BgD,KAAK4B,EAAS,GAAc,IAAR5E,EACb4E,EAAS,CAClB,EAEA9F,EAAOY,UAAUiO,cACjB7O,EAAOY,UAAUkO,cAAgB,SAAwB5N,EAAO4E,EAAQ8F,GAQtE,OAPA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,WAAY,GAC5D5B,KAAK4B,EAAS,GAAM5E,IAAU,GAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,GAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,EAC9BgD,KAAK4B,GAAmB,IAAR5E,EACT4E,EAAS,CAClB,EAEA9F,EAAOY,UAAUmO,cACjB/O,EAAOY,UAAUoO,cAAgB,SAAwB9N,EAAO4E,EAAQ8F,GAQtE,OAPA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,WAAY,GAC5D5B,KAAK4B,GAAW5E,IAAU,GAC1BgD,KAAK4B,EAAS,GAAM5E,IAAU,GAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,EAC9BgD,KAAK4B,EAAS,GAAc,IAAR5E,EACb4E,EAAS,CAClB,EA8CA9F,EAAOY,UAAUqO,iBAAmBlC,GAAmB,SAA2B7L,EAAO4E,EAAS,GAChG,OAAOuF,EAAenH,KAAMhD,EAAO4E,EAAQyF,OAAO,GAAIA,OAAO,sBAC/D,IAEAvL,EAAOY,UAAUsO,iBAAmBnC,GAAmB,SAA2B7L,EAAO4E,EAAS,GAChG,OAAO0F,EAAetH,KAAMhD,EAAO4E,EAAQyF,OAAO,GAAIA,OAAO,sBAC/D,IAEAvL,EAAOY,UAAUuO,WAAa,SAAqBjO,EAAO4E,EAAQxE,EAAYsK,GAG5E,GAFA1K,GAASA,EACT4E,KAAoB,GACf8F,EAAU,CACb,MAAMwD,EAAQ/H,KAAKiG,IAAI,EAAI,EAAIhM,EAAc,GAE7C8J,EAASlH,KAAMhD,EAAO4E,EAAQxE,EAAY8N,EAAQ,GAAIA,EACxD,CAEA,IAAI7L,EAAI,EACJ2I,EAAM,EACNmD,EAAM,EAEV,IADAnL,KAAK4B,GAAkB,IAAR5E,IACNqC,EAAIjC,IAAe4K,GAAO,MAC7BhL,EAAQ,GAAa,IAARmO,GAAsC,IAAzBnL,KAAK4B,EAASvC,EAAI,KAC9C8L,EAAM,GAERnL,KAAK4B,EAASvC,IAAOrC,EAAQgL,EAAQ,GAAKmD,EAAM,IAGlD,OAAOvJ,EAASxE,CAClB,EAEAtB,EAAOY,UAAU0O,WAAa,SAAqBpO,EAAO4E,EAAQxE,EAAYsK,GAG5E,GAFA1K,GAASA,EACT4E,KAAoB,GACf8F,EAAU,CACb,MAAMwD,EAAQ/H,KAAKiG,IAAI,EAAI,EAAIhM,EAAc,GAE7C8J,EAASlH,KAAMhD,EAAO4E,EAAQxE,EAAY8N,EAAQ,GAAIA,EACxD,CAEA,IAAI7L,EAAIjC,EAAa,EACjB4K,EAAM,EACNmD,EAAM,EAEV,IADAnL,KAAK4B,EAASvC,GAAa,IAARrC,IACVqC,GAAK,IAAM2I,GAAO,MACrBhL,EAAQ,GAAa,IAARmO,GAAsC,IAAzBnL,KAAK4B,EAASvC,EAAI,KAC9C8L,EAAM,GAERnL,KAAK4B,EAASvC,IAAOrC,EAAQgL,EAAQ,GAAKmD,EAAM,IAGlD,OAAOvJ,EAASxE,CAClB,EAEAtB,EAAOY,UAAU2O,UAAY,SAAoBrO,EAAO4E,EAAQ8F,GAM9D,OALA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,KAAO,KACnD5E,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCgD,KAAK4B,GAAmB,IAAR5E,EACT4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU4O,aAAe,SAAuBtO,EAAO4E,EAAQ8F,GAMpE,OALA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,OAAS,OACzD5B,KAAK4B,GAAmB,IAAR5E,EAChBgD,KAAK4B,EAAS,GAAM5E,IAAU,EACvB4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU6O,aAAe,SAAuBvO,EAAO4E,EAAQ8F,GAMpE,OALA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,OAAS,OACzD5B,KAAK4B,GAAW5E,IAAU,EAC1BgD,KAAK4B,EAAS,GAAc,IAAR5E,EACb4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU8O,aAAe,SAAuBxO,EAAO4E,EAAQ8F,GAQpE,OAPA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,YAAa,YAC7D5B,KAAK4B,GAAmB,IAAR5E,EAChBgD,KAAK4B,EAAS,GAAM5E,IAAU,EAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,GAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,GACvB4E,EAAS,CAClB,EAEA9F,EAAOY,UAAU+O,aAAe,SAAuBzO,EAAO4E,EAAQ8F,GASpE,OARA1K,GAASA,EACT4E,KAAoB,EACf8F,GAAUR,EAASlH,KAAMhD,EAAO4E,EAAQ,EAAG,YAAa,YACzD5E,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5CgD,KAAK4B,GAAW5E,IAAU,GAC1BgD,KAAK4B,EAAS,GAAM5E,IAAU,GAC9BgD,KAAK4B,EAAS,GAAM5E,IAAU,EAC9BgD,KAAK4B,EAAS,GAAc,IAAR5E,EACb4E,EAAS,CAClB,EAEA9F,EAAOY,UAAUgP,gBAAkB7C,GAAmB,SAA0B7L,EAAO4E,EAAS,GAC9F,OAAOuF,EAAenH,KAAMhD,EAAO4E,GAASyF,OAAO,sBAAuBA,OAAO,sBACnF,IAEAvL,EAAOY,UAAUiP,gBAAkB9C,GAAmB,SAA0B7L,EAAO4E,EAAS,GAC9F,OAAO0F,EAAetH,KAAMhD,EAAO4E,GAASyF,OAAO,sBAAuBA,OAAO,sBACnF,IAiBAvL,EAAOY,UAAUkP,aAAe,SAAuB5O,EAAO4E,EAAQ8F,GACpE,OAAOF,EAAWxH,KAAMhD,EAAO4E,GAAQ,EAAM8F,EAC/C,EAEA5L,EAAOY,UAAUmP,aAAe,SAAuB7O,EAAO4E,EAAQ8F,GACpE,OAAOF,EAAWxH,KAAMhD,EAAO4E,GAAQ,EAAO8F,EAChD,EAYA5L,EAAOY,UAAUoP,cAAgB,SAAwB9O,EAAO4E,EAAQ8F,GACtE,OAAOC,EAAY3H,KAAMhD,EAAO4E,GAAQ,EAAM8F,EAChD,EAEA5L,EAAOY,UAAUqP,cAAgB,SAAwB/O,EAAO4E,EAAQ8F,GACtE,OAAOC,EAAY3H,KAAMhD,EAAO4E,GAAQ,EAAO8F,EACjD,EAGA5L,EAAOY,UAAUmB,KAAO,SAAeqI,EAAQ8F,EAAalM,EAAOC,GACjE,IAAKjE,EAAOyC,SAAS2H,GAAS,MAAM,IAAIrJ,UAAU,+BAQlD,GAPKiD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMC,KAAKhE,QAC9BgQ,GAAe9F,EAAOlK,SAAQgQ,EAAc9F,EAAOlK,QAClDgQ,IAAaA,EAAc,GAC5BjM,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlBoG,EAAOlK,QAAgC,IAAhBgE,KAAKhE,OAAc,OAAO,EAGrD,GAAIgQ,EAAc,EAChB,MAAM,IAAI3P,WAAW,6BAEvB,GAAIyD,EAAQ,GAAKA,GAASE,KAAKhE,OAAQ,MAAM,IAAIK,WAAW,sBAC5D,GAAI0D,EAAM,EAAG,MAAM,IAAI1D,WAAW,2BAG9B0D,EAAMC,KAAKhE,SAAQ+D,EAAMC,KAAKhE,QAC9BkK,EAAOlK,OAASgQ,EAAcjM,EAAMD,IACtCC,EAAMmG,EAAOlK,OAASgQ,EAAclM,GAGtC,MAAMtB,EAAMuB,EAAMD,EAalB,OAXIE,OAASkG,GAAqD,oBAApC3J,WAAWG,UAAUuP,WAEjDjM,KAAKiM,WAAWD,EAAalM,EAAOC,GAEpCxD,WAAWG,UAAU8I,IAAIzE,KACvBmF,EACAlG,KAAK6H,SAAS/H,EAAOC,GACrBiM,GAIGxN,CACT,EAMA1C,EAAOY,UAAUoI,KAAO,SAAenE,EAAKb,EAAOC,EAAK7C,GAEtD,GAAmB,kBAARyD,EAAkB,CAS3B,GARqB,kBAAVb,GACT5C,EAAW4C,EACXA,EAAQ,EACRC,EAAMC,KAAKhE,QACa,kBAAR+D,IAChB7C,EAAW6C,EACXA,EAAMC,KAAKhE,aAEI0C,IAAbxB,GAA8C,kBAAbA,EACnC,MAAM,IAAIL,UAAU,6BAEtB,GAAwB,kBAAbK,IAA0BpB,EAAOqB,WAAWD,GACrD,MAAM,IAAIL,UAAU,qBAAuBK,GAE7C,GAAmB,IAAfyD,EAAI3E,OAAc,CACpB,MAAMkQ,EAAOvL,EAAI8B,WAAW,IACV,SAAbvF,GAAuBgP,EAAO,KAClB,WAAbhP,KAEFyD,EAAMuL,EAEV,CACF,KAA0B,kBAARvL,EAChBA,GAAY,IACY,mBAARA,IAChBA,EAAMkB,OAAOlB,IAIf,GAAIb,EAAQ,GAAKE,KAAKhE,OAAS8D,GAASE,KAAKhE,OAAS+D,EACpD,MAAM,IAAI1D,WAAW,sBAGvB,GAAI0D,GAAOD,EACT,OAAOE,KAQT,IAAIX,EACJ,GANAS,KAAkB,EAClBC,OAAcrB,IAARqB,EAAoBC,KAAKhE,OAAS+D,IAAQ,EAE3CY,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAKtB,EAAIS,EAAOT,EAAIU,IAAOV,EACzBW,KAAKX,GAAKsB,MAEP,CACL,MAAMoG,EAAQjL,EAAOyC,SAASoC,GAC1BA,EACA7E,EAAOiB,KAAK4D,EAAKzD,GACfsB,EAAMuI,EAAM/K,OAClB,GAAY,IAARwC,EACF,MAAM,IAAI3B,UAAU,cAAgB8D,EAClC,qCAEJ,IAAKtB,EAAI,EAAGA,EAAIU,EAAMD,IAAST,EAC7BW,KAAKX,EAAIS,GAASiH,EAAM1H,EAAIb,EAEhC,CAEA,OAAOwB,IACT,EAMA,MAAMmM,EAAS,CAAC,EAChB,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,cAAwBE,EACpC,WAAAC,GACEC,QAEAjQ,OAAOkI,eAAe1E,KAAM,UAAW,CACrChD,MAAOsP,EAAWtI,MAAMhE,KAAMR,WAC9BkN,UAAU,EACVC,cAAc,IAIhB3M,KAAK4M,KAAO,GAAG5M,KAAK4M,SAASP,KAG7BrM,KAAK6M,aAEE7M,KAAK4M,IACd,CAEA,QAAIV,GACF,OAAOG,CACT,CAEA,QAAIH,CAAMlP,GACRR,OAAOkI,eAAe1E,KAAM,OAAQ,CAClC2M,cAAc,EACdhI,YAAY,EACZ3H,QACA0P,UAAU,GAEd,CAEA,QAAApN,GACE,MAAO,GAAGU,KAAK4M,SAASP,OAASrM,KAAK8M,SACxC,EAEJ,CA+BA,SAASC,EAAuBpM,GAC9B,IAAI0C,EAAM,GACNhE,EAAIsB,EAAI3E,OACZ,MAAM8D,EAAmB,MAAXa,EAAI,GAAa,EAAI,EACnC,KAAOtB,GAAKS,EAAQ,EAAGT,GAAK,EAC1BgE,EAAM,IAAI1C,EAAIpD,MAAM8B,EAAI,EAAGA,KAAKgE,IAElC,MAAO,GAAG1C,EAAIpD,MAAM,EAAG8B,KAAKgE,GAC9B,CAYA,SAAS+D,EAAYpK,EAAOoG,EAAK2C,EAAKzJ,EAAKsF,EAAQxE,GACjD,GAAIJ,EAAQ+I,GAAO/I,EAAQoG,EAAK,CAC9B,MAAM5C,EAAmB,kBAAR4C,EAAmB,IAAM,GAC1C,IAAI4J,EAWJ,MARIA,EAFA5P,EAAa,EACH,IAARgG,GAAaA,IAAQiE,OAAO,GACtB,OAAO7G,YAAYA,QAA2B,GAAlBpD,EAAa,KAASoD,IAElD,SAASA,QAA2B,GAAlBpD,EAAa,GAAS,IAAIoD,iBACtB,GAAlBpD,EAAa,GAAS,IAAIoD,IAGhC,MAAM4C,IAAM5C,YAAYuF,IAAMvF,IAElC,IAAI2L,EAAOc,iBAAiB,QAASD,EAAOhQ,EACpD,EAtBF,SAAsBV,EAAKsF,EAAQxE,GACjC0L,EAAelH,EAAQ,eACHlD,IAAhBpC,EAAIsF,SAAsDlD,IAA7BpC,EAAIsF,EAASxE,IAC5C6L,EAAYrH,EAAQtF,EAAIN,QAAUoB,EAAa,GAEnD,CAkBE8P,CAAY5Q,EAAKsF,EAAQxE,EAC3B,CAEA,SAAS0L,EAAgB9L,EAAO4P,GAC9B,GAAqB,kBAAV5P,EACT,MAAM,IAAImP,EAAOgB,qBAAqBP,EAAM,SAAU5P,EAE1D,CAEA,SAASiM,EAAajM,EAAOhB,EAAQ4C,GACnC,GAAIuE,KAAKiK,MAAMpQ,KAAWA,EAExB,MADA8L,EAAe9L,EAAO4B,GAChB,IAAIuN,EAAOc,iBAAiBrO,GAAQ,SAAU,aAAc5B,GAGpE,GAAIhB,EAAS,EACX,MAAM,IAAImQ,EAAOkB,yBAGnB,MAAM,IAAIlB,EAAOc,iBAAiBrO,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAY5C,IAC7BgB,EACpC,CAvFAoP,EAAE,4BACA,SAAUQ,GACR,OAAIA,EACK,GAAGA,gCAGL,gDACT,GAAGvQ,YACL+P,EAAE,wBACA,SAAUQ,EAAMvP,GACd,MAAO,QAAQuP,4DAA+DvP,GAChF,GAAGR,WACLuP,EAAE,oBACA,SAAU9J,EAAK0K,EAAOM,GACpB,IAAIC,EAAM,iBAAiBjL,sBACvBkL,EAAWF,EAWf,OAVIzL,OAAO4L,UAAUH,IAAUnK,KAAKuK,IAAIJ,GAAS,GAAK,GACpDE,EAAWT,EAAsB1L,OAAOiM,IACd,kBAAVA,IAChBE,EAAWnM,OAAOiM,IACdA,EAAQjG,OAAO,IAAMA,OAAO,KAAOiG,IAAUjG,OAAO,IAAMA,OAAO,QACnEmG,EAAWT,EAAsBS,IAEnCA,GAAY,KAEdD,GAAO,eAAeP,eAAmBQ,IAClCD,CACT,GAAGlR,YAiEL,MAAMsR,EAAoB,oBAgB1B,SAASjO,EAAazC,EAAQ4F,GAE5B,IAAIU,EADJV,EAAQA,GAAS+K,IAEjB,MAAM5R,EAASiB,EAAOjB,OACtB,IAAI6R,EAAgB,KACpB,MAAM9G,EAAQ,GAEd,IAAK,IAAI1H,EAAI,EAAGA,EAAIrD,IAAUqD,EAAG,CAI/B,GAHAkE,EAAYtG,EAAOwF,WAAWpD,GAG1BkE,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKsK,EAAe,CAElB,GAAItK,EAAY,MAAQ,EAEjBV,GAAS,IAAM,GAAGkE,EAAMvE,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAInD,EAAI,IAAMrD,EAAQ,EAEtB6G,GAAS,IAAM,GAAGkE,EAAMvE,KAAK,IAAM,IAAM,KAC9C,QACF,CAGAqL,EAAgBtK,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBV,GAAS,IAAM,GAAGkE,EAAMvE,KAAK,IAAM,IAAM,KAC9CqL,EAAgBtK,EAChB,QACF,CAGAA,EAAkE,OAArDsK,EAAgB,OAAU,GAAKtK,EAAY,MAC1D,MAAWsK,IAEJhL,GAAS,IAAM,GAAGkE,EAAMvE,KAAK,IAAM,IAAM,KAMhD,GAHAqL,EAAgB,KAGZtK,EAAY,IAAM,CACpB,IAAKV,GAAS,GAAK,EAAG,MACtBkE,EAAMvE,KAAKe,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKV,GAAS,GAAK,EAAG,MACtBkE,EAAMvE,KACJe,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKV,GAAS,GAAK,EAAG,MACtBkE,EAAMvE,KACJe,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAIkD,MAAM,sBARhB,IAAK5D,GAAS,GAAK,EAAG,MACtBkE,EAAMvE,KACJe,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOwD,CACT,CA2BA,SAASpH,EAAe2C,GACtB,OAAO7G,EAAOqS,YAxHhB,SAAsBxL,GAMpB,IAFAA,GAFAA,EAAMA,EAAIyL,MAAM,KAAK,IAEX9H,OAAOD,QAAQ2H,EAAmB,KAEpC3R,OAAS,EAAG,MAAO,GAE3B,KAAOsG,EAAItG,OAAS,IAAM,GACxBsG,GAAY,IAEd,OAAOA,CACT,CA4G4B0L,CAAY1L,GACxC,CAEA,SAASF,EAAY6L,EAAKC,EAAKtM,EAAQ5F,GACrC,IAAIqD,EACJ,IAAKA,EAAI,EAAGA,EAAIrD,KACTqD,EAAIuC,GAAUsM,EAAIlS,QAAYqD,GAAK4O,EAAIjS,UADpBqD,EAExB6O,EAAI7O,EAAIuC,GAAUqM,EAAI5O,GAExB,OAAOA,CACT,CAKA,SAASzB,EAAYU,EAAKM,GACxB,OAAON,aAAeM,GACZ,MAAPN,GAAkC,MAAnBA,EAAIkO,aAA+C,MAAxBlO,EAAIkO,YAAYI,MACzDtO,EAAIkO,YAAYI,OAAShO,EAAKgO,IACpC,CACA,SAASjO,EAAaL,GAEpB,OAAOA,IAAQA,CACjB,CAIA,MAAMwI,EAAsB,WAC1B,MAAMqH,EAAW,mBACXC,EAAQ,IAAIvP,MAAM,KACxB,IAAK,IAAIQ,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAMgP,EAAU,GAAJhP,EACZ,IAAK,IAAIqC,EAAI,EAAGA,EAAI,KAAMA,EACxB0M,EAAMC,EAAM3M,GAAKyM,EAAS9O,GAAK8O,EAASzM,EAE5C,CACA,OAAO0M,CACR,CAV2B,GAa5B,SAASvF,EAAoByF,GAC3B,MAAyB,qBAAXjH,OAAyBkH,EAAyBD,CAClE,CAEA,SAASC,IACP,MAAM,IAAI9H,MAAM,uBAClB,0BCzjEA,IAAI3K,EAAS,iBACT0S,EAAY,oBACZC,EAAgB,YAGpB,SAASC,EAAYC,GACnBH,EAAUzN,KAAKf,MACfA,KAAK2O,SAA+B,kBAAbA,EACnB3O,KAAK2O,SACP3O,KAAK2O,GAAY3O,KAAK4O,eAEtB5O,KAAK6O,MAAQ7O,KAAK4O,eAEhB5O,KAAK8O,SACP9O,KAAK+O,QAAU/O,KAAK8O,OACpB9O,KAAK8O,OAAS,MAEhB9O,KAAKgP,SAAW,KAChBhP,KAAKiP,UAAY,IACnB,CAhBe,EAAQ,OAiBvBC,CAASR,EAAYF,GAErBE,EAAWhS,UAAUyS,OAAS,SAAUpQ,EAAMqQ,EAAUC,GAClC,kBAATtQ,IACTA,EAAOjD,EAAOiB,KAAKgC,EAAMqQ,IAG3B,IAAIE,EAAUtP,KAAKuP,QAAQxQ,GAC3B,OAAIiB,KAAK2O,SAAiB3O,MAEtBqP,IACFC,EAAUtP,KAAKwP,UAAUF,EAASD,IAG7BC,EACT,EAEAZ,EAAWhS,UAAU+S,eAAiB,WAAa,EACnDf,EAAWhS,UAAUgT,WAAa,WAChC,MAAM,IAAIjJ,MAAM,8CAClB,EAEAiI,EAAWhS,UAAUiT,WAAa,WAChC,MAAM,IAAIlJ,MAAM,8CAClB,EAEAiI,EAAWhS,UAAUkT,OAAS,WAC5B,MAAM,IAAInJ,MAAM,yCAClB,EAEAiI,EAAWhS,UAAUmT,WAAa,SAAU9Q,EAAM+Q,EAAGC,GACnD,IAAIC,EACJ,IACMhQ,KAAK2O,SACP3O,KAAKuP,QAAQxQ,GAEbiB,KAAKwC,KAAKxC,KAAKuP,QAAQxQ,GAE3B,CAAE,MAAOuF,GACP0L,EAAM1L,CACR,CAAE,QACAyL,EAAKC,EACP,CACF,EACAtB,EAAWhS,UAAUuT,OAAS,SAAUC,GACtC,IAAIF,EACJ,IACEhQ,KAAKwC,KAAKxC,KAAK+O,UACjB,CAAE,MAAOzK,GACP0L,EAAM1L,CACR,CAEA4L,EAAKF,EACP,EACAtB,EAAWhS,UAAUkS,eAAiB,SAAUS,GAC9C,IAAIC,EAAUtP,KAAK+O,WAAajT,EAAOG,MAAM,GAI7C,OAHIoT,IACFC,EAAUtP,KAAKwP,UAAUF,EAASD,GAAW,IAExCC,CACT,EAEAZ,EAAWhS,UAAU8S,UAAY,SAAUxS,EAAOmT,EAAKC,GAMrD,GALKpQ,KAAKgP,WACRhP,KAAKgP,SAAW,IAAIP,EAAc0B,GAClCnQ,KAAKiP,UAAYkB,GAGfnQ,KAAKiP,YAAckB,EAAK,MAAM,IAAI1J,MAAM,0BAE5C,IAAII,EAAM7G,KAAKgP,SAAS1R,MAAMN,GAK9B,OAJIoT,IACFvJ,GAAO7G,KAAKgP,SAASjP,OAGhB8G,CACT,EAEAwJ,EAAOxU,QAAU6S,wBClGjB;;;;;GAOC,WACA,aAEA,IAAI4B,EAAS,CAAC,EAAEC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELpR,EAAI,EAAGA,EAAIG,UAAUxD,OAAQqD,IAAK,CAC1C,IAAI1C,EAAM6C,UAAUH,GACpB,GAAK1C,EAAL,CAEA,IAAI+T,SAAiB/T,EAErB,GAAgB,WAAZ+T,GAAoC,WAAZA,EAC3BD,EAAQjO,KAAK7F,QACP,GAAIkC,MAAMC,QAAQnC,IAAQA,EAAIX,OAAQ,CAC5C,IAAI2U,EAAQH,EAAWxM,MAAM,KAAMrH,GAC/BgU,GACHF,EAAQjO,KAAKmO,EAEf,MAAO,GAAgB,WAAZD,EACV,IAAK,IAAIE,KAAOjU,EACX2T,EAAOvP,KAAKpE,EAAKiU,IAAQjU,EAAIiU,IAChCH,EAAQjO,KAAKoO,EAdE,CAkBnB,CAEA,OAAOH,EAAQI,KAAK,IACrB,CAEqCR,EAAOxU,SAC3C2U,EAAWM,QAAUN,EACrBH,EAAOxU,QAAU2U,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CA5CA,2BCPA;;;;GAkBE,EASO,WAGR,IAAIO,EAAelS,MAAMC,SAAW,SAAUR,GAC7C,MAAiD,mBAA1C9B,OAAOE,UAAU4C,SAASyB,KAAMzC,EACxC,EAKI0S,EAAgB,SAAUC,EAAMC,GAInC,GAHKH,EAAcE,KAClBA,EAAOA,EAAKJ,KAAM,MAEE,kBAATI,EACX,MAAM,IAAIxK,MAAO,iBAAoBwK,EAAO,KAc7C,OALAA,GALAA,EAAOA,EACLjL,QAAS,MAAQ,IACjBA,QAAS,UAAY,KAGXA,QAAS,gBAAgB,SAAU4G,GAE9C,OADAA,EAAOA,EAAK5G,QAAS,cAAe,MAC7BkL,EAAYtE,EACpB,KAEYmB,MAAO,IACpB,EAKIoD,EAAY,SAAU/R,EAAOgS,GAChC,IAAI/R,EAAGrD,EACP,GAAKoD,EAAMiS,KACV,OAAOjS,EAAMiS,KAAMD,GAEpB,IAAM/R,EAAI,EAAGrD,EAASoD,EAAMpD,OAAQqD,EAAIrD,EAAQqD,IAC/C,GAAK+R,EAAUhS,EAAOC,GAAKA,EAAGD,GAC7B,OAAO,EAGT,OAAO,CACR,EA+CIkS,EAAoB,SAAUC,EAAMC,EAAMC,EAASC,GACtD,IAAIC,EACHC,EAAWH,EAAS,GACpBI,EAASJ,EAAS,GAClBK,EAAMP,EAAKQ,UACXC,EAAYP,EAAS,GACrBQ,EAAWR,EAAQlU,MAAO,EAAG,GAI9B,OAHAmU,EAAUA,GAAW,CAAC,EAGJ,QAAbE,GAAiC,SAAXC,GAAmC,OAAdG,EACxC,CAAEJ,EAAUC,EAAQG,GAAY3M,OAAQ4M,GAIS,qBAA7CT,EAAK5M,IAAK,8BAKTuM,EAAU,CACtB,CAAES,EAAUC,EAAQG,GACpB,CAAEJ,EAAUI,GACZ,CAAEJ,EAAUC,GACZ,CAAED,GACF,CAAE,MAAOC,KACP,SAAUK,GACZ,OAAOP,GAAS,gBAAkBO,KAAMA,EAAKrB,KAAMiB,KAAuBN,EAAK5M,IAAK,CAAE,6BAA8BsN,EAAKrB,KAAMiB,IAChI,KAKCH,EAAQA,EAAM5D,MAAO+D,GACd,CACO,QAAbF,EAAqBA,EAAWD,EAAO,GAC5B,SAAXE,EAAoBA,EAASF,EAAO,GACtB,OAAdK,EAAqBA,EAAYL,EAAO,IACvCtM,OAAQ4M,IACCP,EAAQS,MAEZX,EAAK5M,IAAK,kCAAmCmJ,MAAO+D,QAG3D,OA7BD,CA+BD,EAgBIM,EAA0B,SAAUb,EAAMC,EAAMa,GACnD,IAAIV,EACHC,EAAWS,EAAe,GAC1BR,EAASQ,EAAe,GACxBL,EAAYK,EAAe,GAC3BJ,EAAWI,EAAe,GAe3B,OAZalB,EAAU,CACtB,CAAE,CAAES,EAAU,OAAQ,MAAQ,CAAEA,IAChC,CAAE,CAAEA,EAAU,OAAQI,GAAa,CAAEJ,EAAUI,IAC/C,CAAE,CAAEJ,EAAUC,EAAQ,MAAQ,CAAED,EAAUC,MACxC,SAAUK,GACZ,IAAII,EAAShB,EAAmBC,EAAMC,EAAMU,EAAM,IAElD,OADAP,EAAQO,EAAM,GACPI,GAAUA,EAAQ,KAAQD,EAAe,IAC/CC,EAAQ,KAAQD,EAAe,IAC/BC,EAAQ,KAAQD,EAAe,EACjC,KAGMJ,GACJN,EAAMnP,KAAMyP,GAENN,GAIDU,CACR,EAUIE,EAAc,SAAUC,GAC3B,IAAIC,EACHhB,EAAU,GAwBX,OAnBAgB,GAHAD,EAASA,EAAOxM,QAAS,IAAK,MAGjB+H,MAAO,QACV,KACT0E,EAAK,GAAMA,EAAK,GAAI1E,MAAO,OAC3ByE,EAASC,EAAK,IAAQA,EAAK,GAAK,GAAM,MAAQA,EAAK,GAAK,GAAM,IAC9DhB,EAAS,GAAoCgB,EAAK,GAAK,IAe3C,QADbA,EAToBD,EAAOzE,MAAO,OAAS,GASnB4D,MAAO,oHAEvB,CAAE,MAAO,OAAQ,OAEzBF,EAAS,GAAqBgB,EAAK,KAAmBA,EAAK,IAAO,MAClEhB,EAAS,GAAmBgB,EAAK,IAAO,OACxChB,EAAS,GAAsBgB,EAAK,IAAO,KACtCA,EAAK,IAAOA,EAAK,GAAIzW,SACzByV,EAAS,GAAoBgB,EAAK,GAAIlV,MAAO,IAQvCkU,EACR,EAKIiB,EAAe,SAAUtT,EAAOgS,GACnC,IAAI/R,EAAGrD,EACP,GAAKoD,EAAMuT,QACV,OAAOvT,EAAMuT,QAASvB,GAEvB,IAAM/R,EAAI,EAAGrD,EAASoD,EAAMpD,OAAQqD,EAAIrD,EAAQqD,IAC/C+R,EAAUhS,EAAOC,GAAKA,EAAGD,EAE3B,EAcIwT,EAAe,SAAUrB,EAAMC,EAAMqB,GACxC,IAAIC,EAAqBvB,EAAKwB,oBAC7BC,EAA0BzB,EAAK0B,yBAkBhC,OAhBKD,EAAwBhX,SAC5B0W,EAAcM,GAAyB,SAAUE,GAChD,IAAIC,EAAUC,EAAWC,EAAW5B,EACpCA,EAAUc,EAAaW,GACvBE,EAAY9B,EAAmBC,EAAMC,EAAMC,GAE3C4B,GADAA,EAAYjB,EAAyBb,EAAMC,EAAM4B,IAC3BvC,KAAMU,EAAKQ,YACjCoB,EAAWH,EAAyBK,KACnBF,EAASnX,OAASkX,EAAOlX,SAG1C8W,EAAoBO,GAAcH,EACnC,IACA3B,EAAK0B,yBAA2B,IAG1BH,EAAoBD,IAAmB,IAC/C,EAKIS,EAAa,SAAUC,GAC1B,IAAIlU,EACHiT,EAAS,GAEV,GAAK9V,OAAOgX,KACX,OAAOhX,OAAOgX,KAAMD,GAGrB,IAAMlU,KAAKkU,EACVjB,EAAO9P,KAAMnD,GAGd,OAAOiT,CACR,EAKImB,EAAc,SAAUvH,EAAMgF,GACjC,IAAIzM,EAAOqI,EAWX,OATAA,EAAUZ,GAASgF,GAAcwC,KAAO,KAAOA,KAAKC,UAAWzC,GAAe,KAC9EzM,EAAQ,IAAIgC,MAAOqG,IACbZ,KAAOA,EAGbwG,EAAcY,EAAYpC,IAAc,SAAU0C,GACjDnP,EAAOmP,GAAc1C,EAAY0C,EAClC,IAEOnP,CACR,EAKIoP,EAAW,SAAU3H,EAAM4H,EAAO5C,GACrC,IAAM4C,EACL,MAAML,EAAavH,EAAMgF,EAE3B,EAKI6C,EAAmB,SAAU/W,EAAO4P,GACvCiH,EAAU,sBAAwC,qBAAV7W,EAAuB,CAC9D4P,KAAMA,GAER,EAKIoH,EAAe,SAAUhX,EAAO4P,EAAMkH,EAAOG,GAChDJ,EAAU,qBAAsBC,EAAO,CACtCG,SAAUA,EACVrH,KAAMA,EACN5P,MAAOA,GAET,EAKIkX,EAAmB,SAAUlX,EAAO4P,GACvCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,GAAsB+T,EAAc/T,GAAS,kBAChF,EAQImX,EAAgB,SAAU7V,GAC7B,OAAe,OAARA,GAAgB,GAAKA,IAAQ,iBACrC,EAKI8V,EAA0B,SAAUpX,EAAO4P,GAC9CoH,EAAchX,EAAO4P,EAAuB,qBAAV5P,GAAyBmX,EAAenX,GAAS,eACpF,EAKIqX,EAAqB,SAAUrX,EAAO4P,GACzCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,EAAoB,WACvD,EAMIsX,EAAc,SAAUvV,EAAMkS,GACjC,IAAI5R,EACHkV,EAAOxV,EACP/C,EAASiV,EAAKjV,OAEf,IAAMqD,EAAI,EAAGA,EAAIrD,EAAS,EAAGqD,IAE5B,KADAkV,EAAOA,EAAMtD,EAAM5R,KAElB,OAGF,OAAOkV,EAAMtD,EAAM5R,GACpB,EAcImV,EAA0B,SAAUjD,EAAMkD,GAC7C,IAAIvB,EACHF,EAA0BzB,EAAK0B,yBAC/ByB,EAAOJ,EAAaG,EAAM,CAAE,SAE7B,GAAKC,EACJ,IAAMxB,KAAUwB,EACVA,EAAKnE,eAAgB2C,IAAuB,SAAXA,IACY,IAA/CF,EAAwBlS,QAASoS,IACnCF,EAAwBxQ,KAAM0Q,EAIlC,EAIIyB,EAAc,SAAUC,GAC3B,OAAO7D,EAAc6D,GAAsBA,EAAmB,CAAEA,EACjE,EAGIC,EAAa,WAUjB,IAAIC,EAAQ,WACX,IAAIC,EAAc,CAAC,EAClBC,EAAU,GAAGzX,MAAMwD,KAAMvB,UAAW,GAiBrC,OAhBAkT,EAAcsC,GAAS,SAAUC,GAChC,IAAIC,EACJ,IAAMA,KAAQD,EACRC,KAAQH,GAA8C,kBAAxBA,EAAaG,KAAwBnE,EAAcgE,EAAaG,IAGlGH,EAAaG,GAASJ,EAAOC,EAAaG,GAAQD,EAAQC,IAK1DH,EAAaG,GAASD,EAAQC,EAIjC,IACOH,CACR,EAEA,OAAOD,CAER,CAlCiB,GA8CZK,EAAW,SAAU5D,EAAM0D,EAAQG,GACtC,IAAI/V,EAAGqC,EAAG+S,EAKV,IAHAV,EAAkBqB,EAAO,GAAK,QAGxB/V,EAAI,EAAGA,EAAI+V,EAAMpZ,OAAQqD,IAK9B,IAFAoV,EAAOE,EAAaS,EAAO/V,IAErBqC,EAAI,EAAGA,EAAI+S,EAAKzY,OAAQ0F,IAC7B0S,EAAyBK,EAAM/S,GAAK,QACpCuT,EAASJ,EAAWI,EAAQR,EAAM/S,IAClC8S,EAAyBjD,EAAMkD,EAAM/S,IAIvC,OAAOuT,CACR,EAIII,EAAkB,SAAU9D,EAAMN,EAAMC,GAE3C,IAAIoE,EAAiBtE,EAAeC,EAAMC,GAE1C,OAAOoD,EAAa/C,EAAKgE,UAAWD,EACrC,EAQI/D,EAAO,SAAUiB,GACpBxS,KAAKwV,KAAMhD,EACZ,EAmIA,OAhIAjB,EAAKkE,aAAed,EACpBpD,EAAKmE,UAAYP,EACjB5D,EAAKoE,aAAelC,EACpBlC,EAAKqE,iBAAmBP,EACxB9D,EAAKsE,WAAahB,EAClBtD,EAAKuE,eAAiB9E,EACtBO,EAAKwE,aAAezB,EACpB/C,EAAKyE,kBAAoBjC,EACzBxC,EAAK0E,cAAgBjC,EACrBzC,EAAK2E,kBAAoBhC,EACzB3C,EAAK4E,yBAA2B/B,EAEhC7C,EAAKwB,oBAAsB,CAAC,EAC5BxB,EAAK0B,yBAA2B,GAChC1B,EAAKgE,UAAY,CAAC,EAGlBhE,EAAKQ,UAAY,IASjBR,EAAK6E,KAAO,WACX7E,EAAKgE,UAAYJ,EAAU5D,EAAMA,EAAKgE,UAAW/V,UAClD,EAKA+R,EAAK7U,UAAU8Y,KAAO,SAAUhD,GAC/B,IAAItB,EAAYU,EAAUS,EAAeQ,EAAehB,EAAQJ,EAASO,EAAWqE,EAAyBC,EAC5GxE,EAAMP,EAAKQ,UACXwE,EAA6B,GAE9BxC,EAAkBvB,EAAQ,UAC1B6B,EAAoB7B,EAAQ,UAIJ,KAFxBf,EAAUc,EAAaC,IAEVxW,SAEZua,EAA6BzE,EAAM,IAAMA,GADzCuE,EAA0B5E,EAAQ+E,OAG5B/E,EAAS,IACdA,EAAQ+E,OAGVF,EAAU7E,EAAS,GAYnBG,GADAS,EAAgBf,EAAmBC,EAAMvR,KAAMyR,EAAS,CAAEU,OAAO,KAAYV,GACnD,GAC1BI,EAASQ,EAAe,GACxBL,EAAYK,EAAe,GAE3BQ,EAAgBT,EAAyBb,EAAMvR,KAAMqS,GAAgBxB,KAAMiB,GAG3E9R,KAAKkR,WAAaA,EAAa,CAC9BgC,OAAQN,EAAcrB,EAAMvR,KAAM6S,GAGlCA,cAAeA,EAAgB0D,EAC/BlE,cAAeA,EAAcxB,KAAMiB,GAAQyE,EAG3C3E,SAAUA,EACVC,OAAQA,EACRG,UAAWA,EACXyE,OAAQzE,EACRsE,QAASA,GAIVD,IAA6B,IAAMA,GAA0BrQ,QAAS,yCAAyC,SAAU4N,EAAWhD,EAAKhS,GAEnIgS,EAGJM,EAAY,IAAMN,GAAQhS,EAI1BsS,EAAY,IAAM0C,IAAc,CAElC,IAEA5T,KAAKwS,OAASA,CACf,EAKAjB,EAAK7U,UAAUkI,IAAM,SAAUqM,GAK9B,OAHA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAEjBoE,EAAiB9D,EAAMN,EAAMjR,KAAKkR,WAC1C,EAKAK,EAAK7U,UAAUgY,KAAO,SAAUzD,GAS/B,OARA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAExB4C,EAAU,mBAA+C,OAA3B7T,KAAKkR,WAAWgC,OAAiB,CAC9DV,OAAQxS,KAAKwS,SAGdvB,EAAO0D,EAAa1D,GACbjR,KAAK4E,IAAK,CAAE,iBAAkBS,OAAQ4L,GAC9C,EAEOM,CAKR,OAvpBiB,uFClBjB;;;;GAkBE,EAAQ,CAAE,WAAa,EASvB,SAAUA,GAGX,IAWGmF,EAXC1F,EAAgBO,EAAKuE,eACxB/B,EAAmBxC,EAAKyE,kBACxBhC,EAAezC,EAAK0E;;;;;;GAWtBS,EAAgB,WASf,SAASA,IAAgB,CAGzB,IAAItS,EAAQsS,EAAaha,UACrBb,EAAUmE,KACV2W,EAAsB9a,EAAQ6a,aAUlC,SAASE,EAAgBC,EAAWC,GAEnC,IADA,IAAIzX,EAAIwX,EAAU7a,OACXqD,KACN,GAAIwX,EAAUxX,GAAGyX,WAAaA,EAC7B,OAAOzX,EAIT,OAAQ,CACT,CASA,SAAS0X,EAAMnK,GACd,OAAO,WACN,OAAO5M,KAAK4M,GAAM5I,MAAMhE,KAAMR,UAC/B,CACD,CAsZA,OA3YA4E,EAAM4S,aAAe,SAAsBC,GAC1C,IACIC,EACAtG,EAFAuG,EAASnX,KAAKoX,aAMlB,GAAIH,aAAeI,OAElB,IAAKzG,KADLsG,EAAW,CAAC,EACAC,EACPA,EAAO5G,eAAeK,IAAQqG,EAAI/E,KAAKtB,KAC1CsG,EAAStG,GAAOuG,EAAOvG,SAKzBsG,EAAWC,EAAOF,KAASE,EAAOF,GAAO,IAG1C,OAAOC,CACR,EAQA9S,EAAMkT,iBAAmB,SAA0BT,GAClD,IACIxX,EADAkY,EAAgB,GAGpB,IAAKlY,EAAI,EAAGA,EAAIwX,EAAU7a,OAAQqD,GAAK,EACtCkY,EAAc/U,KAAKqU,EAAUxX,GAAGyX,UAGjC,OAAOS,CACR,EAQAnT,EAAMoT,qBAAuB,SAA8BP,GAC1D,IACIC,EADAL,EAAY7W,KAAKgX,aAAaC,GAQlC,OALIJ,aAAqBhY,SACxBqY,EAAW,CAAC,GACHD,GAAOJ,GAGVK,GAAYL,CACpB,EAYAzS,EAAMqT,YAAc,SAAqBR,EAAKH,GAC7C,IAEIlG,EAFAiG,EAAY7W,KAAKwX,qBAAqBP,GACtCS,EAAwC,kBAAbZ,EAG/B,IAAKlG,KAAOiG,EACPA,EAAUtG,eAAeK,KAAuD,IAA/CgG,EAAgBC,EAAUjG,GAAMkG,IACpED,EAAUjG,GAAKpO,KAAKkV,EAAoBZ,EAAW,CAClDA,SAAUA,EACVa,MAAM,IAKT,OAAO3X,IACR,EAKAoE,EAAMwT,GAAKb,EAAM,eAUjB3S,EAAMyT,gBAAkB,SAAyBZ,EAAKH,GACrD,OAAO9W,KAAKyX,YAAYR,EAAK,CAC5BH,SAAUA,EACVa,MAAM,GAER,EAKAvT,EAAMuT,KAAOZ,EAAM,mBASnB3S,EAAM0T,YAAc,SAAqBb,GAExC,OADAjX,KAAKgX,aAAaC,GACXjX,IACR,EAQAoE,EAAM2T,aAAe,SAAsBC,GAC1C,IAAK,IAAI3Y,EAAI,EAAGA,EAAI2Y,EAAKhc,OAAQqD,GAAK,EACrCW,KAAK8X,YAAYE,EAAK3Y,IAEvB,OAAOW,IACR,EAUAoE,EAAM6T,eAAiB,SAAwBhB,EAAKH,GACnD,IACIoB,EACAtH,EAFAiG,EAAY7W,KAAKwX,qBAAqBP,GAI1C,IAAKrG,KAAOiG,EACPA,EAAUtG,eAAeK,KAGb,KAFfsH,EAAQtB,EAAgBC,EAAUjG,GAAMkG,KAGvCD,EAAUjG,GAAKuH,OAAOD,EAAO,GAKhC,OAAOlY,IACR,EAKAoE,EAAMgU,IAAMrB,EAAM,kBAYlB3S,EAAMiU,aAAe,SAAsBpB,EAAKJ,GAE/C,OAAO7W,KAAKsY,qBAAoB,EAAOrB,EAAKJ,EAC7C,EAYAzS,EAAMmU,gBAAkB,SAAyBtB,EAAKJ,GAErD,OAAO7W,KAAKsY,qBAAoB,EAAMrB,EAAKJ,EAC5C,EAcAzS,EAAMkU,oBAAsB,SAA6BE,EAAQvB,EAAKJ,GACrE,IAAIxX,EACArC,EACAyb,EAASD,EAASxY,KAAKiY,eAAiBjY,KAAKyX,YAC7CiB,EAAWF,EAASxY,KAAKuY,gBAAkBvY,KAAKqY,aAGpD,GAAmB,kBAARpB,GAAsBA,aAAeI,OAmB/C,IADAhY,EAAIwX,EAAU7a,OACPqD,KACNoZ,EAAO1X,KAAKf,KAAMiX,EAAKJ,EAAUxX,SAnBlC,IAAKA,KAAK4X,EACLA,EAAI1G,eAAelR,KAAOrC,EAAQia,EAAI5X,MAEpB,oBAAVrC,EACVyb,EAAO1X,KAAKf,KAAMX,EAAGrC,GAIrB0b,EAAS3X,KAAKf,KAAMX,EAAGrC,IAe3B,OAAOgD,IACR,EAWAoE,EAAMuU,YAAc,SAAqB1B,GACxC,IAEIrG,EAFAhS,SAAcqY,EACdE,EAASnX,KAAKoX,aAIlB,GAAa,WAATxY,SAEIuY,EAAOF,QAEV,GAAIA,aAAeI,OAEvB,IAAKzG,KAAOuG,EACPA,EAAO5G,eAAeK,IAAQqG,EAAI/E,KAAKtB,WACnCuG,EAAOvG,eAMT5Q,KAAK4Y,QAGb,OAAO5Y,IACR,EAOAoE,EAAMyU,mBAAqB9B,EAAM,eAcjC3S,EAAM0U,UAAY,SAAmB7B,EAAK8B,GACzC,IACIjC,EACAzX,EACAuR,EAHAiG,EAAY7W,KAAKwX,qBAAqBP,GAM1C,IAAKrG,KAAOiG,EACX,GAAIA,EAAUtG,eAAeK,GAG5B,IAFAvR,EAAIwX,EAAUjG,GAAK5U,OAEZqD,MAKgB,KAFtByX,EAAWD,EAAUjG,GAAKvR,IAEbsY,MACZ3X,KAAKiY,eAAehB,EAAKH,EAASA,UAGxBA,EAASA,SAAS9S,MAAMhE,KAAM+Y,GAAQ,MAEhC/Y,KAAKgZ,uBACrBhZ,KAAKiY,eAAehB,EAAKH,EAASA,UAMtC,OAAO9W,IACR,EAKAoE,EAAM6U,QAAUlC,EAAM,aAUtB3S,EAAM8U,KAAO,SAAcjC,GAC1B,IAAI8B,EAAOla,MAAMnC,UAAUa,MAAMwD,KAAKvB,UAAW,GACjD,OAAOQ,KAAK8Y,UAAU7B,EAAK8B,EAC5B,EAUA3U,EAAM+U,mBAAqB,SAA4Bnc,GAEtD,OADAgD,KAAKoZ,iBAAmBpc,EACjBgD,IACR,EAUAoE,EAAM4U,oBAAsB,WAC3B,OAAIhZ,KAAKuQ,eAAe,qBAChBvQ,KAAKoZ,gBAKd,EAQAhV,EAAMgT,WAAa,WAClB,OAAOpX,KAAK4Y,UAAY5Y,KAAK4Y,QAAU,CAAC,EACzC,EAOAlC,EAAa2C,WAAa,WAEzB,OADAxd,EAAQ6a,aAAeC,EAChBD,CACR,EAEOA,CACR,CArce,GA0cd,IAOI4C,EAAUC,EAPVC,EAAuB,SAAUxc,EAAO4P,GAC3CoH,EAAchX,EAAO4P,EAAuB,qBAAV5P,GAA0C,oBAAVA,EAAsB,WACzF,EAMCyc,EAAW,IAAI/C,EAEhB,SAASgD,EAAmB1c,EAAO4P,GAClCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,GAAsBA,aAAiBqa,OAAQ,mBAClF,CAEA,SAASsC,EAAkBC,EAAQC,GAClC,OAAO,SAAUC,EAAOhD,GAOvB,OANA/C,EAAkB+F,EAAO,SACzBJ,EAAmBI,EAAO,SAE1B/F,EAAkB+C,EAAU,YAC5B0C,EAAsB1C,EAAU,YAEzB+C,EAAMD,GAAS5V,MAAO6V,EAAMra,UACpC,CACD,CAEA,SAAS4Y,EAAKyB,GACb,OAAOF,EAAkB,MAAOE,EACjC,CAEA,SAASjC,EAAIiC,GACZ,OAAOF,EAAkB,KAAME,EAChC,CAEA,SAASlC,EAAMkC,GACd,OAAOF,EAAkB,OAAQE,EAClC,CAwBA,SAASE,IAKRT,EAAW/H,EAAK7U,UAAUkI,IAC1B2M,EAAK7U,UAAUkI,IAAM,SAAUqM,GAC9B,IAAIjU,EAAQsc,EAAStV,MAAOhE,KAAMR,WAIlC,OAHAyR,EAAOD,EAAeC,EAAMjR,KAAKkR,YAAaL,KAAM,KACpD4I,EAASR,QAAS,MAAO,CAAEhI,EAAMjU,IACjCgD,KAAKga,GAAGf,QAAS,MAAO,CAAEhI,EAAMjU,IACzBA,CACR,CACD,CAKA,OAxCAuU,EAAK6G,IAAMA,EAAKqB,GAChBlI,EAAKqG,GAAKA,EAAI6B,GACdlI,EAAKoG,KAAOA,EAAM8B,GAKlBF,EAAYhI,EAAK7U,UAAU8Y,KAC3BjE,EAAK7U,UAAU8Y,KAAO,WACrB,IAAIwE,EACJha,KAAKga,GAAKA,EAAK,IAAItD,EACnB1W,KAAKoY,IAAMA,EAAK4B,GAChBha,KAAK4X,GAAKA,EAAIoC,GACdha,KAAK2X,KAAOA,EAAMqC,GAClBT,EAAUvV,MAAOhE,KAAMR,UACxB,EAsBA+R,EAAK0I,WAAaF,EAClBA,IAEOxI,CAKR,OAtjBgC,oFClBhC;;;;GAkBE,EAAQ,CAAE,WAAa,EASvB,SAAUA,GAGX,IAAIoD,EAAcpD,EAAKkE,aAInByE,EAAmB,SAAU1I,GAEhC,IAAI2I,EAASC,EAwCb,OA/BAA,GAPAD,EAAU,SAAUA,GACnB,OAAO,SAAUlJ,GAEhB,OADAA,EAAO0D,EAAa1D,GACbO,EAAK5M,IAAK,CAAEuV,GAAU9U,OAAQ4L,GACtC,CACD,GAEwB,iBAIXoJ,SAAWF,EAAS,yBAEjCC,EAAaC,SAASC,SAAW,WAChC,OAAO9I,EAAK5M,IAAK,+CAChB4M,EAAK5M,IAAK,qCACZ,EAEAwV,EAAaC,SAASE,QAAU,WAC/B,IAAIA,EAAU/I,EAAK5M,IAAK,8CACvB4M,EAAK5M,IAAK,qCACX,OAAO3C,SAAUsY,EAAS,GAC3B,EAIAH,EAAaI,SAAWL,EAAS,yBAEjCC,EAAaI,SAASC,QAAU,WAC/B,OAAOjJ,EAAK5M,IAAK,+CAChB4M,EAAK5M,IAAK,qCACZ,EAEAwV,EAAaI,SAASE,UAAY,WACjC,OAAOlJ,EAAK5M,IAAK,iDAChB4M,EAAK5M,IAAK,uCACZ,EAEOwV,CAER,EAKIO,EAAYpJ,EAAK7U,UAAU8Y,KAY/B,OALAjE,EAAK7U,UAAU8Y,KAAO,WACrBmF,EAAU3W,MAAOhE,KAAMR,WACvBQ,KAAKoa,aAAeF,EAAkBla,KACvC,EAEOuR,CAKR,OAlFgC,oFClBhC;;;;GAkBE,EAAQ,CAAE,WAAa,EASvB,SAAUA,GAGX,IAAI4D,EAAW5D,EAAKmE,UAChBb,EAAYtD,EAAKsE,WACjB7E,EAAgBO,EAAKuE,eACrBxB,EAAc/C,EAAKwE,aACnBhC,EAAmBxC,EAAKyE,kBACxB9B,EAAmB3C,EAAK2E,kBAIxB0E,EAAqB,SAAUrJ,EAAMiB,GACxC,IAAI8C,EAAgBuF,EAEpB,GAAgB,SAAXrI,EAOL,OAFA8C,EAAiBtE,EAAe,CAAE,0CAA2CwB,KAC7EqI,EAASvG,EAAa/C,EAAKgE,UAAWD,IAAoBhB,EAAa/C,EAAKuJ,KAAMxF,IAE1EuF,GAIRA,EAASrI,EAAOtQ,OAAQ,EAAGsQ,EAAOxR,YAAauQ,EAAKQ,cAE5C,MAIT,EAMIgJ,EAAc,SAAUhc,EAAMkS,EAAMjU,GACvC,IAAIqC,EACHkV,EAAOxV,EACP/C,EAASiV,EAAKjV,OAEf,IAAMqD,EAAI,EAAGA,EAAIrD,EAAS,EAAGqD,IACtBkV,EAAMtD,EAAM5R,MACjBkV,EAAMtD,EAAM5R,IAAQ,CAAC,GAEtBkV,EAAOA,EAAMtD,EAAM5R,IAEpBkV,EAAMtD,EAAM5R,IAAQrC,CACrB,EAGIge,EAAc,WAElB,IAAIC,EAuCJ,OArCAA,EAAS,SAAU1J,EAAMiB,EAAQvB,EAAMC,EAAYgK,GAClD,IAAI5F,EAAgBuF,EAAQ7d,EAI5B,GAAuB,qBAAXwV,GAAkCA,IAAW0I,EAWzD,OANA5F,EAAiBtE,EAAeC,EAAMC,IAKtClU,EAAQsX,EAAa/C,EAAKgE,UAAWD,KACN,kBAAVtY,KAKrBA,EAAQsX,EAAa/C,EAAKuJ,KAAMxF,MAI/BuF,EAASD,EAAoBrJ,EAAMiB,GACnCxV,EAAQie,EAAQ1J,EAAMsJ,EAAQ5J,EAAM4D,EAAW3D,EAAY,CAAEgC,OAAQ2H,IAAWrI,IAG5ExV,GAEJ+d,EAAaxJ,EAAKgE,UAAWD,EAAgBtY,IAdtCA,CAkBT,EAEOie,CAER,CA3CkB,GA6EjB,OA/BA1J,EAAKuJ,KAAO,CAAC,EAUbvJ,EAAK6E,KAAO,WACX7E,EAAKuJ,KAAO3F,EAAU5D,EAAMA,EAAKuJ,KAAMtb,UACxC,EAKA+R,EAAK7U,UAAUkI,IAAM,SAAUqM,GAM9B,OALA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAIjB+J,EAAYzJ,EAAMvR,KAAKkR,YAAclR,KAAKkR,WAAWgC,QAAkB,GAAYjC,EAAMjR,KAAKkR,WACtG,EAGKK,EAAK0I,YACT1I,EAAK0I,aAGC1I,CAKR,OAjJgC;;;;;ACFhClB,EAAOxU,QAAU,EAAjB,QAGA,EAAS,QACT,EAAS,QACT,EAAS,+BCrBT;;;;GAkBE,EASO,WAGR,IAAIkV,EAAelS,MAAMC,SAAW,SAAUR,GAC7C,MAAiD,mBAA1C9B,OAAOE,UAAU4C,SAASyB,KAAMzC,EACxC,EAKI0S,EAAgB,SAAUC,EAAMC,GAInC,GAHKH,EAAcE,KAClBA,EAAOA,EAAKJ,KAAM,MAEE,kBAATI,EACX,MAAM,IAAIxK,MAAO,iBAAoBwK,EAAO,KAc7C,OALAA,GALAA,EAAOA,EACLjL,QAAS,MAAQ,IACjBA,QAAS,UAAY,KAGXA,QAAS,gBAAgB,SAAU4G,GAE9C,OADAA,EAAOA,EAAK5G,QAAS,cAAe,MAC7BkL,EAAYtE,EACpB,KAEYmB,MAAO,IACpB,EAKIoD,EAAY,SAAU/R,EAAOgS,GAChC,IAAI/R,EAAGrD,EACP,GAAKoD,EAAMiS,KACV,OAAOjS,EAAMiS,KAAMD,GAEpB,IAAM/R,EAAI,EAAGrD,EAASoD,EAAMpD,OAAQqD,EAAIrD,EAAQqD,IAC/C,GAAK+R,EAAUhS,EAAOC,GAAKA,EAAGD,GAC7B,OAAO,EAGT,OAAO,CACR,EA+CIkS,EAAoB,SAAUC,EAAMC,EAAMC,EAASC,GACtD,IAAIC,EACHC,EAAWH,EAAS,GACpBI,EAASJ,EAAS,GAClBK,EAAMP,EAAKQ,UACXC,EAAYP,EAAS,GACrBQ,EAAWR,EAAQlU,MAAO,EAAG,GAI9B,OAHAmU,EAAUA,GAAW,CAAC,EAGJ,QAAbE,GAAiC,SAAXC,GAAmC,OAAdG,EACxC,CAAEJ,EAAUC,EAAQG,GAAY3M,OAAQ4M,GAIS,qBAA7CT,EAAK5M,IAAK,8BAKTuM,EAAU,CACtB,CAAES,EAAUC,EAAQG,GACpB,CAAEJ,EAAUI,GACZ,CAAEJ,EAAUC,GACZ,CAAED,GACF,CAAE,MAAOC,KACP,SAAUK,GACZ,OAAOP,GAAS,gBAAkBO,KAAMA,EAAKrB,KAAMiB,KAAuBN,EAAK5M,IAAK,CAAE,6BAA8BsN,EAAKrB,KAAMiB,IAChI,KAKCH,EAAQA,EAAM5D,MAAO+D,GACd,CACO,QAAbF,EAAqBA,EAAWD,EAAO,GAC5B,SAAXE,EAAoBA,EAASF,EAAO,GACtB,OAAdK,EAAqBA,EAAYL,EAAO,IACvCtM,OAAQ4M,IACCP,EAAQS,MAEZX,EAAK5M,IAAK,kCAAmCmJ,MAAO+D,QAG3D,OA7BD,CA+BD,EAgBIM,EAA0B,SAAUb,EAAMC,EAAMa,GACnD,IAAIV,EACHC,EAAWS,EAAe,GAC1BR,EAASQ,EAAe,GACxBL,EAAYK,EAAe,GAC3BJ,EAAWI,EAAe,GAe3B,OAZalB,EAAU,CACtB,CAAE,CAAES,EAAU,OAAQ,MAAQ,CAAEA,IAChC,CAAE,CAAEA,EAAU,OAAQI,GAAa,CAAEJ,EAAUI,IAC/C,CAAE,CAAEJ,EAAUC,EAAQ,MAAQ,CAAED,EAAUC,MACxC,SAAUK,GACZ,IAAII,EAAShB,EAAmBC,EAAMC,EAAMU,EAAM,IAElD,OADAP,EAAQO,EAAM,GACPI,GAAUA,EAAQ,KAAQD,EAAe,IAC/CC,EAAQ,KAAQD,EAAe,IAC/BC,EAAQ,KAAQD,EAAe,EACjC,KAGMJ,GACJN,EAAMnP,KAAMyP,GAENN,GAIDU,CACR,EAUIE,EAAc,SAAUC,GAC3B,IAAIC,EACHhB,EAAU,GAwBX,OAnBAgB,GAHAD,EAASA,EAAOxM,QAAS,IAAK,MAGjB+H,MAAO,QACV,KACT0E,EAAK,GAAMA,EAAK,GAAI1E,MAAO,OAC3ByE,EAASC,EAAK,IAAQA,EAAK,GAAK,GAAM,MAAQA,EAAK,GAAK,GAAM,IAC9DhB,EAAS,GAAoCgB,EAAK,GAAK,IAe3C,QADbA,EAToBD,EAAOzE,MAAO,OAAS,GASnB4D,MAAO,oHAEvB,CAAE,MAAO,OAAQ,OAEzBF,EAAS,GAAqBgB,EAAK,KAAmBA,EAAK,IAAO,MAClEhB,EAAS,GAAmBgB,EAAK,IAAO,OACxChB,EAAS,GAAsBgB,EAAK,IAAO,KACtCA,EAAK,IAAOA,EAAK,GAAIzW,SACzByV,EAAS,GAAoBgB,EAAK,GAAIlV,MAAO,IAQvCkU,EACR,EAKIiB,EAAe,SAAUtT,EAAOgS,GACnC,IAAI/R,EAAGrD,EACP,GAAKoD,EAAMuT,QACV,OAAOvT,EAAMuT,QAASvB,GAEvB,IAAM/R,EAAI,EAAGrD,EAASoD,EAAMpD,OAAQqD,EAAIrD,EAAQqD,IAC/C+R,EAAUhS,EAAOC,GAAKA,EAAGD,EAE3B,EAcIwT,EAAe,SAAUrB,EAAMC,EAAMqB,GACxC,IAAIC,EAAqBvB,EAAKwB,oBAC7BC,EAA0BzB,EAAK0B,yBAsBhC,OApBKD,EAAwBhX,SAC5B0W,EAAcM,GAAyB,SAAUE,EAAQ7T,GACxD,IAAI8T,EAAUC,EAAWC,EAAW5B,EAGpC,GAFAA,EAAUc,EAAaW,QAEJxU,KADnB0U,EAAY9B,EAAmBC,EAAMC,EAAMC,IAG1C,MADAuB,EAAwBmF,OAAQ9Y,EAAG,GAC7B,IAAIoH,MAAO,oCAAsCyM,GAGxDG,GADAA,EAAYjB,EAAyBb,EAAMC,EAAM4B,IAC3BvC,KAAMU,EAAKQ,YACjCoB,EAAWL,EAAoBO,KACdF,EAASnX,OAASkX,EAAOlX,SAG1C8W,EAAoBO,GAAcH,EACnC,IACA3B,EAAK0B,yBAA2B,IAG1BH,EAAoBD,IAAmB,IAC/C,EAKIS,EAAa,SAAUC,GAC1B,IAAIlU,EACHiT,EAAS,GAEV,GAAK9V,OAAOgX,KACX,OAAOhX,OAAOgX,KAAMD,GAGrB,IAAMlU,KAAKkU,EACVjB,EAAO9P,KAAMnD,GAGd,OAAOiT,CACR,EAKImB,EAAc,SAAUvH,EAAMgF,GACjC,IAAIzM,EAAOqI,EAWX,OATAA,EAAUZ,GAASgF,GAAcwC,KAAO,KAAOA,KAAKC,UAAWzC,GAAe,KAC9EzM,EAAQ,IAAIgC,MAAOqG,IACbZ,KAAOA,EAGbwG,EAAcY,EAAYpC,IAAc,SAAU0C,GACjDnP,EAAOmP,GAAc1C,EAAY0C,EAClC,IAEOnP,CACR,EAKIoP,EAAW,SAAU3H,EAAM4H,EAAO5C,GACrC,IAAM4C,EACL,MAAML,EAAavH,EAAMgF,EAE3B,EAKI6C,EAAmB,SAAU/W,EAAO4P,GACvCiH,EAAU,sBAAwC,qBAAV7W,EAAuB,CAC9D4P,KAAMA,GAER,EAKIoH,EAAe,SAAUhX,EAAO4P,EAAMkH,EAAOG,GAChDJ,EAAU,qBAAsBC,EAAO,CACtCG,SAAUA,EACVrH,KAAMA,EACN5P,MAAOA,GAET,EAKIkX,EAAmB,SAAUlX,EAAO4P,GACvCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,GAAsB+T,EAAc/T,GAAS,kBAChF,EAQImX,EAAgB,SAAU7V,GAC7B,OAAe,OAARA,GAAgB,GAAKA,IAAQ,iBACrC,EAKI8V,EAA0B,SAAUpX,EAAO4P,GAC9CoH,EAAchX,EAAO4P,EAAuB,qBAAV5P,GAAyBmX,EAAenX,GAAS,eACpF,EAKIqX,EAAqB,SAAUrX,EAAO4P,GACzCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,EAAoB,WACvD,EAMIsX,EAAc,SAAUvV,EAAMkS,GACjC,IAAI5R,EACHkV,EAAOxV,EACP/C,EAASiV,EAAKjV,OAEf,IAAMqD,EAAI,EAAGA,EAAIrD,EAAS,EAAGqD,IAE5B,KADAkV,EAAOA,EAAMtD,EAAM5R,KAElB,OAGF,OAAOkV,EAAMtD,EAAM5R,GACpB,EAcImV,EAA0B,SAAUjD,EAAMkD,GAC7C,IAAIvB,EACHF,EAA0BzB,EAAK0B,yBAC/ByB,EAAOJ,EAAaG,EAAM,CAAE,SAE7B,GAAKC,EACJ,IAAMxB,KAAUwB,EACVA,EAAKnE,eAAgB2C,IAAuB,SAAXA,IACY,IAA/CF,EAAwBlS,QAASoS,IACnCF,EAAwBxQ,KAAM0Q,EAIlC,EAIIyB,EAAc,SAAUC,GAC3B,OAAO7D,EAAc6D,GAAsBA,EAAmB,CAAEA,EACjE,EAGIC,EAAa,WAUjB,IAAIC,EAAQ,WACX,IAAIC,EAAc,CAAC,EAClBC,EAAU,GAAGzX,MAAMwD,KAAMvB,UAAW,GAiBrC,OAhBAkT,EAAcsC,GAAS,SAAUC,GAChC,IAAIC,EACJ,IAAMA,KAAQD,EACRC,KAAQH,GAA8C,kBAAxBA,EAAaG,KAAwBnE,EAAcgE,EAAaG,IAGlGH,EAAaG,GAASJ,EAAOC,EAAaG,GAAQD,EAAQC,IAK1DH,EAAaG,GAASD,EAAQC,EAIjC,IACOH,CACR,EAEA,OAAOD,CAER,CAlCiB,GA8CZK,EAAW,SAAU5D,EAAM0D,EAAQG,GACtC,IAAI/V,EAAGqC,EAAG+S,EAKV,IAHAV,EAAkBqB,EAAO,GAAK,QAGxB/V,EAAI,EAAGA,EAAI+V,EAAMpZ,OAAQqD,IAK9B,IAFAoV,EAAOE,EAAaS,EAAO/V,IAErBqC,EAAI,EAAGA,EAAI+S,EAAKzY,OAAQ0F,IAC7B0S,EAAyBK,EAAM/S,GAAK,QACpCuT,EAASJ,EAAWI,EAAQR,EAAM/S,IAClC8S,EAAyBjD,EAAMkD,EAAM/S,IAIvC,OAAOuT,CACR,EAIII,EAAkB,SAAU9D,EAAMN,EAAMC,GAE3C,IAAIoE,EAAiBtE,EAAeC,EAAMC,GAE1C,OAAOoD,EAAa/C,EAAKgE,UAAWD,EACrC,EAQI/D,EAAO,SAAUiB,GACpBxS,KAAKwV,KAAMhD,EACZ,EAmIA,OAhIAjB,EAAKkE,aAAed,EACpBpD,EAAKmE,UAAYP,EACjB5D,EAAKoE,aAAelC,EACpBlC,EAAKqE,iBAAmBP,EACxB9D,EAAKsE,WAAahB,EAClBtD,EAAKuE,eAAiB9E,EACtBO,EAAKwE,aAAezB,EACpB/C,EAAKyE,kBAAoBjC,EACzBxC,EAAK0E,cAAgBjC,EACrBzC,EAAK2E,kBAAoBhC,EACzB3C,EAAK4E,yBAA2B/B,EAEhC7C,EAAKwB,oBAAsB,CAAC,EAC5BxB,EAAK0B,yBAA2B,GAChC1B,EAAKgE,UAAY,CAAC,EAGlBhE,EAAKQ,UAAY,IASjBR,EAAK6E,KAAO,WACX7E,EAAKgE,UAAYJ,EAAU5D,EAAMA,EAAKgE,UAAW/V,UAClD,EAKA+R,EAAK7U,UAAU8Y,KAAO,SAAUhD,GAC/B,IAAItB,EAAYU,EAAUS,EAAeQ,EAAehB,EAAQJ,EAASO,EAAWqE,EAAyBC,EAC5GxE,EAAMP,EAAKQ,UACXwE,EAA6B,GAE9BxC,EAAkBvB,EAAQ,UAC1B6B,EAAoB7B,EAAQ,UAIJ,KAFxBf,EAAUc,EAAaC,IAEVxW,SAEZua,EAA6BzE,EAAM,IAAMA,GADzCuE,EAA0B5E,EAAQ+E,OAG5B/E,EAAS,IACdA,EAAQ+E,OAGVF,EAAU7E,EAAS,GAYnBG,GADAS,EAAgBf,EAAmBC,EAAMvR,KAAMyR,EAAS,CAAEU,OAAO,KAAYV,GACnD,GAC1BI,EAASQ,EAAe,GACxBL,EAAYK,EAAe,GAE3BQ,EAAgBT,EAAyBb,EAAMvR,KAAMqS,GAAgBxB,KAAMiB,GAG3E9R,KAAKkR,WAAaA,EAAa,CAC9BgC,OAAQN,EAAcrB,EAAMvR,KAAM6S,GAGlCA,cAAeA,EAAgB0D,EAC/BlE,cAAeA,EAAcxB,KAAMiB,GAAQyE,EAG3C3E,SAAUA,EACVC,OAAQA,EACRG,UAAWA,EACXyE,OAAQzE,EACRsE,QAASA,GAIVD,IAA6B,IAAMA,GAA0BrQ,QAAS,yCAAyC,SAAU4N,EAAWhD,EAAKhS,GAEnIgS,EAGJM,EAAY,IAAMN,GAAQhS,EAI1BsS,EAAY,IAAM0C,IAAc,CAElC,IAEA5T,KAAKwS,OAASA,CACf,EAKAjB,EAAK7U,UAAUkI,IAAM,SAAUqM,GAK9B,OAHA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAEjBoE,EAAiB9D,EAAMN,EAAMjR,KAAKkR,WAC1C,EAKAK,EAAK7U,UAAUgY,KAAO,SAAUzD,GAS/B,OARA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAExB4C,EAAU,mBAA+C,OAA3B7T,KAAKkR,WAAWgC,OAAiB,CAC9DV,OAAQxS,KAAKwS,SAGdvB,EAAO0D,EAAa1D,GACbjR,KAAK4E,IAAK,CAAE,iBAAkBS,OAAQ4L,GAC9C,EAEOM,CAKR,OA3pBiB,uFClBjB;;;;GAkBE,EAAQ,CAAE,UAAa,EASvB,SAAUA,GAGX,IAWGmF,EAXC1F,EAAgBO,EAAKuE,eACxB/B,EAAmBxC,EAAKyE,kBACxBhC,EAAezC,EAAK0E;;;;;;GAWtBS,EAAgB,WASf,SAASA,IAAgB,CAGzB,IAAItS,EAAQsS,EAAaha,UACrBb,EAAU,CAAC,EAWf,SAAS+a,EAAgBC,EAAWC,GAEnC,IADA,IAAIzX,EAAIwX,EAAU7a,OACXqD,KACN,GAAIwX,EAAUxX,GAAGyX,WAAaA,EAC7B,OAAOzX,EAIT,OAAQ,CACT,CASA,SAAS0X,EAAMnK,GACd,OAAO,WACN,OAAO5M,KAAK4M,GAAM5I,MAAMhE,KAAMR,UAC/B,CACD,CAsZA,OA3YA4E,EAAM4S,aAAe,SAAsBC,GAC1C,IACIC,EACAtG,EAFAuG,EAASnX,KAAKoX,aAMlB,GAAIH,aAAeI,OAElB,IAAKzG,KADLsG,EAAW,CAAC,EACAC,EACPA,EAAO5G,eAAeK,IAAQqG,EAAI/E,KAAKtB,KAC1CsG,EAAStG,GAAOuG,EAAOvG,SAKzBsG,EAAWC,EAAOF,KAASE,EAAOF,GAAO,IAG1C,OAAOC,CACR,EAQA9S,EAAMkT,iBAAmB,SAA0BT,GAClD,IACIxX,EADAkY,EAAgB,GAGpB,IAAKlY,EAAI,EAAGA,EAAIwX,EAAU7a,OAAQqD,GAAK,EACtCkY,EAAc/U,KAAKqU,EAAUxX,GAAGyX,UAGjC,OAAOS,CACR,EAQAnT,EAAMoT,qBAAuB,SAA8BP,GAC1D,IACIC,EADAL,EAAY7W,KAAKgX,aAAaC,GAQlC,OALIJ,aAAqBhY,SACxBqY,EAAW,CAAC,GACHD,GAAOJ,GAGVK,GAAYL,CACpB,EAYAzS,EAAMqT,YAAc,SAAqBR,EAAKH,GAC7C,IAEIlG,EAFAiG,EAAY7W,KAAKwX,qBAAqBP,GACtCS,EAAwC,kBAAbZ,EAG/B,IAAKlG,KAAOiG,EACPA,EAAUtG,eAAeK,KAAuD,IAA/CgG,EAAgBC,EAAUjG,GAAMkG,IACpED,EAAUjG,GAAKpO,KAAKkV,EAAoBZ,EAAW,CAClDA,SAAUA,EACVa,MAAM,IAKT,OAAO3X,IACR,EAKAoE,EAAMwT,GAAKb,EAAM,eAUjB3S,EAAMyT,gBAAkB,SAAyBZ,EAAKH,GACrD,OAAO9W,KAAKyX,YAAYR,EAAK,CAC5BH,SAAUA,EACVa,MAAM,GAER,EAKAvT,EAAMuT,KAAOZ,EAAM,mBASnB3S,EAAM0T,YAAc,SAAqBb,GAExC,OADAjX,KAAKgX,aAAaC,GACXjX,IACR,EAQAoE,EAAM2T,aAAe,SAAsBC,GAC1C,IAAK,IAAI3Y,EAAI,EAAGA,EAAI2Y,EAAKhc,OAAQqD,GAAK,EACrCW,KAAK8X,YAAYE,EAAK3Y,IAEvB,OAAOW,IACR,EAUAoE,EAAM6T,eAAiB,SAAwBhB,EAAKH,GACnD,IACIoB,EACAtH,EAFAiG,EAAY7W,KAAKwX,qBAAqBP,GAI1C,IAAKrG,KAAOiG,EACPA,EAAUtG,eAAeK,KAGb,KAFfsH,EAAQtB,EAAgBC,EAAUjG,GAAMkG,KAGvCD,EAAUjG,GAAKuH,OAAOD,EAAO,GAKhC,OAAOlY,IACR,EAKAoE,EAAMgU,IAAMrB,EAAM,kBAYlB3S,EAAMiU,aAAe,SAAsBpB,EAAKJ,GAE/C,OAAO7W,KAAKsY,qBAAoB,EAAOrB,EAAKJ,EAC7C,EAYAzS,EAAMmU,gBAAkB,SAAyBtB,EAAKJ,GAErD,OAAO7W,KAAKsY,qBAAoB,EAAMrB,EAAKJ,EAC5C,EAcAzS,EAAMkU,oBAAsB,SAA6BE,EAAQvB,EAAKJ,GACrE,IAAIxX,EACArC,EACAyb,EAASD,EAASxY,KAAKiY,eAAiBjY,KAAKyX,YAC7CiB,EAAWF,EAASxY,KAAKuY,gBAAkBvY,KAAKqY,aAGpD,GAAmB,kBAARpB,GAAsBA,aAAeI,OAmB/C,IADAhY,EAAIwX,EAAU7a,OACPqD,KACNoZ,EAAO1X,KAAKf,KAAMiX,EAAKJ,EAAUxX,SAnBlC,IAAKA,KAAK4X,EACLA,EAAI1G,eAAelR,KAAOrC,EAAQia,EAAI5X,MAEpB,oBAAVrC,EACVyb,EAAO1X,KAAKf,KAAMX,EAAGrC,GAIrB0b,EAAS3X,KAAKf,KAAMX,EAAGrC,IAe3B,OAAOgD,IACR,EAWAoE,EAAMuU,YAAc,SAAqB1B,GACxC,IAEIrG,EAFAhS,SAAcqY,EACdE,EAASnX,KAAKoX,aAIlB,GAAa,WAATxY,SAEIuY,EAAOF,QAEV,GAAIA,aAAeI,OAEvB,IAAKzG,KAAOuG,EACPA,EAAO5G,eAAeK,IAAQqG,EAAI/E,KAAKtB,WACnCuG,EAAOvG,eAMT5Q,KAAK4Y,QAGb,OAAO5Y,IACR,EAOAoE,EAAMyU,mBAAqB9B,EAAM,eAcjC3S,EAAM0U,UAAY,SAAmB7B,EAAK8B,GACzC,IACIjC,EACAzX,EACAuR,EAHAiG,EAAY7W,KAAKwX,qBAAqBP,GAM1C,IAAKrG,KAAOiG,EACX,GAAIA,EAAUtG,eAAeK,GAG5B,IAFAvR,EAAIwX,EAAUjG,GAAK5U,OAEZqD,MAKgB,KAFtByX,EAAWD,EAAUjG,GAAKvR,IAEbsY,MACZ3X,KAAKiY,eAAehB,EAAKH,EAASA,UAGxBA,EAASA,SAAS9S,MAAMhE,KAAM+Y,GAAQ,MAEhC/Y,KAAKgZ,uBACrBhZ,KAAKiY,eAAehB,EAAKH,EAASA,UAMtC,OAAO9W,IACR,EAKAoE,EAAM6U,QAAUlC,EAAM,aAUtB3S,EAAM8U,KAAO,SAAcjC,GAC1B,IAAI8B,EAAOla,MAAMnC,UAAUa,MAAMwD,KAAKvB,UAAW,GACjD,OAAOQ,KAAK8Y,UAAU7B,EAAK8B,EAC5B,EAUA3U,EAAM+U,mBAAqB,SAA4Bnc,GAEtD,OADAgD,KAAKoZ,iBAAmBpc,EACjBgD,IACR,EAUAoE,EAAM4U,oBAAsB,WAC3B,OAAIhZ,KAAKuQ,eAAe,qBAChBvQ,KAAKoZ,gBAKd,EAQAhV,EAAMgT,WAAa,WAClB,OAAOpX,KAAK4Y,UAAY5Y,KAAK4Y,QAAU,CAAC,EACzC,EAOAlC,EAAa2C,WAAa,WAEzB,OADAxd,EAAQ6a,aAAeC,oBAChBD,CACR,EAEOA,CACR,CArce,GA0cd,IAOI4C,EAAUC,EAPVC,EAAuB,SAAUxc,EAAO4P,GAC3CoH,EAAchX,EAAO4P,EAAuB,qBAAV5P,GAA0C,oBAAVA,EAAsB,WACzF,EAMCyc,EAAW,IAAI/C,EAEhB,SAASgD,EAAmB1c,EAAO4P,GAClCoH,EAAchX,EAAO4P,EAAuB,kBAAV5P,GAAsBA,aAAiBqa,OAAQ,mBAClF,CAEA,SAASsC,EAAkBC,EAAQC,GAClC,OAAO,SAAUC,EAAOhD,GAOvB,OANA/C,EAAkB+F,EAAO,SACzBJ,EAAmBI,EAAO,SAE1B/F,EAAkB+C,EAAU,YAC5B0C,EAAsB1C,EAAU,YAEzB+C,EAAMD,GAAS5V,MAAO6V,EAAMra,UACpC,CACD,CAEA,SAAS4Y,EAAKyB,GACb,OAAOF,EAAkB,MAAOE,EACjC,CAEA,SAASjC,EAAIiC,GACZ,OAAOF,EAAkB,KAAME,EAChC,CAEA,SAASlC,EAAMkC,GACd,OAAOF,EAAkB,OAAQE,EAClC,CAwBA,SAASE,IAKRT,EAAW/H,EAAK7U,UAAUkI,IAC1B2M,EAAK7U,UAAUkI,IAAM,SAAUqM,GAC9B,IAAIjU,EAAQsc,EAAStV,MAAOhE,KAAMR,WAIlC,OAHAyR,EAAOD,EAAeC,EAAMjR,KAAKkR,YAAaL,KAAM,KACpD4I,EAASR,QAAS,MAAO,CAAEhI,EAAMjU,IACjCgD,KAAKga,GAAGf,QAAS,MAAO,CAAEhI,EAAMjU,IACzBA,CACR,CACD,CAKA,OAxCAuU,EAAK6G,IAAMA,EAAKqB,GAChBlI,EAAKqG,GAAKA,EAAI6B,GACdlI,EAAKoG,KAAOA,EAAM8B,GAKlBF,EAAYhI,EAAK7U,UAAU8Y,KAC3BjE,EAAK7U,UAAU8Y,KAAO,WACrB,IAAIwE,EACJha,KAAKga,GAAKA,EAAK,IAAItD,EACnB1W,KAAKoY,IAAMA,EAAK4B,GAChBha,KAAK4X,GAAKA,EAAIoC,GACdha,KAAK2X,KAAOA,EAAMqC,GAClBT,EAAUvV,MAAOhE,KAAMR,UACxB,EAsBA+R,EAAK0I,WAAaF,EAClBA,IAEOxI,CAKR,OAtjBgC,oFClBhC;;;;GAkBE,EAAQ,CAAE,UAAa,EASvB,SAAUA,GAGX,IAAIoD,EAAcpD,EAAKkE,aAInByE,EAAmB,SAAU1I,GAEhC,IAAI2I,EAASC,EAwCb,OA/BAA,GAPAD,EAAU,SAAUA,GACnB,OAAO,SAAUlJ,GAEhB,OADAA,EAAO0D,EAAa1D,GACbO,EAAK5M,IAAK,CAAEuV,GAAU9U,OAAQ4L,GACtC,CACD,GAEwB,iBAIXoJ,SAAWF,EAAS,yBAEjCC,EAAaC,SAASC,SAAW,WAChC,OAAO9I,EAAK5M,IAAK,+CAChB4M,EAAK5M,IAAK,qCACZ,EAEAwV,EAAaC,SAASE,QAAU,WAC/B,IAAIA,EAAU/I,EAAK5M,IAAK,8CACvB4M,EAAK5M,IAAK,qCACX,OAAO3C,SAAUsY,EAAS,GAC3B,EAIAH,EAAaI,SAAWL,EAAS,yBAEjCC,EAAaI,SAASC,QAAU,WAC/B,OAAOjJ,EAAK5M,IAAK,+CAChB4M,EAAK5M,IAAK,qCACZ,EAEAwV,EAAaI,SAASE,UAAY,WACjC,OAAOlJ,EAAK5M,IAAK,iDAChB4M,EAAK5M,IAAK,uCACZ,EAEOwV,CAER,EAKIO,EAAYpJ,EAAK7U,UAAU8Y,KAY/B,OALAjE,EAAK7U,UAAU8Y,KAAO,WACrBmF,EAAU3W,MAAOhE,KAAMR,WACvBQ,KAAKoa,aAAeF,EAAkBla,KACvC,EAEOuR,CAKR,OAlFgC,oFClBhC;;;;GAkBE,EAAQ,CAAE,UAAa,EASvB,SAAUA,GAGX,IAAI4D,EAAW5D,EAAKmE,UAChBb,EAAYtD,EAAKsE,WACjB7E,EAAgBO,EAAKuE,eACrBxB,EAAc/C,EAAKwE,aACnBhC,EAAmBxC,EAAKyE,kBACxB9B,EAAmB3C,EAAK2E,kBAIxB0E,EAAqB,SAAUrJ,EAAMiB,GACxC,IAAI8C,EAAgBuF,EAEpB,GAAgB,SAAXrI,EAOL,OAFA8C,EAAiBtE,EAAe,CAAE,0CAA2CwB,KAC7EqI,EAASvG,EAAa/C,EAAKgE,UAAWD,IAAoBhB,EAAa/C,EAAKuJ,KAAMxF,IAE1EuF,GAIRA,EAASrI,EAAOtQ,OAAQ,EAAGsQ,EAAOxR,YAAauQ,EAAKQ,cAE5C,MAIT,EAMIgJ,EAAc,SAAUhc,EAAMkS,EAAMjU,GACvC,IAAIqC,EACHkV,EAAOxV,EACP/C,EAASiV,EAAKjV,OAEf,IAAMqD,EAAI,EAAGA,EAAIrD,EAAS,EAAGqD,IACtBkV,EAAMtD,EAAM5R,MACjBkV,EAAMtD,EAAM5R,IAAQ,CAAC,GAEtBkV,EAAOA,EAAMtD,EAAM5R,IAEpBkV,EAAMtD,EAAM5R,IAAQrC,CACrB,EAGIge,EAAc,WAElB,IAAIC,EAuCJ,OArCAA,EAAS,SAAU1J,EAAMiB,EAAQvB,EAAMC,EAAYgK,GAClD,IAAI5F,EAAgBuF,EAAQ7d,EAI5B,GAAuB,qBAAXwV,GAAkCA,IAAW0I,EAWzD,OANA5F,EAAiBtE,EAAeC,EAAMC,QAMvBxS,KADf1B,EAAQsX,EAAa/C,EAAKgE,UAAWD,KACQ,kBAAVtY,SAOpB0B,KAFf1B,EAAQsX,EAAa/C,EAAKuJ,KAAMxF,MAI/BuF,EAASD,EAAoBrJ,EAAMiB,GACnCxV,EAAQie,EAAQ1J,EAAMsJ,EAAQ5J,EAAM4D,EAAW3D,EAAY,CAAEgC,OAAQ2H,IAAWrI,SAGlE9T,IAAV1B,GAEJ+d,EAAaxJ,EAAKgE,UAAWD,EAAgBtY,IAdtCA,CAkBT,EAEOie,CAER,CA3CkB,GA6EjB,OA/BA1J,EAAKuJ,KAAO,CAAC,EAUbvJ,EAAK6E,KAAO,WACX7E,EAAKuJ,KAAO3F,EAAU5D,EAAMA,EAAKuJ,KAAMtb,UACxC,EAKA+R,EAAK7U,UAAUkI,IAAM,SAAUqM,GAM9B,OALA8C,EAAkB9C,EAAM,QACxBiD,EAAkBjD,EAAM,QAIjB+J,EAAYzJ,EAAMvR,KAAKkR,YAAclR,KAAKkR,WAAWgC,QAAkB,GAAYjC,EAAMjR,KAAKkR,WACtG,EAGKK,EAAK0I,YACT1I,EAAK0I,aAGC1I,CAKR,OAjJgC;;;;;ACFhClB,EAAOxU,QAAU,EAAjB,OAGA,EAAS,QACT,EAAS,QACT,EAAS","sources":["../../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js","../../../../node_modules/.pnpm/cipher-base@1.0.4/node_modules/cipher-base/index.js","../../../../node_modules/.pnpm/classnames@2.2.6/node_modules/classnames/index.js","../../../../node_modules/.pnpm/cldrjs@0.4.8/node_modules/cldrjs/dist/cldr.js","../../../../node_modules/.pnpm/cldrjs@0.4.8/node_modules/cldrjs/dist/cldr/event.js","../../../../node_modules/.pnpm/cldrjs@0.4.8/node_modules/cldrjs/dist/cldr/supplemental.js","../../../../node_modules/.pnpm/cldrjs@0.4.8/node_modules/cldrjs/dist/cldr/unresolved.js","../../../../node_modules/.pnpm/cldrjs@0.4.8/node_modules/cldrjs/dist/node_main.js","../../../../node_modules/.pnpm/cldrjs@0.5.5/node_modules/cldrjs/dist/cldr.js","../../../../node_modules/.pnpm/cldrjs@0.5.5/node_modules/cldrjs/dist/cldr/event.js","../../../../node_modules/.pnpm/cldrjs@0.5.5/node_modules/cldrjs/dist/cldr/supplemental.js","../../../../node_modules/.pnpm/cldrjs@0.5.5/node_modules/cldrjs/dist/cldr/unresolved.js","../../../../node_modules/.pnpm/cldrjs@0.5.5/node_modules/cldrjs/dist/node_main.js"],"sourcesContent":["/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * CLDR JavaScript Library v0.4.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-11-26T15:03Z\n */\n/*!\n * CLDR JavaScript Library v0.4.8 2016-11-26T15:03Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( root, factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Global\n\t\troot.Cldr = factory();\n\t}\n\n}( this, function() {\n\n\n\tvar arrayIsArray = Array.isArray || function( obj ) {\n\t\treturn Object.prototype.toString.call( obj ) === \"[object Array]\";\n\t};\n\n\n\n\n\tvar pathNormalize = function( path, attributes ) {\n\t\tif ( arrayIsArray( path ) ) {\n\t\t\tpath = path.join( \"/\" );\n\t\t}\n\t\tif ( typeof path !== \"string\" ) {\n\t\t\tthrow new Error( \"invalid path \\\"\" + path + \"\\\"\" );\n\t\t}\n\t\t// 1: Ignore leading slash `/`\n\t\t// 2: Ignore leading `cldr/`\n\t\tpath = path\n\t\t\t.replace( /^\\// , \"\" ) /* 1 */\n\t\t\t.replace( /^cldr\\// , \"\" ); /* 2 */\n\n\t\t// Replace {attribute}'s\n\t\tpath = path.replace( /{[a-zA-Z]+}/g, function( name ) {\n\t\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\t\treturn attributes[ name ];\n\t\t});\n\n\t\treturn path.split( \"/\" );\n\t};\n\n\n\n\n\tvar arraySome = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.some ) {\n\t\t\treturn array.some( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tif ( callback( array[ i ], i, array ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\n\n\n\t/**\n\t * Return the maximized language id as defined in\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. Canonicalize.\n\t * 1.1 Make sure the input locale is in canonical form: uses the right\n\t * separator, and has the right casing.\n\t * TODO Right casing? What df? It seems languages are lowercase, scripts are\n\t * Capitalized, territory is uppercase. I am leaving this as an exercise to\n\t * the user.\n\t *\n\t * 1.2 Replace any deprecated subtags with their canonical values using the\n\t * data in supplemental metadata. Use the first value in the\n\t * replacement list, if it exists. Language tag replacements may have multiple\n\t * parts, such as \"sh\" ➞ \"sr_Latn\" or mo\" ➞ \"ro_MD\". In such a case, the\n\t * original script and/or region are retained if there is one. Thus\n\t * \"sh_Arab_AQ\" ➞ \"sr_Arab_AQ\", not \"sr_Latn_AQ\".\n\t * TODO What data?\n\t *\n\t * 1.3 If the tag is grandfathered (see in the supplemental data), then return it.\n\t * TODO grandfathered?\n\t *\n\t * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur.\n\t * 1.5 Get the components of the cleaned-up source tag (languages, scripts,\n\t * and regions), plus any variants and extensions.\n\t * 2. Lookup. Lookup each of the following in order, and stop on the first\n\t * match:\n\t * 2.1 languages_scripts_regions\n\t * 2.2 languages_regions\n\t * 2.3 languages_scripts\n\t * 2.4 languages\n\t * 2.5 und_scripts\n\t * 3. Return\n\t * 3.1 If there is no match, either return an error value, or the match for\n\t * \"und\" (in APIs where a valid language tag is required).\n\t * 3.2 Otherwise there is a match = languagem_scriptm_regionm\n\t * 3.3 Let xr = xs if xs is not empty, and xm otherwise.\n\t * 3.4 Return the language tag composed of languager _ scriptr _ regionr +\n\t * variants + extensions.\n\t *\n\t * @subtags [Array] normalized language id subtags tuple (see init.js).\n\t */\n\tvar coreLikelySubtags = function( Cldr, cldr, subtags, options ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = subtags[ 0 ],\n\t\t\tscript = subtags[ 1 ],\n\t\t\tsep = Cldr.localeSep,\n\t\t\tterritory = subtags[ 2 ],\n\t\t\tvariants = subtags.slice( 3, 4 );\n\t\toptions = options || {};\n\n\t\t// Skip if (language, script, territory) is not empty [3.3]\n\t\tif ( language !== \"und\" && script !== \"Zzzz\" && territory !== \"ZZ\" ) {\n\t\t\treturn [ language, script, territory ].concat( variants );\n\t\t}\n\n\t\t// Skip if no supplemental likelySubtags data is present\n\t\tif ( typeof cldr.get( \"supplemental/likelySubtags\" ) === \"undefined\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// [2]\n\t\tmatchFound = arraySome([\n\t\t\t[ language, script, territory ],\n\t\t\t[ language, territory ],\n\t\t\t[ language, script ],\n\t\t\t[ language ],\n\t\t\t[ \"und\", script ]\n\t\t], function( test ) {\n\t\t\treturn match = !(/\\b(Zzzz|ZZ)\\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ \"supplemental/likelySubtags\", test.join( sep ) ] );\n\t\t});\n\n\t\t// [3]\n\t\tif ( matchFound ) {\n\t\t\t// [3.2 .. 3.4]\n\t\t\tmatch = match.split( sep );\n\t\t\treturn [\n\t\t\t\tlanguage !== \"und\" ? language : match[ 0 ],\n\t\t\t\tscript !== \"Zzzz\" ? script : match[ 1 ],\n\t\t\t\tterritory !== \"ZZ\" ? territory : match[ 2 ]\n\t\t\t].concat( variants );\n\t\t} else if ( options.force ) {\n\t\t\t// [3.1.2]\n\t\t\treturn cldr.get( \"supplemental/likelySubtags/und\" ).split( sep );\n\t\t} else {\n\t\t\t// [3.1.1]\n\t\t\treturn;\n\t\t}\n\t};\n\n\n\n\t/**\n\t * Given a locale, remove any fields that Add Likely Subtags would add.\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled,\n\t * return it.\n\t * 2. Remove the variants from max.\n\t * 3. Then for trial in {language, language _ region, language _ script}. If\n\t * AddLikelySubtags(trial) = max, then return trial + variants.\n\t * 4. If you do not get a match, return max + variants.\n\t * \n\t * @maxLanguageId [Array] maxLanguageId tuple (see init.js).\n\t */\n\tvar coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = maxLanguageId[ 0 ],\n\t\t\tscript = maxLanguageId[ 1 ],\n\t\t\tterritory = maxLanguageId[ 2 ],\n\t\t\tvariants = maxLanguageId[ 3 ];\n\n\t\t// [3]\n\t\tmatchFound = arraySome([\n\t\t\t[ [ language, \"Zzzz\", \"ZZ\" ], [ language ] ],\n\t\t\t[ [ language, \"Zzzz\", territory ], [ language, territory ] ],\n\t\t\t[ [ language, script, \"ZZ\" ], [ language, script ] ]\n\t\t], function( test ) {\n\t\t\tvar result = coreLikelySubtags( Cldr, cldr, test[ 0 ] );\n\t\t\tmatch = test[ 1 ];\n\t\t\treturn result && result[ 0 ] === maxLanguageId[ 0 ] &&\n\t\t\t\tresult[ 1 ] === maxLanguageId[ 1 ] &&\n\t\t\t\tresult[ 2 ] === maxLanguageId[ 2 ];\n\t\t});\n\n\t\tif ( matchFound ) {\n\t\t\tif ( variants ) {\n\t\t\t\tmatch.push( variants );\n\t\t\t}\n\t\t\treturn match;\n\t\t}\n\n\t\t// [4]\n\t\treturn maxLanguageId;\n\t};\n\n\n\n\n\t/**\n\t * subtags( locale )\n\t *\n\t * @locale [String]\n\t */\n\tvar coreSubtags = function( locale ) {\n\t\tvar aux, unicodeLanguageId,\n\t\t\tsubtags = [];\n\n\t\tlocale = locale.replace( /_/, \"-\" );\n\n\t\t// Unicode locale extensions.\n\t\taux = locale.split( \"-u-\" );\n\t\tif ( aux[ 1 ] ) {\n\t\t\taux[ 1 ] = aux[ 1 ].split( \"-t-\" );\n\t\t\tlocale = aux[ 0 ] + ( aux[ 1 ][ 1 ] ? \"-t-\" + aux[ 1 ][ 1 ] : \"\");\n\t\t\tsubtags[ 4 /* unicodeLocaleExtensions */ ] = aux[ 1 ][ 0 ];\n\t\t}\n\n\t\t// TODO normalize transformed extensions. Currently, skipped.\n\t\t// subtags[ x ] = locale.split( \"-t-\" )[ 1 ];\n\t\tunicodeLanguageId = locale.split( \"-t-\" )[ 0 ];\n\n\t\t// unicode_language_id = \"root\"\n\t\t// | unicode_language_subtag \n\t\t// (sep unicode_script_subtag)? \n\t\t// (sep unicode_region_subtag)?\n\t\t// (sep unicode_variant_subtag)* ;\n\t\t//\n\t\t// Although unicode_language_subtag = alpha{2,8}, I'm using alpha{2,3}. Because, there's no language on CLDR lengthier than 3.\n\t\taux = unicodeLanguageId.match( /^(([a-z]{2,3})(-([A-Z][a-z]{3}))?(-([A-Z]{2}|[0-9]{3}))?)((-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*)$|^(root)$/ );\n\t\tif ( aux === null ) {\n\t\t\treturn [ \"und\", \"Zzzz\", \"ZZ\" ];\n\t\t}\n\t\tsubtags[ 0 /* language */ ] = aux[ 10 ] /* root */ || aux[ 2 ] || \"und\";\n\t\tsubtags[ 1 /* script */ ] = aux[ 4 ] || \"Zzzz\";\n\t\tsubtags[ 2 /* territory */ ] = aux[ 6 ] || \"ZZ\";\n\t\tif ( aux[ 7 ] && aux[ 7 ].length ) {\n\t\t\tsubtags[ 3 /* variant */ ] = aux[ 7 ].slice( 1 ) /* remove leading \"-\" */;\n\t\t}\n\n\t\t// 0: language\n\t\t// 1: script\n\t\t// 2: territory (aka region)\n\t\t// 3: variant\n\t\t// 4: unicodeLocaleExtensions\n\t\treturn subtags;\n\t};\n\n\n\n\n\tvar arrayForEach = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.forEach ) {\n\t\t\treturn array.forEach( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tcallback( array[ i ], i, array );\n\t\t}\n\t};\n\n\n\n\n\t/**\n\t * bundleLookup( minLanguageId )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @cldr [Cldr instance]\n\t *\n\t * @minLanguageId [String] requested languageId after applied remove likely subtags.\n\t */\n\tvar bundleLookup = function( Cldr, cldr, minLanguageId ) {\n\t\tvar availableBundleMap = Cldr._availableBundleMap,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue;\n\n\t\tif ( availableBundleMapQueue.length ) {\n\t\t\tarrayForEach( availableBundleMapQueue, function( bundle ) {\n\t\t\t\tvar existing, maxBundle, minBundle, subtags;\n\t\t\t\tsubtags = coreSubtags( bundle );\n\t\t\t\tmaxBundle = coreLikelySubtags( Cldr, cldr, subtags );\n\t\t\t\tminBundle = coreRemoveLikelySubtags( Cldr, cldr, maxBundle );\n\t\t\t\tminBundle = minBundle.join( Cldr.localeSep );\n\t\t\t\texisting = availableBundleMapQueue[ minBundle ];\n\t\t\t\tif ( existing && existing.length < bundle.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tavailableBundleMap[ minBundle ] = bundle;\n\t\t\t});\n\t\t\tCldr._availableBundleMapQueue = [];\n\t\t}\n\n\t\treturn availableBundleMap[ minLanguageId ] || null;\n\t};\n\n\n\n\n\tvar objectKeys = function( object ) {\n\t\tvar i,\n\t\t\tresult = [];\n\n\t\tif ( Object.keys ) {\n\t\t\treturn Object.keys( object );\n\t\t}\n\n\t\tfor ( i in object ) {\n\t\t\tresult.push( i );\n\t\t}\n\n\t\treturn result;\n\t};\n\n\n\n\n\tvar createError = function( code, attributes ) {\n\t\tvar error, message;\n\n\t\tmessage = code + ( attributes && JSON ? \": \" + JSON.stringify( attributes ) : \"\" );\n\t\terror = new Error( message );\n\t\terror.code = code;\n\n\t\t// extend( error, attributes );\n\t\tarrayForEach( objectKeys( attributes ), function( attribute ) {\n\t\t\terror[ attribute ] = attributes[ attribute ];\n\t\t});\n\n\t\treturn error;\n\t};\n\n\n\n\n\tvar validate = function( code, check, attributes ) {\n\t\tif ( !check ) {\n\t\t\tthrow createError( code, attributes );\n\t\t}\n\t};\n\n\n\n\n\tvar validatePresence = function( value, name ) {\n\t\tvalidate( \"E_MISSING_PARAMETER\", typeof value !== \"undefined\", {\n\t\t\tname: name\n\t\t});\n\t};\n\n\n\n\n\tvar validateType = function( value, name, check, expected ) {\n\t\tvalidate( \"E_INVALID_PAR_TYPE\", check, {\n\t\t\texpected: expected,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t});\n\t};\n\n\n\n\n\tvar validateTypePath = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || arrayIsArray( value ), \"String or Array\" );\n\t};\n\n\n\n\n\t/**\n\t * Function inspired by jQuery Core, but reduced to our use case.\n\t */\n\tvar isPlainObject = function( obj ) {\n\t\treturn obj !== null && \"\" + obj === \"[object Object]\";\n\t};\n\n\n\n\n\tvar validateTypePlainObject = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || isPlainObject( value ), \"Plain Object\" );\n\t};\n\n\n\n\n\tvar validateTypeString = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\", \"a string\" );\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceGet = function( data, path ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tnode = node[ path[ i ] ];\n\t\t\tif ( !node ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn node[ path[ i ] ];\n\t};\n\n\n\n\n\t/**\n\t * setAvailableBundles( Cldr, json )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @json resolved/unresolved cldr data.\n\t *\n\t * Set available bundles queue based on passed json CLDR data. Considers a bundle as any String at /main/{bundle}.\n\t */\n\tvar coreSetAvailableBundles = function( Cldr, json ) {\n\t\tvar bundle,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue,\n\t\t\tmain = resourceGet( json, [ \"main\" ] );\n\n\t\tif ( main ) {\n\t\t\tfor ( bundle in main ) {\n\t\t\t\tif ( main.hasOwnProperty( bundle ) && bundle !== \"root\" &&\n\t\t\t\t\t\t\tavailableBundleMapQueue.indexOf( bundle ) === -1 ) {\n\t\t\t\t\tavailableBundleMapQueue.push( bundle );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\n\tvar alwaysArray = function( somethingOrArray ) {\n\t\treturn arrayIsArray( somethingOrArray ) ? somethingOrArray : [ somethingOrArray ];\n\t};\n\n\n\tvar jsonMerge = (function() {\n\n\t// Returns new deeply merged JSON.\n\t//\n\t// Eg.\n\t// merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } )\n\t// -> { a: { b: 3, c: 2, d: 4 } }\n\t//\n\t// @arguments JSON's\n\t// \n\tvar merge = function() {\n\t\tvar destination = {},\n\t\t\tsources = [].slice.call( arguments, 0 );\n\t\tarrayForEach( sources, function( source ) {\n\t\t\tvar prop;\n\t\t\tfor ( prop in source ) {\n\t\t\t\tif ( prop in destination && typeof destination[ prop ] === \"object\" && !arrayIsArray( destination[ prop ] ) ) {\n\n\t\t\t\t\t// Merge Objects\n\t\t\t\t\tdestination[ prop ] = merge( destination[ prop ], source[ prop ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Set new values\n\t\t\t\t\tdestination[ prop ] = source[ prop ];\n\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn destination;\n\t};\n\n\treturn merge;\n\n}());\n\n\n\t/**\n\t * load( Cldr, source, jsons )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @source [Object]\n\t *\n\t * @jsons [arguments]\n\t */\n\tvar coreLoad = function( Cldr, source, jsons ) {\n\t\tvar i, j, json;\n\n\t\tvalidatePresence( jsons[ 0 ], \"json\" );\n\n\t\t// Support arbitrary parameters, e.g., `Cldr.load({...}, {...})`.\n\t\tfor ( i = 0; i < jsons.length; i++ ) {\n\n\t\t\t// Support array parameters, e.g., `Cldr.load([{...}, {...}])`.\n\t\t\tjson = alwaysArray( jsons[ i ] );\n\n\t\t\tfor ( j = 0; j < json.length; j++ ) {\n\t\t\t\tvalidateTypePlainObject( json[ j ], \"json\" );\n\t\t\t\tsource = jsonMerge( source, json[ j ] );\n\t\t\t\tcoreSetAvailableBundles( Cldr, json[ j ] );\n\t\t\t}\n\t\t}\n\n\t\treturn source;\n\t};\n\n\n\n\tvar itemGetResolved = function( Cldr, path, attributes ) {\n\t\t// Resolve path\n\t\tvar normalizedPath = pathNormalize( path, attributes );\n\n\t\treturn resourceGet( Cldr._resolved, normalizedPath );\n\t};\n\n\n\n\n\t/**\n\t * new Cldr()\n\t */\n\tvar Cldr = function( locale ) {\n\t\tthis.init( locale );\n\t};\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tCldr._alwaysArray = alwaysArray;\n\tCldr._coreLoad = coreLoad;\n\tCldr._createError = createError;\n\tCldr._itemGetResolved = itemGetResolved;\n\tCldr._jsonMerge = jsonMerge;\n\tCldr._pathNormalize = pathNormalize;\n\tCldr._resourceGet = resourceGet;\n\tCldr._validatePresence = validatePresence;\n\tCldr._validateType = validateType;\n\tCldr._validateTypePath = validateTypePath;\n\tCldr._validateTypePlainObject = validateTypePlainObject;\n\n\tCldr._availableBundleMap = {};\n\tCldr._availableBundleMapQueue = [];\n\tCldr._resolved = {};\n\n\t// Allow user to override locale separator \"-\" (default) | \"_\". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both \"-\" and \"_\" are valid locale separators (eg. \"en_GB\", \"en-GB\"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set.\n\tCldr.localeSep = \"-\";\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved cldr data.\n\t */\n\tCldr.load = function() {\n\t\tCldr._resolved = coreLoad( Cldr, Cldr._resolved, arguments );\n\t};\n\n\t/**\n\t * .init() automatically run on instantiation/construction.\n\t */\n\tCldr.prototype.init = function( locale ) {\n\t\tvar attributes, language, maxLanguageId, minLanguageId, script, subtags, territory, unicodeLocaleExtensions, variant,\n\t\t\tsep = Cldr.localeSep,\n\t\t\tunicodeLocaleExtensionsRaw = \"\";\n\n\t\tvalidatePresence( locale, \"locale\" );\n\t\tvalidateTypeString( locale, \"locale\" );\n\n\t\tsubtags = coreSubtags( locale );\n\n\t\tif ( subtags.length === 5 ) {\n\t\t\tunicodeLocaleExtensions = subtags.pop();\n\t\t\tunicodeLocaleExtensionsRaw = sep + \"u\" + sep + unicodeLocaleExtensions;\n\t\t\t// Remove trailing null when there is unicodeLocaleExtensions but no variants.\n\t\t\tif ( !subtags[ 3 ] ) {\n\t\t\t\tsubtags.pop();\n\t\t\t}\n\t\t}\n\t\tvariant = subtags[ 3 ];\n\n\t\t// Normalize locale code.\n\t\t// Get (or deduce) the \"triple subtags\": language, territory (also aliased as region), and script subtags.\n\t\t// Get the variant subtags (calendar, collation, currency, etc).\n\t\t// refs:\n\t\t// - http://www.unicode.org/reports/tr35/#Field_Definitions\n\t\t// - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs\n\t\t// - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier\n\n\t\t// When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags.\n\t\tmaxLanguageId = coreLikelySubtags( Cldr, this, subtags, { force: true } ) || subtags;\n\t\tlanguage = maxLanguageId[ 0 ];\n\t\tscript = maxLanguageId[ 1 ];\n\t\tterritory = maxLanguageId[ 2 ];\n\n\t\tminLanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep );\n\n\t\t// Set attributes\n\t\tthis.attributes = attributes = {\n\t\t\tbundle: bundleLookup( Cldr, this, minLanguageId ),\n\n\t\t\t// Unicode Language Id\n\t\t\tminLanguageId: minLanguageId + unicodeLocaleExtensionsRaw,\n\t\t\tmaxLanguageId: maxLanguageId.join( sep ) + unicodeLocaleExtensionsRaw,\n\n\t\t\t// Unicode Language Id Subtabs\n\t\t\tlanguage: language,\n\t\t\tscript: script,\n\t\t\tterritory: territory,\n\t\t\tregion: territory, /* alias */\n\t\t\tvariant: variant\n\t\t};\n\n\t\t// Unicode locale extensions.\n\t\tunicodeLocaleExtensions && ( \"-\" + unicodeLocaleExtensions ).replace( /-[a-z]{3,8}|(-[a-z]{2})-([a-z]{3,8})/g, function( attribute, key, type ) {\n\n\t\t\tif ( key ) {\n\n\t\t\t\t// Extension is in the `keyword` form.\n\t\t\t\tattributes[ \"u\" + key ] = type;\n\t\t\t} else {\n\n\t\t\t\t// Extension is in the `attribute` form.\n\t\t\t\tattributes[ \"u\" + attribute ] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.locale = locale;\n\t};\n\n\t/**\n\t * .get()\n\t */\n\tCldr.prototype.get = function( path ) {\n\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\treturn itemGetResolved( Cldr, path, this.attributes );\n\t};\n\n\t/**\n\t * .main()\n\t */\n\tCldr.prototype.main = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\tvalidate( \"E_MISSING_BUNDLE\", this.attributes.bundle !== null, {\n\t\t\tlocale: this.locale\n\t\t});\n\n\t\tpath = alwaysArray( path );\n\t\treturn this.get( [ \"main/{bundle}\" ].concat( path ) );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.4.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-11-26T15:03Z\n */\n/*!\n * CLDR JavaScript Library v0.4.8 2016-11-26T15:03Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar pathNormalize = Cldr._pathNormalize,\n\t\tvalidatePresence = Cldr._validatePresence,\n\t\tvalidateType = Cldr._validateType;\n\n/*!\n * EventEmitter v4.2.7 - git.io/ee\n * Oliver Caldwell\n * MIT license\n * @preserve\n */\n\nvar EventEmitter;\n/* jshint ignore:start */\nEventEmitter = (function () {\n\n\n\t/**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\tfunction EventEmitter() {}\n\n\t// Shortcuts to improve speed and size\n\tvar proto = EventEmitter.prototype;\n\tvar exports = this;\n\tvar originalGlobalValue = exports.EventEmitter;\n\n\t/**\n\t * Finds the index of the listener for the event in it's storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t * @api private\n\t */\n\tfunction indexOfListener(listeners, listener) {\n\t\tvar i = listeners.length;\n\t\twhile (i--) {\n\t\t\tif (listeners[i].listener === listener) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t * @api private\n\t */\n\tfunction alias(name) {\n\t\treturn function aliasClosure() {\n\t\t\treturn this[name].apply(this, arguments);\n\t\t};\n\t}\n\n\t/**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\tproto.getListeners = function getListeners(evt) {\n\t\tvar events = this._getEvents();\n\t\tvar response;\n\t\tvar key;\n\n\t\t// Return a concatenated array of all matching events if\n\t\t// the selector is a regular expression.\n\t\tif (evt instanceof RegExp) {\n\t\t\tresponse = {};\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tresponse[key] = events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tresponse = events[evt] || (events[evt] = []);\n\t\t}\n\n\t\treturn response;\n\t};\n\n\t/**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\tproto.flattenListeners = function flattenListeners(listeners) {\n\t\tvar flatListeners = [];\n\t\tvar i;\n\n\t\tfor (i = 0; i < listeners.length; i += 1) {\n\t\t\tflatListeners.push(listeners[i].listener);\n\t\t}\n\n\t\treturn flatListeners;\n\t};\n\n\t/**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\tproto.getListenersAsObject = function getListenersAsObject(evt) {\n\t\tvar listeners = this.getListeners(evt);\n\t\tvar response;\n\n\t\tif (listeners instanceof Array) {\n\t\t\tresponse = {};\n\t\t\tresponse[evt] = listeners;\n\t\t}\n\n\t\treturn response || listeners;\n\t};\n\n\t/**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListener = function addListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listenerIsWrapped = typeof listener === 'object';\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t\t\t\tlisteners[key].push(listenerIsWrapped ? listener : {\n\t\t\t\t\tlistener: listener,\n\t\t\t\t\tonce: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of addListener\n\t */\n\tproto.on = alias('addListener');\n\n\t/**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after it's first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addOnceListener = function addOnceListener(evt, listener) {\n\t\treturn this.addListener(evt, {\n\t\t\tlistener: listener,\n\t\t\tonce: true\n\t\t});\n\t};\n\n\t/**\n\t * Alias of addOnceListener.\n\t */\n\tproto.once = alias('addOnceListener');\n\n\t/**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvent = function defineEvent(evt) {\n\t\tthis.getListeners(evt);\n\t\treturn this;\n\t};\n\n\t/**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvents = function defineEvents(evts) {\n\t\tfor (var i = 0; i < evts.length; i += 1) {\n\t\t\tthis.defineEvent(evts[i]);\n\t\t}\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListener = function removeListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar index;\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\tindex = indexOfListener(listeners[key], listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tlisteners[key].splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeListener\n\t */\n\tproto.off = alias('removeListener');\n\n\t/**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListeners = function addListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(false, evt, listeners);\n\t};\n\n\t/**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListeners = function removeListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(true, evt, listeners);\n\t};\n\n\t/**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t\tvar i;\n\t\tvar value;\n\t\tvar single = remove ? this.removeListener : this.addListener;\n\t\tvar multiple = remove ? this.removeListeners : this.addListeners;\n\n\t\t// If evt is an object then pass each of it's properties to this method\n\t\tif (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t\t\tfor (i in evt) {\n\t\t\t\tif (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t\t\t\t\t// Pass the single listener straight through to the singular method\n\t\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\t\tsingle.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Otherwise pass back to the multiple function\n\t\t\t\t\t\tmultiple.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// So evt must be a string\n\t\t\t// And listeners must be an array of listeners\n\t\t\t// Loop over it and pass each one to the multiple method\n\t\t\ti = listeners.length;\n\t\t\twhile (i--) {\n\t\t\t\tsingle.call(this, evt, listeners[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeEvent = function removeEvent(evt) {\n\t\tvar type = typeof evt;\n\t\tvar events = this._getEvents();\n\t\tvar key;\n\n\t\t// Remove different things depending on the state of evt\n\t\tif (type === 'string') {\n\t\t\t// Remove all listeners for the specified event\n\t\t\tdelete events[evt];\n\t\t}\n\t\telse if (evt instanceof RegExp) {\n\t\t\t// Remove all events matching the regex.\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tdelete events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Remove all listeners in all events\n\t\t\tdelete this._events;\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\tproto.removeAllListeners = alias('removeEvent');\n\n\t/**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emitEvent = function emitEvent(evt, args) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listener;\n\t\tvar i;\n\t\tvar key;\n\t\tvar response;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\ti = listeners[key].length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\t// If the listener returns true then it shall be removed from the event\n\t\t\t\t\t// The function is executed either with a basic call or an apply if there is an args array\n\t\t\t\t\tlistener = listeners[key][i];\n\n\t\t\t\t\tif (listener.once === true) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = listener.listener.apply(this, args || []);\n\n\t\t\t\t\tif (response === this._getOnceReturnValue()) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of emitEvent\n\t */\n\tproto.trigger = alias('emitEvent');\n\n\t/**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emit = function emit(evt) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\treturn this.emitEvent(evt, args);\n\t};\n\n\t/**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t\tthis._onceReturnValue = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t * @api private\n\t */\n\tproto._getOnceReturnValue = function _getOnceReturnValue() {\n\t\tif (this.hasOwnProperty('_onceReturnValue')) {\n\t\t\treturn this._onceReturnValue;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t * @api private\n\t */\n\tproto._getEvents = function _getEvents() {\n\t\treturn this._events || (this._events = {});\n\t};\n\n\t/**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\tEventEmitter.noConflict = function noConflict() {\n\t\texports.EventEmitter = originalGlobalValue;\n\t\treturn EventEmitter;\n\t};\n\n\treturn EventEmitter;\n}());\n/* jshint ignore:end */\n\n\n\n\tvar validateTypeFunction = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"function\", \"Function\" );\n\t};\n\n\n\n\n\tvar superGet, superInit,\n\t\tglobalEe = new EventEmitter();\n\n\tfunction validateTypeEvent( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || value instanceof RegExp, \"String or RegExp\" );\n\t}\n\n\tfunction validateThenCall( method, self ) {\n\t\treturn function( event, listener ) {\n\t\t\tvalidatePresence( event, \"event\" );\n\t\t\tvalidateTypeEvent( event, \"event\" );\n\n\t\t\tvalidatePresence( listener, \"listener\" );\n\t\t\tvalidateTypeFunction( listener, \"listener\" );\n\n\t\t\treturn self[ method ].apply( self, arguments );\n\t\t};\n\t}\n\n\tfunction off( self ) {\n\t\treturn validateThenCall( \"off\", self );\n\t}\n\n\tfunction on( self ) {\n\t\treturn validateThenCall( \"on\", self );\n\t}\n\n\tfunction once( self ) {\n\t\treturn validateThenCall( \"once\", self );\n\t}\n\n\tCldr.off = off( globalEe );\n\tCldr.on = on( globalEe );\n\tCldr.once = once( globalEe );\n\n\t/**\n\t * Overload Cldr.prototype.init().\n\t */\n\tsuperInit = Cldr.prototype.init;\n\tCldr.prototype.init = function() {\n\t\tvar ee;\n\t\tthis.ee = ee = new EventEmitter();\n\t\tthis.off = off( ee );\n\t\tthis.on = on( ee );\n\t\tthis.once = once( ee );\n\t\tsuperInit.apply( this, arguments );\n\t};\n\n\t/**\n\t * getOverload is encapsulated, because of cldr/unresolved. If it's loaded\n\t * after cldr/event (and note it overwrites .get), it can trigger this\n\t * overload again.\n\t */\n\tfunction getOverload() {\n\n\t\t/**\n\t\t * Overload Cldr.prototype.get().\n\t\t */\n\t\tsuperGet = Cldr.prototype.get;\n\t\tCldr.prototype.get = function( path ) {\n\t\t\tvar value = superGet.apply( this, arguments );\n\t\t\tpath = pathNormalize( path, this.attributes ).join( \"/\" );\n\t\t\tglobalEe.trigger( \"get\", [ path, value ] );\n\t\t\tthis.ee.trigger( \"get\", [ path, value ] );\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tCldr._eventInit = getOverload;\n\tgetOverload();\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.4.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-11-26T15:03Z\n */\n/*!\n * CLDR JavaScript Library v0.4.8 2016-11-26T15:03Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar alwaysArray = Cldr._alwaysArray;\n\n\n\n\tvar supplementalMain = function( cldr ) {\n\n\t\tvar prepend, supplemental;\n\t\t\n\t\tprepend = function( prepend ) {\n\t\t\treturn function( path ) {\n\t\t\t\tpath = alwaysArray( path );\n\t\t\t\treturn cldr.get( [ prepend ].concat( path ) );\n\t\t\t};\n\t\t};\n\n\t\tsupplemental = prepend( \"supplemental\" );\n\n\t\t// Week Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Week_Data\n\t\tsupplemental.weekData = prepend( \"supplemental/weekData\" );\n\n\t\tsupplemental.weekData.firstDay = function() {\n\t\t\treturn cldr.get( \"supplemental/weekData/firstDay/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/firstDay/001\" );\n\t\t};\n\n\t\tsupplemental.weekData.minDays = function() {\n\t\t\tvar minDays = cldr.get( \"supplemental/weekData/minDays/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/minDays/001\" );\n\t\t\treturn parseInt( minDays, 10 );\n\t\t};\n\n\t\t// Time Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data\n\t\tsupplemental.timeData = prepend( \"supplemental/timeData\" );\n\n\t\tsupplemental.timeData.allowed = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_allowed\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_allowed\" );\n\t\t};\n\n\t\tsupplemental.timeData.preferred = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_preferred\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_preferred\" );\n\t\t};\n\n\t\treturn supplemental;\n\n\t};\n\n\n\n\n\tvar initSuper = Cldr.prototype.init;\n\n\t/**\n\t * .init() automatically ran on construction.\n\t *\n\t * Overload .init().\n\t */\n\tCldr.prototype.init = function() {\n\t\tinitSuper.apply( this, arguments );\n\t\tthis.supplemental = supplementalMain( this );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.4.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-11-26T15:03Z\n */\n/*!\n * CLDR JavaScript Library v0.4.8 2016-11-26T15:03Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar coreLoad = Cldr._coreLoad;\n\tvar jsonMerge = Cldr._jsonMerge;\n\tvar pathNormalize = Cldr._pathNormalize;\n\tvar resourceGet = Cldr._resourceGet;\n\tvar validatePresence = Cldr._validatePresence;\n\tvar validateTypePath = Cldr._validateTypePath;\n\n\n\n\tvar bundleParentLookup = function( Cldr, locale ) {\n\t\tvar normalizedPath, parent;\n\n\t\tif ( locale === \"root\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// First, try to find parent on supplemental data.\n\t\tnormalizedPath = pathNormalize( [ \"supplemental/parentLocales/parentLocale\", locale ] );\n\t\tparent = resourceGet( Cldr._resolved, normalizedPath ) || resourceGet( Cldr._raw, normalizedPath );\n\t\tif ( parent ) {\n\t\t\treturn parent;\n\t\t}\n\n\t\t// Or truncate locale.\n\t\tparent = locale.substr( 0, locale.lastIndexOf( Cldr.localeSep ) );\n\t\tif ( !parent ) {\n\t\t\treturn \"root\";\n\t\t}\n\n\t\treturn parent;\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceSet = function( data, path, value ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tif ( !node[ path[ i ] ] ) {\n\t\t\t\tnode[ path[ i ] ] = {};\n\t\t\t}\n\t\t\tnode = node[ path[ i ] ];\n\t\t}\n\t\tnode[ path[ i ] ] = value;\n\t};\n\n\n\tvar itemLookup = (function() {\n\n\tvar lookup;\n\n\tlookup = function( Cldr, locale, path, attributes, childLocale ) {\n\t\tvar normalizedPath, parent, value;\n\n\t\t// 1: Finish recursion\n\t\t// 2: Avoid infinite loop\n\t\tif ( typeof locale === \"undefined\" /* 1 */ || locale === childLocale /* 2 */ ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve path\n\t\tnormalizedPath = pathNormalize( path, attributes );\n\n\t\t// Check resolved (cached) data first\n\t\t// 1: Due to #16, never use the cached resolved non-leaf nodes. It may not\n\t\t// represent its leafs in its entirety.\n\t\tvalue = resourceGet( Cldr._resolved, normalizedPath );\n\t\tif ( value && typeof value !== \"object\" /* 1 */ ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Check raw data\n\t\tvalue = resourceGet( Cldr._raw, normalizedPath );\n\n\t\tif ( !value ) {\n\t\t\t// Or, lookup at parent locale\n\t\t\tparent = bundleParentLookup( Cldr, locale );\n\t\t\tvalue = lookup( Cldr, parent, path, jsonMerge( attributes, { bundle: parent }), locale );\n\t\t}\n\n\t\tif ( value ) {\n\t\t\t// Set resolved (cached)\n\t\t\tresourceSet( Cldr._resolved, normalizedPath, value );\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn lookup;\n\n}());\n\n\n\tCldr._raw = {};\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved or unresolved cldr data.\n\t * Overwrite Cldr.load().\n\t */\n\tCldr.load = function() {\n\t\tCldr._raw = coreLoad( Cldr, Cldr._raw, arguments );\n\t};\n\n\t/**\n\t * Overwrite Cldr.prototype.get().\n\t */\n\tCldr.prototype.get = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\t// 1: use bundle as locale on item lookup for simplification purposes, because no other extended subtag is used anyway on bundle parent lookup.\n\t\t// 2: during init(), this method is called, but bundle is yet not defined. Use \"\" as a workaround in this very specific scenario.\n\t\treturn itemLookup( Cldr, this.attributes && this.attributes.bundle /* 1 */ || \"\" /* 2 */, path, this.attributes );\n\t};\n\n\t// In case cldr/unresolved is loaded after cldr/event, we trigger its overloads again. Because, .get is overwritten in here.\n\tif ( Cldr._eventInit ) {\n\t\tCldr._eventInit();\n\t}\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.4.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-11-26T15:03Z\n */\n/*!\n * CLDR JavaScript Library v0.4.8 2016-11-26T15:03Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n\n// Cldr\nmodule.exports = require( \"./cldr\" );\n\n// Extent Cldr with the following modules\nrequire( \"./cldr/event\" );\nrequire( \"./cldr/supplemental\" );\nrequire( \"./cldr/unresolved\" );\n","/**\n * CLDR JavaScript Library v0.5.4\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-10-22T15:56Z\n */\n/*!\n * CLDR JavaScript Library v0.5.4 2020-10-22T15:56Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( root, factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Global\n\t\troot.Cldr = factory();\n\t}\n\n}( this, function() {\n\n\n\tvar arrayIsArray = Array.isArray || function( obj ) {\n\t\treturn Object.prototype.toString.call( obj ) === \"[object Array]\";\n\t};\n\n\n\n\n\tvar pathNormalize = function( path, attributes ) {\n\t\tif ( arrayIsArray( path ) ) {\n\t\t\tpath = path.join( \"/\" );\n\t\t}\n\t\tif ( typeof path !== \"string\" ) {\n\t\t\tthrow new Error( \"invalid path \\\"\" + path + \"\\\"\" );\n\t\t}\n\t\t// 1: Ignore leading slash `/`\n\t\t// 2: Ignore leading `cldr/`\n\t\tpath = path\n\t\t\t.replace( /^\\// , \"\" ) /* 1 */\n\t\t\t.replace( /^cldr\\// , \"\" ); /* 2 */\n\n\t\t// Replace {attribute}'s\n\t\tpath = path.replace( /{[a-zA-Z]+}/g, function( name ) {\n\t\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\t\treturn attributes[ name ];\n\t\t});\n\n\t\treturn path.split( \"/\" );\n\t};\n\n\n\n\n\tvar arraySome = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.some ) {\n\t\t\treturn array.some( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tif ( callback( array[ i ], i, array ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\n\n\n\t/**\n\t * Return the maximized language id as defined in\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. Canonicalize.\n\t * 1.1 Make sure the input locale is in canonical form: uses the right\n\t * separator, and has the right casing.\n\t * TODO Right casing? What df? It seems languages are lowercase, scripts are\n\t * Capitalized, territory is uppercase. I am leaving this as an exercise to\n\t * the user.\n\t *\n\t * 1.2 Replace any deprecated subtags with their canonical values using the\n\t * data in supplemental metadata. Use the first value in the\n\t * replacement list, if it exists. Language tag replacements may have multiple\n\t * parts, such as \"sh\" ➞ \"sr_Latn\" or mo\" ➞ \"ro_MD\". In such a case, the\n\t * original script and/or region are retained if there is one. Thus\n\t * \"sh_Arab_AQ\" ➞ \"sr_Arab_AQ\", not \"sr_Latn_AQ\".\n\t * TODO What data?\n\t *\n\t * 1.3 If the tag is grandfathered (see in the supplemental data), then return it.\n\t * TODO grandfathered?\n\t *\n\t * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur.\n\t * 1.5 Get the components of the cleaned-up source tag (languages, scripts,\n\t * and regions), plus any variants and extensions.\n\t * 2. Lookup. Lookup each of the following in order, and stop on the first\n\t * match:\n\t * 2.1 languages_scripts_regions\n\t * 2.2 languages_regions\n\t * 2.3 languages_scripts\n\t * 2.4 languages\n\t * 2.5 und_scripts\n\t * 3. Return\n\t * 3.1 If there is no match, either return an error value, or the match for\n\t * \"und\" (in APIs where a valid language tag is required).\n\t * 3.2 Otherwise there is a match = languagem_scriptm_regionm\n\t * 3.3 Let xr = xs if xs is not empty, and xm otherwise.\n\t * 3.4 Return the language tag composed of languager _ scriptr _ regionr +\n\t * variants + extensions.\n\t *\n\t * @subtags [Array] normalized language id subtags tuple (see init.js).\n\t */\n\tvar coreLikelySubtags = function( Cldr, cldr, subtags, options ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = subtags[ 0 ],\n\t\t\tscript = subtags[ 1 ],\n\t\t\tsep = Cldr.localeSep,\n\t\t\tterritory = subtags[ 2 ],\n\t\t\tvariants = subtags.slice( 3, 4 );\n\t\toptions = options || {};\n\n\t\t// Skip if (language, script, territory) is not empty [3.3]\n\t\tif ( language !== \"und\" && script !== \"Zzzz\" && territory !== \"ZZ\" ) {\n\t\t\treturn [ language, script, territory ].concat( variants );\n\t\t}\n\n\t\t// Skip if no supplemental likelySubtags data is present\n\t\tif ( typeof cldr.get( \"supplemental/likelySubtags\" ) === \"undefined\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// [2]\n\t\tmatchFound = arraySome([\n\t\t\t[ language, script, territory ],\n\t\t\t[ language, territory ],\n\t\t\t[ language, script ],\n\t\t\t[ language ],\n\t\t\t[ \"und\", script ]\n\t\t], function( test ) {\n\t\t\treturn match = !(/\\b(Zzzz|ZZ)\\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ \"supplemental/likelySubtags\", test.join( sep ) ] );\n\t\t});\n\n\t\t// [3]\n\t\tif ( matchFound ) {\n\t\t\t// [3.2 .. 3.4]\n\t\t\tmatch = match.split( sep );\n\t\t\treturn [\n\t\t\t\tlanguage !== \"und\" ? language : match[ 0 ],\n\t\t\t\tscript !== \"Zzzz\" ? script : match[ 1 ],\n\t\t\t\tterritory !== \"ZZ\" ? territory : match[ 2 ]\n\t\t\t].concat( variants );\n\t\t} else if ( options.force ) {\n\t\t\t// [3.1.2]\n\t\t\treturn cldr.get( \"supplemental/likelySubtags/und\" ).split( sep );\n\t\t} else {\n\t\t\t// [3.1.1]\n\t\t\treturn;\n\t\t}\n\t};\n\n\n\n\t/**\n\t * Given a locale, remove any fields that Add Likely Subtags would add.\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled,\n\t * return it.\n\t * 2. Remove the variants from max.\n\t * 3. Then for trial in {language, language _ region, language _ script}. If\n\t * AddLikelySubtags(trial) = max, then return trial + variants.\n\t * 4. If you do not get a match, return max + variants.\n\t * \n\t * @maxLanguageId [Array] maxLanguageId tuple (see init.js).\n\t */\n\tvar coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = maxLanguageId[ 0 ],\n\t\t\tscript = maxLanguageId[ 1 ],\n\t\t\tterritory = maxLanguageId[ 2 ],\n\t\t\tvariants = maxLanguageId[ 3 ];\n\n\t\t// [3]\n\t\tmatchFound = arraySome([\n\t\t\t[ [ language, \"Zzzz\", \"ZZ\" ], [ language ] ],\n\t\t\t[ [ language, \"Zzzz\", territory ], [ language, territory ] ],\n\t\t\t[ [ language, script, \"ZZ\" ], [ language, script ] ]\n\t\t], function( test ) {\n\t\t\tvar result = coreLikelySubtags( Cldr, cldr, test[ 0 ] );\n\t\t\tmatch = test[ 1 ];\n\t\t\treturn result && result[ 0 ] === maxLanguageId[ 0 ] &&\n\t\t\t\tresult[ 1 ] === maxLanguageId[ 1 ] &&\n\t\t\t\tresult[ 2 ] === maxLanguageId[ 2 ];\n\t\t});\n\n\t\tif ( matchFound ) {\n\t\t\tif ( variants ) {\n\t\t\t\tmatch.push( variants );\n\t\t\t}\n\t\t\treturn match;\n\t\t}\n\n\t\t// [4]\n\t\treturn maxLanguageId;\n\t};\n\n\n\n\n\t/**\n\t * subtags( locale )\n\t *\n\t * @locale [String]\n\t */\n\tvar coreSubtags = function( locale ) {\n\t\tvar aux, unicodeLanguageId,\n\t\t\tsubtags = [];\n\n\t\tlocale = locale.replace( /_/, \"-\" );\n\n\t\t// Unicode locale extensions.\n\t\taux = locale.split( \"-u-\" );\n\t\tif ( aux[ 1 ] ) {\n\t\t\taux[ 1 ] = aux[ 1 ].split( \"-t-\" );\n\t\t\tlocale = aux[ 0 ] + ( aux[ 1 ][ 1 ] ? \"-t-\" + aux[ 1 ][ 1 ] : \"\");\n\t\t\tsubtags[ 4 /* unicodeLocaleExtensions */ ] = aux[ 1 ][ 0 ];\n\t\t}\n\n\t\t// TODO normalize transformed extensions. Currently, skipped.\n\t\t// subtags[ x ] = locale.split( \"-t-\" )[ 1 ];\n\t\tunicodeLanguageId = locale.split( \"-t-\" )[ 0 ];\n\n\t\t// unicode_language_id = \"root\"\n\t\t// | unicode_language_subtag \n\t\t// (sep unicode_script_subtag)? \n\t\t// (sep unicode_region_subtag)?\n\t\t// (sep unicode_variant_subtag)* ;\n\t\t//\n\t\t// Although unicode_language_subtag = alpha{2,8}, I'm using alpha{2,3}. Because, there's no language on CLDR lengthier than 3.\n\t\taux = unicodeLanguageId.match( /^(([a-z]{2,3})(-([A-Z][a-z]{3}))?(-([A-Z]{2}|[0-9]{3}))?)((-([a-zA-Z0-9]{5,8}|[0-9][a-zA-Z0-9]{3}))*)$|^(root)$/ );\n\t\tif ( aux === null ) {\n\t\t\treturn [ \"und\", \"Zzzz\", \"ZZ\" ];\n\t\t}\n\t\tsubtags[ 0 /* language */ ] = aux[ 10 ] /* root */ || aux[ 2 ] || \"und\";\n\t\tsubtags[ 1 /* script */ ] = aux[ 4 ] || \"Zzzz\";\n\t\tsubtags[ 2 /* territory */ ] = aux[ 6 ] || \"ZZ\";\n\t\tif ( aux[ 7 ] && aux[ 7 ].length ) {\n\t\t\tsubtags[ 3 /* variant */ ] = aux[ 7 ].slice( 1 ) /* remove leading \"-\" */;\n\t\t}\n\n\t\t// 0: language\n\t\t// 1: script\n\t\t// 2: territory (aka region)\n\t\t// 3: variant\n\t\t// 4: unicodeLocaleExtensions\n\t\treturn subtags;\n\t};\n\n\n\n\n\tvar arrayForEach = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.forEach ) {\n\t\t\treturn array.forEach( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tcallback( array[ i ], i, array );\n\t\t}\n\t};\n\n\n\n\n\t/**\n\t * bundleLookup( minLanguageId )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @cldr [Cldr instance]\n\t *\n\t * @minLanguageId [String] requested languageId after applied remove likely subtags.\n\t */\n\tvar bundleLookup = function( Cldr, cldr, minLanguageId ) {\n\t\tvar availableBundleMap = Cldr._availableBundleMap,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue;\n\n\t\tif ( availableBundleMapQueue.length ) {\n\t\t\tarrayForEach( availableBundleMapQueue, function( bundle, i ) {\n\t\t\t\tvar existing, maxBundle, minBundle, subtags;\n\t\t\t\tsubtags = coreSubtags( bundle );\n\t\t\t\tmaxBundle = coreLikelySubtags( Cldr, cldr, subtags );\n\t\t\t\tif ( maxBundle === undefined ) {\n\t\t\t\t\tavailableBundleMapQueue.splice( i, 1 );\n\t\t\t\t\tthrow new Error( \"Could not find likelySubtags for \" + bundle );\n\t\t\t\t}\n\t\t\t\tminBundle = coreRemoveLikelySubtags( Cldr, cldr, maxBundle );\n\t\t\t\tminBundle = minBundle.join( Cldr.localeSep );\n\t\t\t\texisting = availableBundleMap[ minBundle ];\n\t\t\t\tif ( existing && existing.length < bundle.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tavailableBundleMap[ minBundle ] = bundle;\n\t\t\t});\n\t\t\tCldr._availableBundleMapQueue = [];\n\t\t}\n\n\t\treturn availableBundleMap[ minLanguageId ] || null;\n\t};\n\n\n\n\n\tvar objectKeys = function( object ) {\n\t\tvar i,\n\t\t\tresult = [];\n\n\t\tif ( Object.keys ) {\n\t\t\treturn Object.keys( object );\n\t\t}\n\n\t\tfor ( i in object ) {\n\t\t\tresult.push( i );\n\t\t}\n\n\t\treturn result;\n\t};\n\n\n\n\n\tvar createError = function( code, attributes ) {\n\t\tvar error, message;\n\n\t\tmessage = code + ( attributes && JSON ? \": \" + JSON.stringify( attributes ) : \"\" );\n\t\terror = new Error( message );\n\t\terror.code = code;\n\n\t\t// extend( error, attributes );\n\t\tarrayForEach( objectKeys( attributes ), function( attribute ) {\n\t\t\terror[ attribute ] = attributes[ attribute ];\n\t\t});\n\n\t\treturn error;\n\t};\n\n\n\n\n\tvar validate = function( code, check, attributes ) {\n\t\tif ( !check ) {\n\t\t\tthrow createError( code, attributes );\n\t\t}\n\t};\n\n\n\n\n\tvar validatePresence = function( value, name ) {\n\t\tvalidate( \"E_MISSING_PARAMETER\", typeof value !== \"undefined\", {\n\t\t\tname: name\n\t\t});\n\t};\n\n\n\n\n\tvar validateType = function( value, name, check, expected ) {\n\t\tvalidate( \"E_INVALID_PAR_TYPE\", check, {\n\t\t\texpected: expected,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t});\n\t};\n\n\n\n\n\tvar validateTypePath = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || arrayIsArray( value ), \"String or Array\" );\n\t};\n\n\n\n\n\t/**\n\t * Function inspired by jQuery Core, but reduced to our use case.\n\t */\n\tvar isPlainObject = function( obj ) {\n\t\treturn obj !== null && \"\" + obj === \"[object Object]\";\n\t};\n\n\n\n\n\tvar validateTypePlainObject = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || isPlainObject( value ), \"Plain Object\" );\n\t};\n\n\n\n\n\tvar validateTypeString = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\", \"a string\" );\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceGet = function( data, path ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tnode = node[ path[ i ] ];\n\t\t\tif ( !node ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn node[ path[ i ] ];\n\t};\n\n\n\n\n\t/**\n\t * setAvailableBundles( Cldr, json )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @json resolved/unresolved cldr data.\n\t *\n\t * Set available bundles queue based on passed json CLDR data. Considers a bundle as any String at /main/{bundle}.\n\t */\n\tvar coreSetAvailableBundles = function( Cldr, json ) {\n\t\tvar bundle,\n\t\t\tavailableBundleMapQueue = Cldr._availableBundleMapQueue,\n\t\t\tmain = resourceGet( json, [ \"main\" ] );\n\n\t\tif ( main ) {\n\t\t\tfor ( bundle in main ) {\n\t\t\t\tif ( main.hasOwnProperty( bundle ) && bundle !== \"root\" &&\n\t\t\t\t\t\t\tavailableBundleMapQueue.indexOf( bundle ) === -1 ) {\n\t\t\t\t\tavailableBundleMapQueue.push( bundle );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\n\tvar alwaysArray = function( somethingOrArray ) {\n\t\treturn arrayIsArray( somethingOrArray ) ? somethingOrArray : [ somethingOrArray ];\n\t};\n\n\n\tvar jsonMerge = (function() {\n\n\t// Returns new deeply merged JSON.\n\t//\n\t// Eg.\n\t// merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } )\n\t// -> { a: { b: 3, c: 2, d: 4 } }\n\t//\n\t// @arguments JSON's\n\t// \n\tvar merge = function() {\n\t\tvar destination = {},\n\t\t\tsources = [].slice.call( arguments, 0 );\n\t\tarrayForEach( sources, function( source ) {\n\t\t\tvar prop;\n\t\t\tfor ( prop in source ) {\n\t\t\t\tif ( prop in destination && typeof destination[ prop ] === \"object\" && !arrayIsArray( destination[ prop ] ) ) {\n\n\t\t\t\t\t// Merge Objects\n\t\t\t\t\tdestination[ prop ] = merge( destination[ prop ], source[ prop ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Set new values\n\t\t\t\t\tdestination[ prop ] = source[ prop ];\n\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn destination;\n\t};\n\n\treturn merge;\n\n}());\n\n\n\t/**\n\t * load( Cldr, source, jsons )\n\t *\n\t * @Cldr [Cldr class]\n\t *\n\t * @source [Object]\n\t *\n\t * @jsons [arguments]\n\t */\n\tvar coreLoad = function( Cldr, source, jsons ) {\n\t\tvar i, j, json;\n\n\t\tvalidatePresence( jsons[ 0 ], \"json\" );\n\n\t\t// Support arbitrary parameters, e.g., `Cldr.load({...}, {...})`.\n\t\tfor ( i = 0; i < jsons.length; i++ ) {\n\n\t\t\t// Support array parameters, e.g., `Cldr.load([{...}, {...}])`.\n\t\t\tjson = alwaysArray( jsons[ i ] );\n\n\t\t\tfor ( j = 0; j < json.length; j++ ) {\n\t\t\t\tvalidateTypePlainObject( json[ j ], \"json\" );\n\t\t\t\tsource = jsonMerge( source, json[ j ] );\n\t\t\t\tcoreSetAvailableBundles( Cldr, json[ j ] );\n\t\t\t}\n\t\t}\n\n\t\treturn source;\n\t};\n\n\n\n\tvar itemGetResolved = function( Cldr, path, attributes ) {\n\t\t// Resolve path\n\t\tvar normalizedPath = pathNormalize( path, attributes );\n\n\t\treturn resourceGet( Cldr._resolved, normalizedPath );\n\t};\n\n\n\n\n\t/**\n\t * new Cldr()\n\t */\n\tvar Cldr = function( locale ) {\n\t\tthis.init( locale );\n\t};\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tCldr._alwaysArray = alwaysArray;\n\tCldr._coreLoad = coreLoad;\n\tCldr._createError = createError;\n\tCldr._itemGetResolved = itemGetResolved;\n\tCldr._jsonMerge = jsonMerge;\n\tCldr._pathNormalize = pathNormalize;\n\tCldr._resourceGet = resourceGet;\n\tCldr._validatePresence = validatePresence;\n\tCldr._validateType = validateType;\n\tCldr._validateTypePath = validateTypePath;\n\tCldr._validateTypePlainObject = validateTypePlainObject;\n\n\tCldr._availableBundleMap = {};\n\tCldr._availableBundleMapQueue = [];\n\tCldr._resolved = {};\n\n\t// Allow user to override locale separator \"-\" (default) | \"_\". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both \"-\" and \"_\" are valid locale separators (eg. \"en_GB\", \"en-GB\"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set.\n\tCldr.localeSep = \"-\";\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved cldr data.\n\t */\n\tCldr.load = function() {\n\t\tCldr._resolved = coreLoad( Cldr, Cldr._resolved, arguments );\n\t};\n\n\t/**\n\t * .init() automatically run on instantiation/construction.\n\t */\n\tCldr.prototype.init = function( locale ) {\n\t\tvar attributes, language, maxLanguageId, minLanguageId, script, subtags, territory, unicodeLocaleExtensions, variant,\n\t\t\tsep = Cldr.localeSep,\n\t\t\tunicodeLocaleExtensionsRaw = \"\";\n\n\t\tvalidatePresence( locale, \"locale\" );\n\t\tvalidateTypeString( locale, \"locale\" );\n\n\t\tsubtags = coreSubtags( locale );\n\n\t\tif ( subtags.length === 5 ) {\n\t\t\tunicodeLocaleExtensions = subtags.pop();\n\t\t\tunicodeLocaleExtensionsRaw = sep + \"u\" + sep + unicodeLocaleExtensions;\n\t\t\t// Remove trailing null when there is unicodeLocaleExtensions but no variants.\n\t\t\tif ( !subtags[ 3 ] ) {\n\t\t\t\tsubtags.pop();\n\t\t\t}\n\t\t}\n\t\tvariant = subtags[ 3 ];\n\n\t\t// Normalize locale code.\n\t\t// Get (or deduce) the \"triple subtags\": language, territory (also aliased as region), and script subtags.\n\t\t// Get the variant subtags (calendar, collation, currency, etc).\n\t\t// refs:\n\t\t// - http://www.unicode.org/reports/tr35/#Field_Definitions\n\t\t// - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs\n\t\t// - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier\n\n\t\t// When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags.\n\t\tmaxLanguageId = coreLikelySubtags( Cldr, this, subtags, { force: true } ) || subtags;\n\t\tlanguage = maxLanguageId[ 0 ];\n\t\tscript = maxLanguageId[ 1 ];\n\t\tterritory = maxLanguageId[ 2 ];\n\n\t\tminLanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep );\n\n\t\t// Set attributes\n\t\tthis.attributes = attributes = {\n\t\t\tbundle: bundleLookup( Cldr, this, minLanguageId ),\n\n\t\t\t// Unicode Language Id\n\t\t\tminLanguageId: minLanguageId + unicodeLocaleExtensionsRaw,\n\t\t\tmaxLanguageId: maxLanguageId.join( sep ) + unicodeLocaleExtensionsRaw,\n\n\t\t\t// Unicode Language Id Subtabs\n\t\t\tlanguage: language,\n\t\t\tscript: script,\n\t\t\tterritory: territory,\n\t\t\tregion: territory, /* alias */\n\t\t\tvariant: variant\n\t\t};\n\n\t\t// Unicode locale extensions.\n\t\tunicodeLocaleExtensions && ( \"-\" + unicodeLocaleExtensions ).replace( /-[a-z]{3,8}|(-[a-z]{2})-([a-z]{3,8})/g, function( attribute, key, type ) {\n\n\t\t\tif ( key ) {\n\n\t\t\t\t// Extension is in the `keyword` form.\n\t\t\t\tattributes[ \"u\" + key ] = type;\n\t\t\t} else {\n\n\t\t\t\t// Extension is in the `attribute` form.\n\t\t\t\tattributes[ \"u\" + attribute ] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.locale = locale;\n\t};\n\n\t/**\n\t * .get()\n\t */\n\tCldr.prototype.get = function( path ) {\n\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\treturn itemGetResolved( Cldr, path, this.attributes );\n\t};\n\n\t/**\n\t * .main()\n\t */\n\tCldr.prototype.main = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\tvalidate( \"E_MISSING_BUNDLE\", this.attributes.bundle !== null, {\n\t\t\tlocale: this.locale\n\t\t});\n\n\t\tpath = alwaysArray( path );\n\t\treturn this.get( [ \"main/{bundle}\" ].concat( path ) );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.4\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-10-22T15:56Z\n */\n/*!\n * CLDR JavaScript Library v0.5.4 2020-10-22T15:56Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar pathNormalize = Cldr._pathNormalize,\n\t\tvalidatePresence = Cldr._validatePresence,\n\t\tvalidateType = Cldr._validateType;\n\n/*!\n * EventEmitter v4.2.7 - git.io/ee\n * Oliver Caldwell\n * MIT license\n * @preserve\n */\n\nvar EventEmitter;\n/* jshint ignore:start */\nEventEmitter = (function () {\n\n\n\t/**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\tfunction EventEmitter() {}\n\n\t// Shortcuts to improve speed and size\n\tvar proto = EventEmitter.prototype;\n\tvar exports = {};\n\t\n\n\t/**\n\t * Finds the index of the listener for the event in it's storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t * @api private\n\t */\n\tfunction indexOfListener(listeners, listener) {\n\t\tvar i = listeners.length;\n\t\twhile (i--) {\n\t\t\tif (listeners[i].listener === listener) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t * @api private\n\t */\n\tfunction alias(name) {\n\t\treturn function aliasClosure() {\n\t\t\treturn this[name].apply(this, arguments);\n\t\t};\n\t}\n\n\t/**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\tproto.getListeners = function getListeners(evt) {\n\t\tvar events = this._getEvents();\n\t\tvar response;\n\t\tvar key;\n\n\t\t// Return a concatenated array of all matching events if\n\t\t// the selector is a regular expression.\n\t\tif (evt instanceof RegExp) {\n\t\t\tresponse = {};\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tresponse[key] = events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tresponse = events[evt] || (events[evt] = []);\n\t\t}\n\n\t\treturn response;\n\t};\n\n\t/**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\tproto.flattenListeners = function flattenListeners(listeners) {\n\t\tvar flatListeners = [];\n\t\tvar i;\n\n\t\tfor (i = 0; i < listeners.length; i += 1) {\n\t\t\tflatListeners.push(listeners[i].listener);\n\t\t}\n\n\t\treturn flatListeners;\n\t};\n\n\t/**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\tproto.getListenersAsObject = function getListenersAsObject(evt) {\n\t\tvar listeners = this.getListeners(evt);\n\t\tvar response;\n\n\t\tif (listeners instanceof Array) {\n\t\t\tresponse = {};\n\t\t\tresponse[evt] = listeners;\n\t\t}\n\n\t\treturn response || listeners;\n\t};\n\n\t/**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListener = function addListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listenerIsWrapped = typeof listener === 'object';\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t\t\t\tlisteners[key].push(listenerIsWrapped ? listener : {\n\t\t\t\t\tlistener: listener,\n\t\t\t\t\tonce: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of addListener\n\t */\n\tproto.on = alias('addListener');\n\n\t/**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after it's first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addOnceListener = function addOnceListener(evt, listener) {\n\t\treturn this.addListener(evt, {\n\t\t\tlistener: listener,\n\t\t\tonce: true\n\t\t});\n\t};\n\n\t/**\n\t * Alias of addOnceListener.\n\t */\n\tproto.once = alias('addOnceListener');\n\n\t/**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvent = function defineEvent(evt) {\n\t\tthis.getListeners(evt);\n\t\treturn this;\n\t};\n\n\t/**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvents = function defineEvents(evts) {\n\t\tfor (var i = 0; i < evts.length; i += 1) {\n\t\t\tthis.defineEvent(evts[i]);\n\t\t}\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListener = function removeListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar index;\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\tindex = indexOfListener(listeners[key], listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tlisteners[key].splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeListener\n\t */\n\tproto.off = alias('removeListener');\n\n\t/**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListeners = function addListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(false, evt, listeners);\n\t};\n\n\t/**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListeners = function removeListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(true, evt, listeners);\n\t};\n\n\t/**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t\tvar i;\n\t\tvar value;\n\t\tvar single = remove ? this.removeListener : this.addListener;\n\t\tvar multiple = remove ? this.removeListeners : this.addListeners;\n\n\t\t// If evt is an object then pass each of it's properties to this method\n\t\tif (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t\t\tfor (i in evt) {\n\t\t\t\tif (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t\t\t\t\t// Pass the single listener straight through to the singular method\n\t\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\t\tsingle.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Otherwise pass back to the multiple function\n\t\t\t\t\t\tmultiple.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// So evt must be a string\n\t\t\t// And listeners must be an array of listeners\n\t\t\t// Loop over it and pass each one to the multiple method\n\t\t\ti = listeners.length;\n\t\t\twhile (i--) {\n\t\t\t\tsingle.call(this, evt, listeners[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeEvent = function removeEvent(evt) {\n\t\tvar type = typeof evt;\n\t\tvar events = this._getEvents();\n\t\tvar key;\n\n\t\t// Remove different things depending on the state of evt\n\t\tif (type === 'string') {\n\t\t\t// Remove all listeners for the specified event\n\t\t\tdelete events[evt];\n\t\t}\n\t\telse if (evt instanceof RegExp) {\n\t\t\t// Remove all events matching the regex.\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tdelete events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Remove all listeners in all events\n\t\t\tdelete this._events;\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\tproto.removeAllListeners = alias('removeEvent');\n\n\t/**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emitEvent = function emitEvent(evt, args) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listener;\n\t\tvar i;\n\t\tvar key;\n\t\tvar response;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\ti = listeners[key].length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\t// If the listener returns true then it shall be removed from the event\n\t\t\t\t\t// The function is executed either with a basic call or an apply if there is an args array\n\t\t\t\t\tlistener = listeners[key][i];\n\n\t\t\t\t\tif (listener.once === true) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = listener.listener.apply(this, args || []);\n\n\t\t\t\t\tif (response === this._getOnceReturnValue()) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of emitEvent\n\t */\n\tproto.trigger = alias('emitEvent');\n\n\t/**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emit = function emit(evt) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\treturn this.emitEvent(evt, args);\n\t};\n\n\t/**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t\tthis._onceReturnValue = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t * @api private\n\t */\n\tproto._getOnceReturnValue = function _getOnceReturnValue() {\n\t\tif (this.hasOwnProperty('_onceReturnValue')) {\n\t\t\treturn this._onceReturnValue;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t * @api private\n\t */\n\tproto._getEvents = function _getEvents() {\n\t\treturn this._events || (this._events = {});\n\t};\n\n\t/**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\tEventEmitter.noConflict = function noConflict() {\n\t\texports.EventEmitter = originalGlobalValue;\n\t\treturn EventEmitter;\n\t};\n\n\treturn EventEmitter;\n}());\n/* jshint ignore:end */\n\n\n\n\tvar validateTypeFunction = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"function\", \"Function\" );\n\t};\n\n\n\n\n\tvar superGet, superInit,\n\t\tglobalEe = new EventEmitter();\n\n\tfunction validateTypeEvent( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || value instanceof RegExp, \"String or RegExp\" );\n\t}\n\n\tfunction validateThenCall( method, self ) {\n\t\treturn function( event, listener ) {\n\t\t\tvalidatePresence( event, \"event\" );\n\t\t\tvalidateTypeEvent( event, \"event\" );\n\n\t\t\tvalidatePresence( listener, \"listener\" );\n\t\t\tvalidateTypeFunction( listener, \"listener\" );\n\n\t\t\treturn self[ method ].apply( self, arguments );\n\t\t};\n\t}\n\n\tfunction off( self ) {\n\t\treturn validateThenCall( \"off\", self );\n\t}\n\n\tfunction on( self ) {\n\t\treturn validateThenCall( \"on\", self );\n\t}\n\n\tfunction once( self ) {\n\t\treturn validateThenCall( \"once\", self );\n\t}\n\n\tCldr.off = off( globalEe );\n\tCldr.on = on( globalEe );\n\tCldr.once = once( globalEe );\n\n\t/**\n\t * Overload Cldr.prototype.init().\n\t */\n\tsuperInit = Cldr.prototype.init;\n\tCldr.prototype.init = function() {\n\t\tvar ee;\n\t\tthis.ee = ee = new EventEmitter();\n\t\tthis.off = off( ee );\n\t\tthis.on = on( ee );\n\t\tthis.once = once( ee );\n\t\tsuperInit.apply( this, arguments );\n\t};\n\n\t/**\n\t * getOverload is encapsulated, because of cldr/unresolved. If it's loaded\n\t * after cldr/event (and note it overwrites .get), it can trigger this\n\t * overload again.\n\t */\n\tfunction getOverload() {\n\n\t\t/**\n\t\t * Overload Cldr.prototype.get().\n\t\t */\n\t\tsuperGet = Cldr.prototype.get;\n\t\tCldr.prototype.get = function( path ) {\n\t\t\tvar value = superGet.apply( this, arguments );\n\t\t\tpath = pathNormalize( path, this.attributes ).join( \"/\" );\n\t\t\tglobalEe.trigger( \"get\", [ path, value ] );\n\t\t\tthis.ee.trigger( \"get\", [ path, value ] );\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tCldr._eventInit = getOverload;\n\tgetOverload();\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.4\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-10-22T15:56Z\n */\n/*!\n * CLDR JavaScript Library v0.5.4 2020-10-22T15:56Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar alwaysArray = Cldr._alwaysArray;\n\n\n\n\tvar supplementalMain = function( cldr ) {\n\n\t\tvar prepend, supplemental;\n\t\t\n\t\tprepend = function( prepend ) {\n\t\t\treturn function( path ) {\n\t\t\t\tpath = alwaysArray( path );\n\t\t\t\treturn cldr.get( [ prepend ].concat( path ) );\n\t\t\t};\n\t\t};\n\n\t\tsupplemental = prepend( \"supplemental\" );\n\n\t\t// Week Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Week_Data\n\t\tsupplemental.weekData = prepend( \"supplemental/weekData\" );\n\n\t\tsupplemental.weekData.firstDay = function() {\n\t\t\treturn cldr.get( \"supplemental/weekData/firstDay/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/firstDay/001\" );\n\t\t};\n\n\t\tsupplemental.weekData.minDays = function() {\n\t\t\tvar minDays = cldr.get( \"supplemental/weekData/minDays/{territory}\" ) ||\n\t\t\t\tcldr.get( \"supplemental/weekData/minDays/001\" );\n\t\t\treturn parseInt( minDays, 10 );\n\t\t};\n\n\t\t// Time Data\n\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data\n\t\tsupplemental.timeData = prepend( \"supplemental/timeData\" );\n\n\t\tsupplemental.timeData.allowed = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_allowed\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_allowed\" );\n\t\t};\n\n\t\tsupplemental.timeData.preferred = function() {\n\t\t\treturn cldr.get( \"supplemental/timeData/{territory}/_preferred\" ) ||\n\t\t\t\tcldr.get( \"supplemental/timeData/001/_preferred\" );\n\t\t};\n\n\t\treturn supplemental;\n\n\t};\n\n\n\n\n\tvar initSuper = Cldr.prototype.init;\n\n\t/**\n\t * .init() automatically ran on construction.\n\t *\n\t * Overload .init().\n\t */\n\tCldr.prototype.init = function() {\n\t\tinitSuper.apply( this, arguments );\n\t\tthis.supplemental = supplementalMain( this );\n\t};\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.4\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-10-22T15:56Z\n */\n/*!\n * CLDR JavaScript Library v0.5.4 2020-10-22T15:56Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD.\n\t\tdefine( [ \"../cldr\" ], factory );\n\t} else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// Node. CommonJS.\n\t\tmodule.exports = factory( require( \"../cldr\" ) );\n\t} else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t}\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar coreLoad = Cldr._coreLoad;\n\tvar jsonMerge = Cldr._jsonMerge;\n\tvar pathNormalize = Cldr._pathNormalize;\n\tvar resourceGet = Cldr._resourceGet;\n\tvar validatePresence = Cldr._validatePresence;\n\tvar validateTypePath = Cldr._validateTypePath;\n\n\n\n\tvar bundleParentLookup = function( Cldr, locale ) {\n\t\tvar normalizedPath, parent;\n\n\t\tif ( locale === \"root\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// First, try to find parent on supplemental data.\n\t\tnormalizedPath = pathNormalize( [ \"supplemental/parentLocales/parentLocale\", locale ] );\n\t\tparent = resourceGet( Cldr._resolved, normalizedPath ) || resourceGet( Cldr._raw, normalizedPath );\n\t\tif ( parent ) {\n\t\t\treturn parent;\n\t\t}\n\n\t\t// Or truncate locale.\n\t\tparent = locale.substr( 0, locale.lastIndexOf( Cldr.localeSep ) );\n\t\tif ( !parent ) {\n\t\t\treturn \"root\";\n\t\t}\n\n\t\treturn parent;\n\t};\n\n\n\n\n\t// @path: normalized path\n\tvar resourceSet = function( data, path, value ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tif ( !node[ path[ i ] ] ) {\n\t\t\t\tnode[ path[ i ] ] = {};\n\t\t\t}\n\t\t\tnode = node[ path[ i ] ];\n\t\t}\n\t\tnode[ path[ i ] ] = value;\n\t};\n\n\n\tvar itemLookup = (function() {\n\n\tvar lookup;\n\n\tlookup = function( Cldr, locale, path, attributes, childLocale ) {\n\t\tvar normalizedPath, parent, value;\n\n\t\t// 1: Finish recursion\n\t\t// 2: Avoid infinite loop\n\t\tif ( typeof locale === \"undefined\" /* 1 */ || locale === childLocale /* 2 */ ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve path\n\t\tnormalizedPath = pathNormalize( path, attributes );\n\n\t\t// Check resolved (cached) data first\n\t\t// 1: Due to #16, never use the cached resolved non-leaf nodes. It may not\n\t\t// represent its leafs in its entirety.\n\t\tvalue = resourceGet( Cldr._resolved, normalizedPath );\n\t\tif ( value !== undefined && typeof value !== \"object\" /* 1 */ ) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// Check raw data\n\t\tvalue = resourceGet( Cldr._raw, normalizedPath );\n\n\t\tif ( value === undefined ) {\n\t\t\t// Or, lookup at parent locale\n\t\t\tparent = bundleParentLookup( Cldr, locale );\n\t\t\tvalue = lookup( Cldr, parent, path, jsonMerge( attributes, { bundle: parent }), locale );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\t// Set resolved (cached)\n\t\t\tresourceSet( Cldr._resolved, normalizedPath, value );\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn lookup;\n\n}());\n\n\n\tCldr._raw = {};\n\n\t/**\n\t * Cldr.load( json [, json, ...] )\n\t *\n\t * @json [JSON] CLDR data or [Array] Array of @json's.\n\t *\n\t * Load resolved or unresolved cldr data.\n\t * Overwrite Cldr.load().\n\t */\n\tCldr.load = function() {\n\t\tCldr._raw = coreLoad( Cldr, Cldr._raw, arguments );\n\t};\n\n\t/**\n\t * Overwrite Cldr.prototype.get().\n\t */\n\tCldr.prototype.get = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\t// 1: use bundle as locale on item lookup for simplification purposes, because no other extended subtag is used anyway on bundle parent lookup.\n\t\t// 2: during init(), this method is called, but bundle is yet not defined. Use \"\" as a workaround in this very specific scenario.\n\t\treturn itemLookup( Cldr, this.attributes && this.attributes.bundle /* 1 */ || \"\" /* 2 */, path, this.attributes );\n\t};\n\n\t// In case cldr/unresolved is loaded after cldr/event, we trigger its overloads again. Because, .get is overwritten in here.\n\tif ( Cldr._eventInit ) {\n\t\tCldr._eventInit();\n\t}\n\n\treturn Cldr;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.5.4\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2020-10-22T15:56Z\n */\n/*!\n * CLDR JavaScript Library v0.5.4 2020-10-22T15:56Z MIT license © Rafael Xavier\n * http://git.io/h4lmVg\n */\n\n// Cldr\nmodule.exports = require( \"./cldr\" );\n\n// Extent Cldr with the following modules\nrequire( \"./cldr/event\" );\nrequire( \"./cldr/supplemental\" );\nrequire( \"./cldr/unresolved\" );\n"],"names":["base64","ieee754","customInspectSymbol","Symbol","exports","Buffer","SlowBuffer","length","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","Uint8Array","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","byteLength","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","len","checked","undefined","numberIsNaN","type","Array","isArray","data","fromObject","toPrimitive","assertSize","size","array","i","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","indexOf","call","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","Error","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","code","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","inherits","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_","next","err","_flush","done","enc","fin","module","hasOwn","hasOwnProperty","classNames","classes","argType","inner","key","join","default","arrayIsArray","pathNormalize","path","attributes","arraySome","callback","some","coreLikelySubtags","Cldr","cldr","subtags","options","match","language","script","sep","localeSep","territory","variants","test","force","coreRemoveLikelySubtags","maxLanguageId","result","coreSubtags","locale","aux","arrayForEach","forEach","bundleLookup","minLanguageId","availableBundleMap","_availableBundleMap","availableBundleMapQueue","_availableBundleMapQueue","bundle","existing","maxBundle","minBundle","objectKeys","object","keys","createError","JSON","stringify","attribute","validate","check","validatePresence","validateType","expected","validateTypePath","isPlainObject","validateTypePlainObject","validateTypeString","resourceGet","node","coreSetAvailableBundles","json","main","alwaysArray","somethingOrArray","jsonMerge","merge","destination","sources","source","prop","coreLoad","jsons","itemGetResolved","normalizedPath","_resolved","init","_alwaysArray","_coreLoad","_createError","_itemGetResolved","_jsonMerge","_pathNormalize","_resourceGet","_validatePresence","_validateType","_validateTypePath","_validateTypePlainObject","load","unicodeLocaleExtensions","variant","unicodeLocaleExtensionsRaw","pop","region","EventEmitter","originalGlobalValue","indexOfListener","listeners","listener","alias","getListeners","evt","response","events","_getEvents","RegExp","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","on","addOnceListener","defineEvent","defineEvents","evts","removeListener","index","splice","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","args","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","superGet","superInit","validateTypeFunction","globalEe","validateTypeEvent","validateThenCall","method","self","event","getOverload","ee","_eventInit","supplementalMain","prepend","supplemental","weekData","firstDay","minDays","timeData","allowed","preferred","initSuper","bundleParentLookup","parent","_raw","resourceSet","itemLookup","lookup","childLocale"],"sourceRoot":""}